From 49047e5a2653a417cb0457482aacecf2a2094461 Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Wed, 11 Sep 2024 18:40:26 +0000 Subject: [PATCH] build based on 3c8dc72 --- dev/404.html | 4 +- dev/api.html | 148 +++++++++--------- ...oasx.Dz86q2IX.png => aftrdlb.Dz86q2IX.png} | Bin ...{api.md.2ouECU0_.js => api.md.DA3cj-wA.js} | 138 ++++++++-------- ...uECU0_.lean.js => api.md.DA3cj-wA.lean.js} | 138 ++++++++-------- .../{app.CO0RGWk8.js => app.Cs1GFKXm.js} | 2 +- ...uqzd.CULn5saZ.png => bavdnxo.CULn5saZ.png} | Bin ...WxxT.lean.js => call_notes.md.bQDaS4ka.js} | 2 +- ...WxxT.js => call_notes.md.bQDaS4ka.lean.js} | 2 +- ...yrwo.-VpeHhXX.png => cavlctn.-VpeHhXX.png} | Bin ...kwcj.Dab1-ETk.png => ccrysmn.Dab1-ETk.png} | Bin .../chunks/@localSearchIndexroot.CeRkZQsH.js | 1 - .../chunks/@localSearchIndexroot.DjI2oAK6.js | 1 + ...27nImM.js => VPLocalSearchBox.DZXphNwP.js} | 2 +- dev/assets/chunks/framework.B0Ss3dHN.js | 17 ++ dev/assets/chunks/framework.B9oBnxE7.js | 17 -- .../{theme.C-Lfz_wz.js => theme.DZANPkyA.js} | 4 +- dev/assets/cldpfuq.DbLiRMiy.png | Bin 59898 -> 0 bytes ...pnqk.C3SxJ3x-.png => cwymcju.C3SxJ3x-.png} | Bin ...fuad.mCtKcWOr.png => dhblkfo.mCtKcWOr.png} | Bin ...vjpe.Dig-DWOQ.png => dngpdrf.Dig-DWOQ.png} | Bin ...rnfb.DTKLkKh_.png => dsjwujh.DTKLkKh_.png} | Bin dev/assets/dzyqzlu.C5N3xVUC.png | Bin 79501 -> 0 bytes ...allh.D5-bot8v.png => eeaiohh.D5-bot8v.png} | Bin dev/assets/eidxoxd.DpYrIdUh.png | Bin 69920 -> 0 bytes ...ents_accurate_accumulators.md.DqCWQDFY.js} | 2 +- ...accurate_accumulators.md.DqCWQDFY.lean.js} | 2 +- ... => experiments_predicates.md.CftgDXAy.js} | 2 +- ...xperiments_predicates.md.CftgDXAy.lean.js} | 2 +- ...CMO.js => explanations_crs.md._RGEVBFG.js} | 2 +- ...s => explanations_crs.md._RGEVBFG.lean.js} | 2 +- ... => explanations_paradigms.md.CNrPdHXR.js} | 2 +- ...xplanations_paradigms.md.CNrPdHXR.lean.js} | 2 +- ...explanations_peculiarities.md.D1LUoEKV.js} | 2 +- ...nations_peculiarities.md.D1LUoEKV.lean.js} | 2 +- ...explanations_winding_order.md.CDqCuuUs.js} | 2 +- ...nations_winding_order.md.CDqCuuUs.lean.js} | 2 +- dev/assets/hqsdgwp.sS_Fuefu.png | Bin 207428 -> 0 bytes ...ex.md.BxTfxUBa.js => index.md.DekoSsoW.js} | 2 +- ...xUBa.lean.js => index.md.DekoSsoW.lean.js} | 2 +- ...MSw2cvK.js => introduction.md.CDdh5Sjo.js} | 2 +- ...an.js => introduction.md.CDdh5Sjo.lean.js} | 2 +- dev/assets/itssczc.DsRRHTcy.png | Bin 229881 -> 0 bytes dev/assets/jdmlgmk.Ld9T2t3C.png | Bin 62159 -> 0 bytes dev/assets/jkijtgh.CD6tsQoA.png | Bin 66000 -> 0 bytes ...tgnj.rOsRk89v.png => lewnlwz.rOsRk89v.png} | Bin ...qycr.Cb0_DiYE.png => lfkbiyn.Cb0_DiYE.png} | Bin ...ifut.DiwGEg2f.png => lybcrnj.DiwGEg2f.png} | Bin ...hqee.DHcwB147.png => nbkkzbs.DHcwB147.png} | Bin ...xikq.4wfjCtJV.png => nbufiob.4wfjCtJV.png} | Bin ...rbrf._0R9BbFk.png => nhnkjbu._0R9BbFk.png} | Bin dev/assets/nswzqgn.D9Jcxa43.png | Bin 0 -> 65136 bytes dev/assets/nzgypfi.JNr-H8gr.png | Bin 0 -> 60524 bytes ...zpqi.CPClNl7F.png => pnjlkev.CPClNl7F.png} | Bin ...oaxi.B94PsR1K.png => pshmrok.B94PsR1K.png} | Bin ...lwye.DeeQUply.png => rabkbtk.DeeQUply.png} | Bin ...cocu.3UVIT8DR.png => rbqikhv.3UVIT8DR.png} | Bin ...bnum.DC3TvBOO.png => rkdwnhp.DC3TvBOO.png} | Bin dev/assets/rnaehas.CCwTMR41.png | Bin 0 -> 232378 bytes ...sgbg.3sfpQl2i.png => rngeqqd.3sfpQl2i.png} | Bin ...miam.D9AE7i2o.png => rnkakvw.D9AE7i2o.png} | Bin dev/assets/rxbguvl.CD3O6lbE.png | Bin 0 -> 79463 bytes ...dqev.BD0hVfse.png => sdgtpke.BD0hVfse.png} | Bin ...4.js => source_GeometryOps.md.CISTZdtA.js} | 2 +- ...=> source_GeometryOps.md.CISTZdtA.lean.js} | 2 +- ...s => source_methods_angles.md.ukA9IUfs.js} | 2 +- ...source_methods_angles.md.ukA9IUfs.lean.js} | 2 +- ....js => source_methods_area.md.Do01enJt.js} | 4 +- ...> source_methods_area.md.Do01enJt.lean.js} | 4 +- ...source_methods_barycentric.md.warUpGU6.js} | 2 +- ...e_methods_barycentric.md.warUpGU6.lean.js} | 2 +- ...s => source_methods_buffer.md.BLI5va4z.js} | 2 +- ...source_methods_buffer.md.BLI5va4z.lean.js} | 2 +- ...=> source_methods_centroid.md.CvPZjUoH.js} | 2 +- ...urce_methods_centroid.md.CvPZjUoH.lean.js} | 2 +- ...lipping_clipping_processor.md.D1cLUmXv.js} | 2 +- ...ng_clipping_processor.md.D1cLUmXv.lean.js} | 2 +- ..._methods_clipping_coverage.md.TKsPhvkZ.js} | 2 +- ...ods_clipping_coverage.md.TKsPhvkZ.lean.js} | 2 +- ...ource_methods_clipping_cut.md.Dgrhm9R2.js} | 2 +- ..._methods_clipping_cut.md.Dgrhm9R2.lean.js} | 2 +- ...ethods_clipping_difference.md.BHC8HbPw.js} | 2 +- ...s_clipping_difference.md.BHC8HbPw.lean.js} | 2 +- ...hods_clipping_intersection.md.YOXybPsc.js} | 2 +- ...clipping_intersection.md.YOXybPsc.lean.js} | 2 +- ...ethods_clipping_predicates.md._lB4tLPb.js} | 2 +- ...s_clipping_predicates.md._lB4tLPb.lean.js} | 2 +- ...rce_methods_clipping_union.md.D-TbsSpY.js} | 2 +- ...ethods_clipping_union.md.D-TbsSpY.lean.js} | 2 +- ...source_methods_convex_hull.md.NFIi0ZD0.js} | 2 +- ...e_methods_convex_hull.md.NFIi0ZD0.lean.js} | 2 +- ...=> source_methods_distance.md.B3RCvmDv.js} | 2 +- ...urce_methods_distance.md.B3RCvmDv.lean.js} | 2 +- ...s => source_methods_equals.md.D7YcKc5y.js} | 2 +- ...source_methods_equals.md.D7YcKc5y.lean.js} | 2 +- ...ds_geom_relations_contains.md.BBRCw1_f.js} | 2 +- ...om_relations_contains.md.BBRCw1_f.lean.js} | 2 +- ...s_geom_relations_coveredby.md.DCGcwlqC.js} | 2 +- ...m_relations_coveredby.md.DCGcwlqC.lean.js} | 2 +- ...hods_geom_relations_covers.md.DcOwRjYX.js} | 2 +- ...geom_relations_covers.md.DcOwRjYX.lean.js} | 2 +- ...ods_geom_relations_crosses.md.CjXmPRlk.js} | 2 +- ...eom_relations_crosses.md.CjXmPRlk.lean.js} | 2 +- ...ds_geom_relations_disjoint.md.BYLRIf7-.js} | 2 +- ...om_relations_disjoint.md.BYLRIf7-.lean.js} | 2 +- ...tions_geom_geom_processors.md.DoSX0nd_.js} | 2 +- ..._geom_geom_processors.md.DoSX0nd_.lean.js} | 2 +- ..._geom_relations_intersects.md.C7r9I1BI.js} | 2 +- ..._relations_intersects.md.C7r9I1BI.lean.js} | 2 +- ...ds_geom_relations_overlaps.md.O3O0qXk8.js} | 2 +- ...om_relations_overlaps.md.O3O0qXk8.lean.js} | 2 +- ...ods_geom_relations_touches.md.BEMKQZS2.js} | 2 +- ...eom_relations_touches.md.BEMKQZS2.lean.js} | 2 +- ...hods_geom_relations_within.md.CladBRqO.js} | 2 +- ...geom_relations_within.md.CladBRqO.lean.js} | 2 +- ...source_methods_orientation.md.CWpaqwvx.js} | 2 +- ...e_methods_orientation.md.CWpaqwvx.lean.js} | 2 +- ... source_methods_polygonize.md.uB4iwmdu.js} | 2 +- ...ce_methods_polygonize.md.uB4iwmdu.lean.js} | 2 +- ...source_not_implemented_yet.md.Bsubdj8P.js} | 2 +- ...e_not_implemented_yet.md.Bsubdj8P.lean.js} | 2 +- ...a5.js => source_primitives.md.B63LzEac.js} | 4 +- ... => source_primitives.md.B63LzEac.lean.js} | 4 +- ...ons_correction_closed_ring.md.DqulCeOT.js} | 2 +- ...orrection_closed_ring.md.DqulCeOT.lean.js} | 2 +- ...ection_geometry_correction.md.WX6iVPd4.js} | 4 +- ...n_geometry_correction.md.WX6iVPd4.lean.js} | 4 +- ...tion_intersecting_polygons.md.BoAkYnvk.js} | 2 +- ...intersecting_polygons.md.BoAkYnvk.lean.js} | 2 +- ...rce_transformations_extent.md.B3JOS_Vt.js} | 2 +- ...ransformations_extent.md.B3JOS_Vt.lean.js} | 2 +- ...ource_transformations_flip.md.CzCsDiZ2.js} | 2 +- ..._transformations_flip.md.CzCsDiZ2.lean.js} | 2 +- ..._transformations_reproject.md.CQSHmG_K.js} | 2 +- ...sformations_reproject.md.CQSHmG_K.lean.js} | 2 +- ...transformations_segmentize.md.DCSzM58m.js} | 2 +- ...formations_segmentize.md.DCSzM58m.lean.js} | 2 +- ...e_transformations_simplify.md.BtEM-RYN.js} | 2 +- ...nsformations_simplify.md.BtEM-RYN.lean.js} | 2 +- ..._transformations_transform.md.D50yl898.js} | 2 +- ...sformations_transform.md.D50yl898.lean.js} | 2 +- ...rce_transformations_tuples.md.BSO5jndR.js} | 2 +- ...ransformations_tuples.md.BSO5jndR.lean.js} | 2 +- ...lt3PWgm.js => source_types.md.D23Fcnpy.js} | 2 +- ...an.js => source_types.md.D23Fcnpy.lean.js} | 2 +- ...n7iMB6f.js => source_utils.md.BAUiaq8M.js} | 2 +- ...an.js => source_utils.md.BAUiaq8M.lean.js} | 2 +- ...jkeo.CgiryX2p.png => swezuxk.CgiryX2p.png} | Bin ...lyub.Bglvb-jp.png => syrxnah.Bglvb-jp.png} | Bin ...lqzr.BEFUMtlf.png => tlougwp.BEFUMtlf.png} | Bin dev/assets/tmzqbco.Ds4_I6QN.png | Bin 0 -> 70825 bytes ...utorials_creating_geometry.md.CWhgTWcM.js} | 2 +- ...als_creating_geometry.md.CWhgTWcM.lean.js} | 2 +- ...> tutorials_geodesic_paths.md._RhqTYOW.js} | 2 +- ...orials_geodesic_paths.md._RhqTYOW.lean.js} | 2 +- ...=> tutorials_spatial_joins.md.3ItQXtC7.js} | 2 +- ...torials_spatial_joins.md.3ItQXtC7.lean.js} | 2 +- ...kqlp.CZy9YIUA.png => ucnshtv.CZy9YIUA.png} | Bin ...ihcc.DaovVbE6.png => vdymleu.DaovVbE6.png} | Bin dev/assets/vnpjlew._p8xhozb.png | Bin 0 -> 210785 bytes ...vhzq.DuBHk1fh.png => vudteoq.DuBHk1fh.png} | Bin dev/assets/vzynugw.C2qyL0pp.png | Bin 0 -> 59581 bytes dev/assets/wiiqzty.B1-COp2s.png | Bin 0 -> 63143 bytes ...bjwy.0f3Lq4Lw.png => ydfaqmc.0f3Lq4Lw.png} | Bin dev/assets/ydfkdpp.Bj1uXsmn.png | Bin 62950 -> 0 bytes ...zjhs.Cx40vhB3.png => zbdndpn.Cx40vhB3.png} | Bin ...jmky.0OJvb21A.png => zcclcqv.0OJvb21A.png} | Bin dev/call_notes.html | 10 +- dev/experiments/accurate_accumulators.html | 10 +- dev/experiments/predicates.html | 12 +- dev/explanations/crs.html | 10 +- dev/explanations/paradigms.html | 10 +- dev/explanations/peculiarities.html | 10 +- dev/explanations/winding_order.html | 10 +- dev/hashmap.json | 2 +- dev/index.html | 10 +- dev/introduction.html | 10 +- dev/source/GeometryOps.html | 10 +- dev/source/methods/angles.html | 12 +- dev/source/methods/area.html | 14 +- dev/source/methods/barycentric.html | 12 +- dev/source/methods/buffer.html | 10 +- dev/source/methods/centroid.html | 14 +- .../methods/clipping/clipping_processor.html | 10 +- dev/source/methods/clipping/coverage.html | 12 +- dev/source/methods/clipping/cut.html | 12 +- dev/source/methods/clipping/difference.html | 10 +- dev/source/methods/clipping/intersection.html | 10 +- dev/source/methods/clipping/predicates.html | 10 +- dev/source/methods/clipping/union.html | 10 +- dev/source/methods/convex_hull.html | 16 +- dev/source/methods/distance.html | 14 +- dev/source/methods/equals.html | 12 +- .../methods/geom_relations/contains.html | 12 +- .../methods/geom_relations/coveredby.html | 12 +- dev/source/methods/geom_relations/covers.html | 12 +- .../methods/geom_relations/crosses.html | 10 +- .../methods/geom_relations/disjoint.html | 12 +- .../geom_relations/geom_geom_processors.html | 10 +- .../methods/geom_relations/intersects.html | 12 +- .../methods/geom_relations/overlaps.html | 12 +- .../methods/geom_relations/touches.html | 12 +- dev/source/methods/geom_relations/within.html | 12 +- dev/source/methods/orientation.html | 10 +- dev/source/methods/polygonize.html | 10 +- dev/source/not_implemented_yet.html | 10 +- dev/source/primitives.html | 12 +- .../correction/closed_ring.html | 10 +- .../correction/geometry_correction.html | 14 +- .../correction/intersecting_polygons.html | 10 +- dev/source/transformations/extent.html | 10 +- dev/source/transformations/flip.html | 10 +- dev/source/transformations/reproject.html | 10 +- dev/source/transformations/segmentize.html | 14 +- dev/source/transformations/simplify.html | 18 +-- dev/source/transformations/transform.html | 10 +- dev/source/transformations/tuples.html | 10 +- dev/source/types.html | 10 +- dev/source/utils.html | 10 +- dev/tutorials/creating_geometry.html | 32 ++-- dev/tutorials/geodesic_paths.html | 12 +- dev/tutorials/spatial_joins.html | 16 +- 222 files changed, 668 insertions(+), 668 deletions(-) rename dev/assets/{ntsoasx.Dz86q2IX.png => aftrdlb.Dz86q2IX.png} (100%) rename dev/assets/{api.md.2ouECU0_.js => api.md.DA3cj-wA.js} (97%) rename dev/assets/{api.md.2ouECU0_.lean.js => api.md.DA3cj-wA.lean.js} (97%) rename dev/assets/{app.CO0RGWk8.js => app.Cs1GFKXm.js} (90%) rename dev/assets/{psyuqzd.CULn5saZ.png => bavdnxo.CULn5saZ.png} (100%) rename dev/assets/{call_notes.md.CwmDWxxT.lean.js => call_notes.md.bQDaS4ka.js} (98%) rename dev/assets/{call_notes.md.CwmDWxxT.js => call_notes.md.bQDaS4ka.lean.js} (98%) rename dev/assets/{tluyrwo.-VpeHhXX.png => cavlctn.-VpeHhXX.png} (100%) rename dev/assets/{nhikwcj.Dab1-ETk.png => ccrysmn.Dab1-ETk.png} (100%) delete mode 100644 dev/assets/chunks/@localSearchIndexroot.CeRkZQsH.js create mode 100644 dev/assets/chunks/@localSearchIndexroot.DjI2oAK6.js rename dev/assets/chunks/{VPLocalSearchBox.LH27nImM.js => VPLocalSearchBox.DZXphNwP.js} (99%) create mode 100644 dev/assets/chunks/framework.B0Ss3dHN.js delete mode 100644 dev/assets/chunks/framework.B9oBnxE7.js rename dev/assets/chunks/{theme.C-Lfz_wz.js => theme.DZANPkyA.js} (99%) delete mode 100644 dev/assets/cldpfuq.DbLiRMiy.png rename dev/assets/{gxwpnqk.C3SxJ3x-.png => cwymcju.C3SxJ3x-.png} (100%) rename dev/assets/{kpwfuad.mCtKcWOr.png => dhblkfo.mCtKcWOr.png} (100%) rename dev/assets/{izivjpe.Dig-DWOQ.png => dngpdrf.Dig-DWOQ.png} (100%) rename dev/assets/{dmyrnfb.DTKLkKh_.png => dsjwujh.DTKLkKh_.png} (100%) delete mode 100644 dev/assets/dzyqzlu.C5N3xVUC.png rename dev/assets/{qeoallh.D5-bot8v.png => eeaiohh.D5-bot8v.png} (100%) delete mode 100644 dev/assets/eidxoxd.DpYrIdUh.png rename dev/assets/{experiments_accurate_accumulators.md.zt5Wx885.js => experiments_accurate_accumulators.md.DqCWQDFY.js} (98%) rename dev/assets/{experiments_accurate_accumulators.md.zt5Wx885.lean.js => experiments_accurate_accumulators.md.DqCWQDFY.lean.js} (98%) rename dev/assets/{experiments_predicates.md.DADaA-mw.lean.js => experiments_predicates.md.CftgDXAy.js} (99%) rename dev/assets/{experiments_predicates.md.DADaA-mw.js => experiments_predicates.md.CftgDXAy.lean.js} (99%) rename dev/assets/{explanations_crs.md.olo7NCMO.js => explanations_crs.md._RGEVBFG.js} (83%) rename dev/assets/{explanations_crs.md.olo7NCMO.lean.js => explanations_crs.md._RGEVBFG.lean.js} (83%) rename dev/assets/{explanations_paradigms.md.D8UL_RQZ.js => explanations_paradigms.md.CNrPdHXR.js} (97%) rename dev/assets/{explanations_paradigms.md.D8UL_RQZ.lean.js => explanations_paradigms.md.CNrPdHXR.lean.js} (97%) rename dev/assets/{explanations_peculiarities.md.BPTJUSzz.js => explanations_peculiarities.md.D1LUoEKV.js} (96%) rename dev/assets/{explanations_peculiarities.md.BPTJUSzz.lean.js => explanations_peculiarities.md.D1LUoEKV.lean.js} (96%) rename dev/assets/{explanations_winding_order.md.CwOzGM5W.js => explanations_winding_order.md.CDqCuuUs.js} (84%) rename dev/assets/{explanations_winding_order.md.CwOzGM5W.lean.js => explanations_winding_order.md.CDqCuuUs.lean.js} (84%) delete mode 100644 dev/assets/hqsdgwp.sS_Fuefu.png rename dev/assets/{index.md.BxTfxUBa.js => index.md.DekoSsoW.js} (96%) rename dev/assets/{index.md.BxTfxUBa.lean.js => index.md.DekoSsoW.lean.js} (96%) rename dev/assets/{introduction.md.DMSw2cvK.js => introduction.md.CDdh5Sjo.js} (95%) rename dev/assets/{introduction.md.DMSw2cvK.lean.js => introduction.md.CDdh5Sjo.lean.js} (95%) delete mode 100644 dev/assets/itssczc.DsRRHTcy.png delete mode 100644 dev/assets/jdmlgmk.Ld9T2t3C.png delete mode 100644 dev/assets/jkijtgh.CD6tsQoA.png rename dev/assets/{fgstgnj.rOsRk89v.png => lewnlwz.rOsRk89v.png} (100%) rename dev/assets/{vgaqycr.Cb0_DiYE.png => lfkbiyn.Cb0_DiYE.png} (100%) rename dev/assets/{djtifut.DiwGEg2f.png => lybcrnj.DiwGEg2f.png} (100%) rename dev/assets/{hiphqee.DHcwB147.png => nbkkzbs.DHcwB147.png} (100%) rename dev/assets/{ykhxikq.4wfjCtJV.png => nbufiob.4wfjCtJV.png} (100%) rename dev/assets/{jhvrbrf._0R9BbFk.png => nhnkjbu._0R9BbFk.png} (100%) create mode 100644 dev/assets/nswzqgn.D9Jcxa43.png create mode 100644 dev/assets/nzgypfi.JNr-H8gr.png rename dev/assets/{rsxzpqi.CPClNl7F.png => pnjlkev.CPClNl7F.png} (100%) rename dev/assets/{simoaxi.B94PsR1K.png => pshmrok.B94PsR1K.png} (100%) rename dev/assets/{tzplwye.DeeQUply.png => rabkbtk.DeeQUply.png} (100%) rename dev/assets/{dakcocu.3UVIT8DR.png => rbqikhv.3UVIT8DR.png} (100%) rename dev/assets/{jepbnum.DC3TvBOO.png => rkdwnhp.DC3TvBOO.png} (100%) create mode 100644 dev/assets/rnaehas.CCwTMR41.png rename dev/assets/{qncsgbg.3sfpQl2i.png => rngeqqd.3sfpQl2i.png} (100%) rename dev/assets/{hkumiam.D9AE7i2o.png => rnkakvw.D9AE7i2o.png} (100%) create mode 100644 dev/assets/rxbguvl.CD3O6lbE.png rename dev/assets/{ggsdqev.BD0hVfse.png => sdgtpke.BD0hVfse.png} (100%) rename dev/assets/{source_GeometryOps.md.DNnOkAK4.js => source_GeometryOps.md.CISTZdtA.js} (99%) rename dev/assets/{source_GeometryOps.md.DNnOkAK4.lean.js => source_GeometryOps.md.CISTZdtA.lean.js} (99%) rename dev/assets/{source_methods_angles.md.DJQFUrD6.lean.js => source_methods_angles.md.ukA9IUfs.js} (99%) rename dev/assets/{source_methods_angles.md.DJQFUrD6.js => source_methods_angles.md.ukA9IUfs.lean.js} (99%) rename dev/assets/{source_methods_area.md.WQrOX1wx.js => source_methods_area.md.Do01enJt.js} (99%) rename dev/assets/{source_methods_area.md.WQrOX1wx.lean.js => source_methods_area.md.Do01enJt.lean.js} (99%) rename dev/assets/{source_methods_barycentric.md.Bposdlxu.js => source_methods_barycentric.md.warUpGU6.js} (99%) rename dev/assets/{source_methods_barycentric.md.Bposdlxu.lean.js => source_methods_barycentric.md.warUpGU6.lean.js} (99%) rename dev/assets/{source_methods_buffer.md.CueWHjge.js => source_methods_buffer.md.BLI5va4z.js} (98%) rename dev/assets/{source_methods_buffer.md.CueWHjge.lean.js => source_methods_buffer.md.BLI5va4z.lean.js} (98%) rename dev/assets/{source_methods_centroid.md.BQUmMSwV.js => source_methods_centroid.md.CvPZjUoH.js} (99%) rename dev/assets/{source_methods_centroid.md.BQUmMSwV.lean.js => source_methods_centroid.md.CvPZjUoH.lean.js} (99%) rename dev/assets/{source_methods_clipping_clipping_processor.md.BOh5dOOA.js => source_methods_clipping_clipping_processor.md.D1cLUmXv.js} (99%) rename dev/assets/{source_methods_clipping_clipping_processor.md.BOh5dOOA.lean.js => source_methods_clipping_clipping_processor.md.D1cLUmXv.lean.js} (99%) rename dev/assets/{source_methods_clipping_coverage.md.DZJIW-uD.js => source_methods_clipping_coverage.md.TKsPhvkZ.js} (99%) rename dev/assets/{source_methods_clipping_coverage.md.DZJIW-uD.lean.js => source_methods_clipping_coverage.md.TKsPhvkZ.lean.js} (99%) rename dev/assets/{source_methods_clipping_cut.md.CZH3PQSC.js => source_methods_clipping_cut.md.Dgrhm9R2.js} (99%) rename dev/assets/{source_methods_clipping_cut.md.CZH3PQSC.lean.js => source_methods_clipping_cut.md.Dgrhm9R2.lean.js} (99%) rename dev/assets/{source_methods_clipping_difference.md.r4ONkeOe.js => source_methods_clipping_difference.md.BHC8HbPw.js} (99%) rename dev/assets/{source_methods_clipping_difference.md.r4ONkeOe.lean.js => source_methods_clipping_difference.md.BHC8HbPw.lean.js} (99%) rename dev/assets/{source_methods_clipping_intersection.md.CCcO6qWd.js => source_methods_clipping_intersection.md.YOXybPsc.js} (99%) rename dev/assets/{source_methods_clipping_intersection.md.CCcO6qWd.lean.js => source_methods_clipping_intersection.md.YOXybPsc.lean.js} (99%) rename dev/assets/{source_methods_clipping_predicates.md.CODrYlJF.js => source_methods_clipping_predicates.md._lB4tLPb.js} (99%) rename dev/assets/{source_methods_clipping_predicates.md.CODrYlJF.lean.js => source_methods_clipping_predicates.md._lB4tLPb.lean.js} (99%) rename dev/assets/{source_methods_clipping_union.md.BdEMEvRX.js => source_methods_clipping_union.md.D-TbsSpY.js} (99%) rename dev/assets/{source_methods_clipping_union.md.BdEMEvRX.lean.js => source_methods_clipping_union.md.D-TbsSpY.lean.js} (99%) rename dev/assets/{source_methods_convex_hull.md.CedUcdWz.js => source_methods_convex_hull.md.NFIi0ZD0.js} (99%) rename dev/assets/{source_methods_convex_hull.md.CedUcdWz.lean.js => source_methods_convex_hull.md.NFIi0ZD0.lean.js} (99%) rename dev/assets/{source_methods_distance.md.CUPw5La4.js => source_methods_distance.md.B3RCvmDv.js} (99%) rename dev/assets/{source_methods_distance.md.CUPw5La4.lean.js => source_methods_distance.md.B3RCvmDv.lean.js} (99%) rename dev/assets/{source_methods_equals.md.CkYarU2j.js => source_methods_equals.md.D7YcKc5y.js} (99%) rename dev/assets/{source_methods_equals.md.CkYarU2j.lean.js => source_methods_equals.md.D7YcKc5y.lean.js} (99%) rename dev/assets/{source_methods_geom_relations_contains.md.rZ9SU5W6.js => source_methods_geom_relations_contains.md.BBRCw1_f.js} (98%) rename dev/assets/{source_methods_geom_relations_contains.md.rZ9SU5W6.lean.js => source_methods_geom_relations_contains.md.BBRCw1_f.lean.js} (98%) rename dev/assets/{source_methods_geom_relations_coveredby.md.DY5ZSx3z.js => source_methods_geom_relations_coveredby.md.DCGcwlqC.js} (99%) rename dev/assets/{source_methods_geom_relations_coveredby.md.DY5ZSx3z.lean.js => source_methods_geom_relations_coveredby.md.DCGcwlqC.lean.js} (99%) rename dev/assets/{source_methods_geom_relations_covers.md.CPJ3Bl2j.js => source_methods_geom_relations_covers.md.DcOwRjYX.js} (98%) rename dev/assets/{source_methods_geom_relations_covers.md.CPJ3Bl2j.lean.js => source_methods_geom_relations_covers.md.DcOwRjYX.lean.js} (98%) rename dev/assets/{source_methods_geom_relations_crosses.md.D7R-Fl5Y.js => source_methods_geom_relations_crosses.md.CjXmPRlk.js} (99%) rename dev/assets/{source_methods_geom_relations_crosses.md.D7R-Fl5Y.lean.js => source_methods_geom_relations_crosses.md.CjXmPRlk.lean.js} (99%) rename dev/assets/{source_methods_geom_relations_disjoint.md.BDF7Z8l1.js => source_methods_geom_relations_disjoint.md.BYLRIf7-.js} (99%) rename dev/assets/{source_methods_geom_relations_disjoint.md.BDF7Z8l1.lean.js => source_methods_geom_relations_disjoint.md.BYLRIf7-.lean.js} (99%) rename dev/assets/{source_methods_geom_relations_geom_geom_processors.md.BZCoUBOQ.js => source_methods_geom_relations_geom_geom_processors.md.DoSX0nd_.js} (99%) rename dev/assets/{source_methods_geom_relations_geom_geom_processors.md.BZCoUBOQ.lean.js => source_methods_geom_relations_geom_geom_processors.md.DoSX0nd_.lean.js} (99%) rename dev/assets/{source_methods_geom_relations_intersects.md.DCCZpt4n.js => source_methods_geom_relations_intersects.md.C7r9I1BI.js} (98%) rename dev/assets/{source_methods_geom_relations_intersects.md.DCCZpt4n.lean.js => source_methods_geom_relations_intersects.md.C7r9I1BI.lean.js} (98%) rename dev/assets/{source_methods_geom_relations_overlaps.md.CvcH8LNG.js => source_methods_geom_relations_overlaps.md.O3O0qXk8.js} (99%) rename dev/assets/{source_methods_geom_relations_overlaps.md.CvcH8LNG.lean.js => source_methods_geom_relations_overlaps.md.O3O0qXk8.lean.js} (99%) rename dev/assets/{source_methods_geom_relations_touches.md.DsnREoFX.js => source_methods_geom_relations_touches.md.BEMKQZS2.js} (99%) rename dev/assets/{source_methods_geom_relations_touches.md.DsnREoFX.lean.js => source_methods_geom_relations_touches.md.BEMKQZS2.lean.js} (99%) rename dev/assets/{source_methods_geom_relations_within.md.D7xZ4SZL.js => source_methods_geom_relations_within.md.CladBRqO.js} (99%) rename dev/assets/{source_methods_geom_relations_within.md.D7xZ4SZL.lean.js => source_methods_geom_relations_within.md.CladBRqO.lean.js} (99%) rename dev/assets/{source_methods_orientation.md.CJ5sSCzc.js => source_methods_orientation.md.CWpaqwvx.js} (99%) rename dev/assets/{source_methods_orientation.md.CJ5sSCzc.lean.js => source_methods_orientation.md.CWpaqwvx.lean.js} (99%) rename dev/assets/{source_methods_polygonize.md.CtlVBLXz.js => source_methods_polygonize.md.uB4iwmdu.js} (99%) rename dev/assets/{source_methods_polygonize.md.CtlVBLXz.lean.js => source_methods_polygonize.md.uB4iwmdu.lean.js} (99%) rename dev/assets/{source_not_implemented_yet.md.MCIqLYiF.js => source_not_implemented_yet.md.Bsubdj8P.js} (94%) rename dev/assets/{source_not_implemented_yet.md.MCIqLYiF.lean.js => source_not_implemented_yet.md.Bsubdj8P.lean.js} (94%) rename dev/assets/{source_primitives.md.DgVD9ya5.js => source_primitives.md.B63LzEac.js} (99%) rename dev/assets/{source_primitives.md.DgVD9ya5.lean.js => source_primitives.md.B63LzEac.lean.js} (99%) rename dev/assets/{source_transformations_correction_closed_ring.md.Ctg_GWEB.js => source_transformations_correction_closed_ring.md.DqulCeOT.js} (99%) rename dev/assets/{source_transformations_correction_closed_ring.md.Ctg_GWEB.lean.js => source_transformations_correction_closed_ring.md.DqulCeOT.lean.js} (99%) rename dev/assets/{source_transformations_correction_geometry_correction.md.CWM5TiYs.js => source_transformations_correction_geometry_correction.md.WX6iVPd4.js} (97%) rename dev/assets/{source_transformations_correction_geometry_correction.md.CWM5TiYs.lean.js => source_transformations_correction_geometry_correction.md.WX6iVPd4.lean.js} (97%) rename dev/assets/{source_transformations_correction_intersecting_polygons.md.BkfNriZS.js => source_transformations_correction_intersecting_polygons.md.BoAkYnvk.js} (99%) rename dev/assets/{source_transformations_correction_intersecting_polygons.md.BkfNriZS.lean.js => source_transformations_correction_intersecting_polygons.md.BoAkYnvk.lean.js} (99%) rename dev/assets/{source_transformations_extent.md.C2PAEcJR.js => source_transformations_extent.md.B3JOS_Vt.js} (95%) rename dev/assets/{source_transformations_extent.md.C2PAEcJR.lean.js => source_transformations_extent.md.B3JOS_Vt.lean.js} (95%) rename dev/assets/{source_transformations_flip.md.CQd98wvw.js => source_transformations_flip.md.CzCsDiZ2.js} (97%) rename dev/assets/{source_transformations_flip.md.CQd98wvw.lean.js => source_transformations_flip.md.CzCsDiZ2.lean.js} (97%) rename dev/assets/{source_transformations_reproject.md.B3dLlAHy.js => source_transformations_reproject.md.CQSHmG_K.js} (98%) rename dev/assets/{source_transformations_reproject.md.B3dLlAHy.lean.js => source_transformations_reproject.md.CQSHmG_K.lean.js} (98%) rename dev/assets/{source_transformations_segmentize.md.FzoXEUxb.js => source_transformations_segmentize.md.DCSzM58m.js} (99%) rename dev/assets/{source_transformations_segmentize.md.FzoXEUxb.lean.js => source_transformations_segmentize.md.DCSzM58m.lean.js} (99%) rename dev/assets/{source_transformations_simplify.md.LsrfUdCs.js => source_transformations_simplify.md.BtEM-RYN.js} (99%) rename dev/assets/{source_transformations_simplify.md.LsrfUdCs.lean.js => source_transformations_simplify.md.BtEM-RYN.lean.js} (99%) rename dev/assets/{source_transformations_transform.md.CTodlzuV.js => source_transformations_transform.md.D50yl898.js} (98%) rename dev/assets/{source_transformations_transform.md.CTodlzuV.lean.js => source_transformations_transform.md.D50yl898.lean.js} (98%) rename dev/assets/{source_transformations_tuples.md.CQtVCMR5.js => source_transformations_tuples.md.BSO5jndR.js} (96%) rename dev/assets/{source_transformations_tuples.md.CQtVCMR5.lean.js => source_transformations_tuples.md.BSO5jndR.lean.js} (96%) rename dev/assets/{source_types.md.Blt3PWgm.js => source_types.md.D23Fcnpy.js} (99%) rename dev/assets/{source_types.md.Blt3PWgm.lean.js => source_types.md.D23Fcnpy.lean.js} (99%) rename dev/assets/{source_utils.md.on7iMB6f.js => source_utils.md.BAUiaq8M.js} (99%) rename dev/assets/{source_utils.md.on7iMB6f.lean.js => source_utils.md.BAUiaq8M.lean.js} (99%) rename dev/assets/{lixjkeo.CgiryX2p.png => swezuxk.CgiryX2p.png} (100%) rename dev/assets/{nzqlyub.Bglvb-jp.png => syrxnah.Bglvb-jp.png} (100%) rename dev/assets/{omjlqzr.BEFUMtlf.png => tlougwp.BEFUMtlf.png} (100%) create mode 100644 dev/assets/tmzqbco.Ds4_I6QN.png rename dev/assets/{tutorials_creating_geometry.md.CXM5034I.js => tutorials_creating_geometry.md.CWhgTWcM.js} (99%) rename dev/assets/{tutorials_creating_geometry.md.CXM5034I.lean.js => tutorials_creating_geometry.md.CWhgTWcM.lean.js} (99%) rename dev/assets/{tutorials_geodesic_paths.md.BCOcCatY.js => tutorials_geodesic_paths.md._RhqTYOW.js} (97%) rename dev/assets/{tutorials_geodesic_paths.md.BCOcCatY.lean.js => tutorials_geodesic_paths.md._RhqTYOW.lean.js} (97%) rename dev/assets/{tutorials_spatial_joins.md.B7N3iyRl.js => tutorials_spatial_joins.md.3ItQXtC7.js} (99%) rename dev/assets/{tutorials_spatial_joins.md.B7N3iyRl.lean.js => tutorials_spatial_joins.md.3ItQXtC7.lean.js} (99%) rename dev/assets/{xhjkqlp.CZy9YIUA.png => ucnshtv.CZy9YIUA.png} (100%) rename dev/assets/{udsihcc.DaovVbE6.png => vdymleu.DaovVbE6.png} (100%) create mode 100644 dev/assets/vnpjlew._p8xhozb.png rename dev/assets/{wlivhzq.DuBHk1fh.png => vudteoq.DuBHk1fh.png} (100%) create mode 100644 dev/assets/vzynugw.C2qyL0pp.png create mode 100644 dev/assets/wiiqzty.B1-COp2s.png rename dev/assets/{uozbjwy.0f3Lq4Lw.png => ydfaqmc.0f3Lq4Lw.png} (100%) delete mode 100644 dev/assets/ydfkdpp.Bj1uXsmn.png rename dev/assets/{xadzjhs.Cx40vhB3.png => zbdndpn.Cx40vhB3.png} (100%) rename dev/assets/{kknjmky.0OJvb21A.png => zcclcqv.0OJvb21A.png} (100%) diff --git a/dev/404.html b/dev/404.html index 87facf402..1bd8cb427 100644 --- a/dev/404.html +++ b/dev/404.html @@ -8,7 +8,7 @@ - + @@ -16,7 +16,7 @@
- + \ No newline at end of file diff --git a/dev/api.html b/dev/api.html index 111f1a3df..cb9cea41b 100644 --- a/dev/api.html +++ b/dev/api.html @@ -8,26 +8,26 @@ - + - - - + + + -
Skip to content

Full GeometryOps API documentation

Warning

This page is still very much WIP!

Documentation for GeometryOps's full API (only for reference!).

apply and associated functions

# GeometryOps.applyFunction.
julia
apply(f, target::Union{TraitTarget, GI.AbstractTrait}, obj; kw...)

Reconstruct a geometry, feature, feature collection, or nested vectors of either using the function f on the target trait.

f(target_geom) => x where x also has the target trait, or a trait that can be substituted. For example, swapping PolgonTrait to MultiPointTrait will fail if the outer object has MultiPolygonTrait, but should work if it has FeatureTrait.

Objects "shallower" than the target trait are always completely rebuilt, like a Vector of FeatureCollectionTrait of FeatureTrait when the target has PolygonTrait and is held in the features. These will always be GeoInterface geometries/feature/feature collections. But "deeper" objects may remain unchanged or be whatever GeoInterface compatible objects f returns.

The result is a functionally similar geometry with values depending on f.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

Example

Flipped point the order in any feature or geometry, or iterables of either:

julia
import GeoInterface as GI
+    
Skip to content

Full GeometryOps API documentation

Warning

This page is still very much WIP!

Documentation for GeometryOps's full API (only for reference!).

apply and associated functions

# GeometryOps.applyFunction.
julia
apply(f, target::Union{TraitTarget, GI.AbstractTrait}, obj; kw...)

Reconstruct a geometry, feature, feature collection, or nested vectors of either using the function f on the target trait.

f(target_geom) => x where x also has the target trait, or a trait that can be substituted. For example, swapping PolgonTrait to MultiPointTrait will fail if the outer object has MultiPolygonTrait, but should work if it has FeatureTrait.

Objects "shallower" than the target trait are always completely rebuilt, like a Vector of FeatureCollectionTrait of FeatureTrait when the target has PolygonTrait and is held in the features. These will always be GeoInterface geometries/feature/feature collections. But "deeper" objects may remain unchanged or be whatever GeoInterface compatible objects f returns.

The result is a functionally similar geometry with values depending on f.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

Example

Flipped point the order in any feature or geometry, or iterables of either:

julia
import GeoInterface as GI
 import GeometryOps as GO
 geom = GI.Polygon([GI.LinearRing([(1, 2), (3, 4), (5, 6), (1, 2)]),
                    GI.LinearRing([(3, 4), (5, 6), (6, 7), (3, 4)])])
 
 flipped_geom = GO.apply(GI.PointTrait, geom) do p
     (GI.y(p), GI.x(p))
-end

source


# GeometryOps.applyreduceFunction.
julia
applyreduce(f, op, target::Union{TraitTarget, GI.AbstractTrait}, obj; threaded)

Apply function f to all objects with the target trait, and reduce the result with an op like +.

The order and grouping of application of op is not guaranteed.

If threaded==true threads will be used over arrays and iterables, feature collections and nested geometries.

source


# GeometryOps.reprojectFunction.
julia
reproject(geometry; source_crs, target_crs, transform, always_xy, time)
+end

source


# GeometryOps.applyreduceFunction.
julia
applyreduce(f, op, target::Union{TraitTarget, GI.AbstractTrait}, obj; threaded)

Apply function f to all objects with the target trait, and reduce the result with an op like +.

The order and grouping of application of op is not guaranteed.

If threaded==true threads will be used over arrays and iterables, feature collections and nested geometries.

source


# GeometryOps.reprojectFunction.
julia
reproject(geometry; source_crs, target_crs, transform, always_xy, time)
 reproject(geometry, source_crs, target_crs; always_xy, time)
-reproject(geometry, transform; always_xy, time)

Reproject any GeoInterface.jl compatible geometry from source_crs to target_crs.

The returned object will be constructed from GeoInterface.WrapperGeometry geometries, wrapping views of a Vector{Proj.Point{D}}, where D is the dimension.

Tip

The Proj.jl package must be loaded for this method to work, since it is implemented in a package extension.

Arguments

  • geometry: Any GeoInterface.jl compatible geometries.

  • source_crs: the source coordinate reference system, as a GeoFormatTypes.jl object or a string.

  • target_crs: the target coordinate reference system, as a GeoFormatTypes.jl object or a string.

If these a passed as keywords, transform will take priority. Without it target_crs is always needed, and source_crs is needed if it is not retrievable from the geometry with GeoInterface.crs(geometry).

Keywords

  • always_xy: force x, y coordinate order, true by default. false will expect and return points in the crs coordinate order.

  • time: the time for the coordinates. Inf by default.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source


# GeometryOps.transformFunction.
julia
transform(f, obj)

Apply a function f to all the points in obj.

Points will be passed to f as an SVector to allow using CoordinateTransformations.jl and Rotations.jl without hassle.

SVector is also a valid GeoInterface.jl point, so will work in all GeoInterface.jl methods.

Example

julia
julia> import GeoInterface as GI
+reproject(geometry, transform; always_xy, time)

Reproject any GeoInterface.jl compatible geometry from source_crs to target_crs.

The returned object will be constructed from GeoInterface.WrapperGeometry geometries, wrapping views of a Vector{Proj.Point{D}}, where D is the dimension.

Tip

The Proj.jl package must be loaded for this method to work, since it is implemented in a package extension.

Arguments

  • geometry: Any GeoInterface.jl compatible geometries.

  • source_crs: the source coordinate reference system, as a GeoFormatTypes.jl object or a string.

  • target_crs: the target coordinate reference system, as a GeoFormatTypes.jl object or a string.

If these a passed as keywords, transform will take priority. Without it target_crs is always needed, and source_crs is needed if it is not retrievable from the geometry with GeoInterface.crs(geometry).

Keywords

  • always_xy: force x, y coordinate order, true by default. false will expect and return points in the crs coordinate order.

  • time: the time for the coordinates. Inf by default.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source


# GeometryOps.transformFunction.
julia
transform(f, obj)

Apply a function f to all the points in obj.

Points will be passed to f as an SVector to allow using CoordinateTransformations.jl and Rotations.jl without hassle.

SVector is also a valid GeoInterface.jl point, so will work in all GeoInterface.jl methods.

Example

julia
julia> import GeoInterface as GI
 
 julia> import GeometryOps as GO
 
@@ -46,160 +46,160 @@
 GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearR
 ing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}(StaticArraysCore.SVe
 ctor{2, Int64}[[2, 1], [4, 3], [6, 5], [2, 1]], nothing, nothing), GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}(StaticArraysCore.SVector{2, Int64
-}[[4, 3], [6, 5], [7, 6], [4, 3]], nothing, nothing)], nothing, nothing)

source


General geometry methods

OGC methods

# GeometryOps.containsFunction.
julia
contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the second geometry is completely contained by the first geometry. The interiors of both geometries must intersect and the interior and boundary of the secondary (g2) must not intersect the exterior of the first (g1).

contains returns the exact opposite result of within.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+}[[4, 3], [6, 5], [7, 6], [4, 3]], nothing, nothing)], nothing, nothing)

source


General geometry methods

OGC methods

# GeometryOps.containsFunction.
julia
contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the second geometry is completely contained by the first geometry. The interiors of both geometries must intersect and the interior and boundary of the secondary (g2) must not intersect the exterior of the first (g1).

contains returns the exact opposite result of within.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = GI.Point((1, 2))
 
 GO.contains(line, point)
 # output
-true

source


# GeometryOps.coveredbyFunction.
julia
coveredby(g1, g2)::Bool

Return true if the first geometry is completely covered by the second geometry. The interior and boundary of the primary geometry (g1) must not intersect the exterior of the secondary geometry (g2).

Furthermore, coveredby returns the exact opposite result of covers. They are equivalent with the order of the arguments swapped.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


# GeometryOps.coveredbyFunction.
julia
coveredby(g1, g2)::Bool

Return true if the first geometry is completely covered by the second geometry. The interior and boundary of the primary geometry (g1) must not intersect the exterior of the secondary geometry (g2).

Furthermore, coveredby returns the exact opposite result of covers. They are equivalent with the order of the arguments swapped.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 p1 = GI.Point(0.0, 0.0)
 p2 = GI.Point(1.0, 1.0)
 l1 = GI.Line([p1, p2])
 
 GO.coveredby(p1, l1)
 # output
-true

source


# GeometryOps.coversFunction.
julia
covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the first geometry is completely covers the second geometry, The exterior and boundary of the second geometry must not be outside of the interior and boundary of the first geometry. However, the interiors need not intersect.

covers returns the exact opposite result of coveredby.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


# GeometryOps.coversFunction.
julia
covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the first geometry is completely covers the second geometry, The exterior and boundary of the second geometry must not be outside of the interior and boundary of the first geometry. However, the interiors need not intersect.

covers returns the exact opposite result of coveredby.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 l1 = GI.LineString([(1.0, 1.0), (1.0, 2.0), (1.0, 3.0), (1.0, 4.0)])
 l2 = GI.LineString([(1.0, 1.0), (1.0, 2.0)])
 
 GO.covers(l1, l2)
 # output
-true

source


# GeometryOps.crossesFunction.
julia
 crosses(geom1, geom2)::Bool

Return true if the intersection results in a geometry whose dimension is one less than the maximum dimension of the two source geometries and the intersection set is interior to both source geometries.

TODO: broken

Examples

julia
import GeoInterface as GI, GeometryOps as GO
-# TODO: Add working example

source


# GeometryOps.disjointFunction.
julia
disjoint(geom1, geom2)::Bool

Return true if the first geometry is disjoint from the second geometry.

Return true if the first geometry is disjoint from the second geometry. The interiors and boundaries of both geometries must not intersect.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


# GeometryOps.crossesFunction.
julia
 crosses(geom1, geom2)::Bool

Return true if the intersection results in a geometry whose dimension is one less than the maximum dimension of the two source geometries and the intersection set is interior to both source geometries.

TODO: broken

Examples

julia
import GeoInterface as GI, GeometryOps as GO
+# TODO: Add working example

source


# GeometryOps.disjointFunction.
julia
disjoint(geom1, geom2)::Bool

Return true if the first geometry is disjoint from the second geometry.

Return true if the first geometry is disjoint from the second geometry. The interiors and boundaries of both geometries must not intersect.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = (2, 2)
 GO.disjoint(point, line)
 
 # output
-true

source


# GeometryOps.intersectsFunction.
julia
intersects(geom1, geom2)::Bool

Return true if the interiors or boundaries of the two geometries interact.

intersects returns the exact opposite result of disjoint.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+true

source


# GeometryOps.intersectsFunction.
julia
intersects(geom1, geom2)::Bool

Return true if the interiors or boundaries of the two geometries interact.

intersects returns the exact opposite result of disjoint.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 line1 = GI.Line([(124.584961,-12.768946), (126.738281,-17.224758)])
 line2 = GI.Line([(123.354492,-15.961329), (127.22168,-14.008696)])
 GO.intersects(line1, line2)
 
 # output
-true

source


# GeometryOps.overlapsFunction.
julia
overlaps(geom1, geom2)::Bool

Compare two Geometries of the same dimension and return true if their intersection set results in a geometry different from both but of the same dimension. This means one geometry cannot be within or contain the other and they cannot be equal

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


# GeometryOps.overlapsFunction.
julia
overlaps(geom1, geom2)::Bool

Compare two Geometries of the same dimension and return true if their intersection set results in a geometry different from both but of the same dimension. This means one geometry cannot be within or contain the other and they cannot be equal

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 poly1 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 poly2 = GI.Polygon([[(1,1), (1,6), (6,6), (6,1), (1,1)]])
 
 GO.overlaps(poly1, poly2)
 # output
-true

source

julia
overlaps(::GI.AbstractTrait, geom1, ::GI.AbstractTrait, geom2)::Bool

For any non-specified pair, all have non-matching dimensions, return false.

source

julia
overlaps(
+true

source

julia
overlaps(::GI.AbstractTrait, geom1, ::GI.AbstractTrait, geom2)::Bool

For any non-specified pair, all have non-matching dimensions, return false.

source

julia
overlaps(
     ::GI.MultiPointTrait, points1,
     ::GI.MultiPointTrait, points2,
-)::Bool

If the multipoints overlap, meaning some, but not all, of the points within the multipoints are shared, return true.

source

julia
overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line)::Bool

If the lines overlap, meaning that they are collinear but each have one endpoint outside of the other line, return true. Else false.

source

julia
overlaps(
+)::Bool

If the multipoints overlap, meaning some, but not all, of the points within the multipoints are shared, return true.

source

julia
overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line)::Bool

If the lines overlap, meaning that they are collinear but each have one endpoint outside of the other line, return true. Else false.

source

julia
overlaps(
     ::Union{GI.LineStringTrait, GI.LinearRing}, line1,
     ::Union{GI.LineStringTrait, GI.LinearRing}, line2,
-)::Bool

If the curves overlap, meaning that at least one edge of each curve overlaps, return true. Else false.

source

julia
overlaps(
+)::Bool

If the curves overlap, meaning that at least one edge of each curve overlaps, return true. Else false.

source

julia
overlaps(
     trait_a::GI.PolygonTrait, poly_a,
     trait_b::GI.PolygonTrait, poly_b,
-)::Bool

If the two polygons intersect with one another, but are not equal, return true. Else false.

source

julia
overlaps(
+)::Bool

If the two polygons intersect with one another, but are not equal, return true. Else false.

source

julia
overlaps(
     ::GI.PolygonTrait, poly1,
     ::GI.MultiPolygonTrait, polys2,
-)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

julia
overlaps(
+)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

julia
overlaps(
     ::GI.MultiPolygonTrait, polys1,
     ::GI.PolygonTrait, poly2,
-)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

julia
overlaps(
+)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

julia
overlaps(
     ::GI.MultiPolygonTrait, polys1,
     ::GI.MultiPolygonTrait, polys2,
-)::Bool

Return true if at least one pair of polygons from multipolygons overlap. Else false.

source


# GeometryOps.touchesFunction.
julia
touches(geom1, geom2)::Bool

Return true if the first geometry touches the second geometry. In other words, the two interiors cannot interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+)::Bool

Return true if at least one pair of polygons from multipolygons overlap. Else false.

source


# GeometryOps.touchesFunction.
julia
touches(geom1, geom2)::Bool

Return true if the first geometry touches the second geometry. In other words, the two interiors cannot interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 l1 = GI.Line([(0.0, 0.0), (1.0, 0.0)])
 l2 = GI.Line([(1.0, 1.0), (1.0, -1.0)])
 
 GO.touches(l1, l2)
 # output
-true

source


# GeometryOps.withinFunction.
julia
within(geom1, geom2)::Bool

Return true if the first geometry is completely within the second geometry. The interiors of both geometries must intersect and the interior and boundary of the primary geometry (geom1) must not intersect the exterior of the secondary geometry (geom2).

Furthermore, within returns the exact opposite result of contains.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


# GeometryOps.withinFunction.
julia
within(geom1, geom2)::Bool

Return true if the first geometry is completely within the second geometry. The interiors of both geometries must intersect and the interior and boundary of the primary geometry (geom1) must not intersect the exterior of the secondary geometry (geom2).

Furthermore, within returns the exact opposite result of contains.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = (1, 2)
 GO.within(point, line)
 
 # output
-true

source


Other general methods

# GeometryOps.equalsFunction.
julia
equals(geom1, geom2)::Bool

Compare two Geometries return true if they are the same geometry.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


Other general methods

# GeometryOps.equalsFunction.
julia
equals(geom1, geom2)::Bool

Compare two Geometries return true if they are the same geometry.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 poly1 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 poly2 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 
 GO.equals(poly1, poly2)
 # output
-true

source

julia
equals(::T, geom_a, ::T, geom_b)::Bool

Two geometries of the same type, which don't have a equals function to dispatch off of should throw an error.

source

julia
equals(trait_a, geom_a, trait_b, geom_b)

Two geometries which are not of the same type cannot be equal so they always return false.

source

julia
equals(::GI.PointTrait, p1, ::GI.PointTrait, p2)::Bool

Two points are the same if they have the same x and y (and z if 3D) coordinates.

source

julia
equals(::GI.PointTrait, p1, ::GI.MultiPointTrait, mp2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

julia
equals(::GI.MultiPointTrait, mp1, ::GI.PointTrait, p2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

julia
equals(::GI.MultiPointTrait, mp1, ::GI.MultiPointTrait, mp2)::Bool

Two multipoints are equal if they share the same set of points.

source

julia
equals(
+true

source

julia
equals(::T, geom_a, ::T, geom_b)::Bool

Two geometries of the same type, which don't have a equals function to dispatch off of should throw an error.

source

julia
equals(trait_a, geom_a, trait_b, geom_b)

Two geometries which are not of the same type cannot be equal so they always return false.

source

julia
equals(::GI.PointTrait, p1, ::GI.PointTrait, p2)::Bool

Two points are the same if they have the same x and y (and z if 3D) coordinates.

source

julia
equals(::GI.PointTrait, p1, ::GI.MultiPointTrait, mp2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

julia
equals(::GI.MultiPointTrait, mp1, ::GI.PointTrait, p2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

julia
equals(::GI.MultiPointTrait, mp1, ::GI.MultiPointTrait, mp2)::Bool

Two multipoints are equal if they share the same set of points.

source

julia
equals(
     ::Union{GI.LineTrait, GI.LineStringTrait}, l1,
     ::Union{GI.LineTrait, GI.LineStringTrait}, l2,
-)::Bool

Two lines/linestrings are equal if they share the same set of points going along the curve. Note that lines/linestrings aren't closed by definition.

source

julia
equals(
+)::Bool

Two lines/linestrings are equal if they share the same set of points going along the curve. Note that lines/linestrings aren't closed by definition.

source

julia
equals(
     ::Union{GI.LineTrait, GI.LineStringTrait}, l1,
     ::GI.LinearRingTrait, l2,
-)::Bool

A line/linestring and a linear ring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

julia
equals(
+)::Bool

A line/linestring and a linear ring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

julia
equals(
     ::GI.LinearRingTrait, l1,
     ::Union{GI.LineTrait, GI.LineStringTrait}, l2,
-)::Bool

A linear ring and a line/linestring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

julia
equals(
+)::Bool

A linear ring and a line/linestring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

julia
equals(
     ::GI.LinearRingTrait, l1,
     ::GI.LinearRingTrait, l2,
-)::Bool

Two linear rings are equal if they share the same set of points going along the curve. Note that rings are closed by definition, so they can have, but don't need, a repeated last point to be equal.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two polygons are equal if they share the same exterior edge and holes.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.MultiPolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

julia
equals(::GI.MultiPolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two multipolygons are equal if they share the same set of polygons.

source


# GeometryOps.centroidFunction.
julia
centroid(geom, [T=Float64])::Tuple{T, T}

Returns the centroid of a given line segment, linear ring, polygon, or mutlipolygon.

source


# GeometryOps.distanceFunction.
julia
distance(point, geom, ::Type{T} = Float64)::T

Calculates the ditance from the geometry g1 to the point. The distance will always be positive or zero.

The method will differ based on the type of the geometry provided: - The distance from a point to a point is just the Euclidean distance between the points. - The distance from a point to a line is the minimum distance from the point to the closest point on the given line. - The distance from a point to a linestring is the minimum distance from the point to the closest segment of the linestring. - The distance from a point to a linear ring is the minimum distance from the point to the closest segment of the linear ring. - The distance from a point to a polygon is zero if the point is within the polygon and otherwise is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The distance from a point to a multigeometry or a geometry collection is the minimum distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.signed_distanceFunction.
julia
signed_distance(point, geom, ::Type{T} = Float64)::T

Calculates the signed distance from the geometry geom to the given point. Points within geom have a negative signed distance, and points outside of geom have a positive signed distance. - The signed distance from a point to a point, line, linestring, or linear ring is equal to the distance between the two. - The signed distance from a point to a polygon is negative if the point is within the polygon and is positive otherwise. The value of the distance is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The signed distance from a point to a multigeometry or a geometry collection is the minimum signed distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.areaFunction.
julia
area(geom, [T = Float64])::T

Returns the area of a geometry or collection of geometries. This is computed slightly differently for different geometries:

- The area of a point/multipoint is always zero.
+)::Bool

Two linear rings are equal if they share the same set of points going along the curve. Note that rings are closed by definition, so they can have, but don't need, a repeated last point to be equal.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two polygons are equal if they share the same exterior edge and holes.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.MultiPolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

julia
equals(::GI.MultiPolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two multipolygons are equal if they share the same set of polygons.

source


# GeometryOps.centroidFunction.
julia
centroid(geom, [T=Float64])::Tuple{T, T}

Returns the centroid of a given line segment, linear ring, polygon, or mutlipolygon.

source


# GeometryOps.distanceFunction.
julia
distance(point, geom, ::Type{T} = Float64)::T

Calculates the ditance from the geometry g1 to the point. The distance will always be positive or zero.

The method will differ based on the type of the geometry provided: - The distance from a point to a point is just the Euclidean distance between the points. - The distance from a point to a line is the minimum distance from the point to the closest point on the given line. - The distance from a point to a linestring is the minimum distance from the point to the closest segment of the linestring. - The distance from a point to a linear ring is the minimum distance from the point to the closest segment of the linear ring. - The distance from a point to a polygon is zero if the point is within the polygon and otherwise is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The distance from a point to a multigeometry or a geometry collection is the minimum distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.signed_distanceFunction.
julia
signed_distance(point, geom, ::Type{T} = Float64)::T

Calculates the signed distance from the geometry geom to the given point. Points within geom have a negative signed distance, and points outside of geom have a positive signed distance. - The signed distance from a point to a point, line, linestring, or linear ring is equal to the distance between the two. - The signed distance from a point to a polygon is negative if the point is within the polygon and is positive otherwise. The value of the distance is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The signed distance from a point to a multigeometry or a geometry collection is the minimum signed distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.areaFunction.
julia
area(geom, [T = Float64])::T

Returns the area of a geometry or collection of geometries. This is computed slightly differently for different geometries:

- The area of a point/multipoint is always zero.
 - The area of a curve/multicurve is always zero.
 - The area of a polygon is the absolute value of the signed area.
 - The area multi-polygon is the sum of the areas of all of the sub-polygons.
 - The area of a geometry collection, feature collection of array/iterable 
-    is the sum of the areas of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.signed_areaFunction.
julia
signed_area(geom, [T = Float64])::T

Returns the signed area of a single geometry, based on winding order. This is computed slightly differently for different geometries:

- The signed area of a point is always zero.
+    is the sum of the areas of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.signed_areaFunction.
julia
signed_area(geom, [T = Float64])::T

Returns the signed area of a single geometry, based on winding order. This is computed slightly differently for different geometries:

- The signed area of a point is always zero.
 - The signed area of a curve is always zero.
 - The signed area of a polygon is computed with the shoelace formula and is
 positive if the polygon coordinates wind clockwise and negative if
 counterclockwise.
 - You cannot compute the signed area of a multipolygon as it doesn't have a
-meaning as each sub-polygon could have a different winding order.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.anglesFunction.
julia
angles(geom, ::Type{T} = Float64)

Returns the angles of a geometry or collection of geometries. This is computed differently for different geometries:

- The angles of a point is an empty vector.
+meaning as each sub-polygon could have a different winding order.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.anglesFunction.
julia
angles(geom, ::Type{T} = Float64)

Returns the angles of a geometry or collection of geometries. This is computed differently for different geometries:

- The angles of a point is an empty vector.
 - The angles of a single line segment is an empty vector.
 - The angles of a linestring or linearring is a vector of angles formed by the curve.
 - The angles of a polygon is a vector of vectors of angles formed by each ring.
 - The angles of a multi-geometry collection is a vector of the angles of each of the
-    sub-geometries as defined above.

Result will be a Vector, or nested set of vectors, of type T where an optional argument with a default value of Float64.

source


# GeometryOps.embed_extentFunction.
julia
embed_extent(obj)

Recursively wrap the object with a GeoInterface.jl geometry, calculating and adding an Extents.Extent to all objects.

This can improve performance when extents need to be checked multiple times, such when needing to check if many points are in geometries, and using their extents as a quick filter for obviously exterior points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

source


Barycentric coordinates

# GeometryOps.barycentric_coordinatesFunction.
julia
barycentric_coordinates(method = MeanValue(), polygon, point)

Returns the barycentric coordinates of point in polygon using the barycentric coordinate method method.

source


# GeometryOps.barycentric_coordinates!Function.
julia
barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, polygon, point)

Loads the barycentric coordinates of point in polygon into λs using the barycentric coordinate method method.

λs must be of the length of the polygon plus its holes.

Tip

Use this method to avoid excess allocations when you need to calculate barycentric coordinates for many points.

source


# GeometryOps.barycentric_interpolateFunction.
julia
barycentric_interpolate(method = MeanValue(), polygon, values::AbstractVector{V}, point)

Returns the interpolated value at point within polygon using the barycentric coordinate method method. values are the per-point values for the polygon which are to be interpolated.

Returns an object of type V.

Warning

Barycentric interpolation is currently defined only for 2-dimensional polygons. If you pass a 3-D polygon in, the Z coordinate will be used as per-vertex value to be interpolated (the M coordinate in GIS parlance).

source


Other methods

# GeometryOps.AbstractBarycentricCoordinateMethodType.
julia
abstract type AbstractBarycentricCoordinateMethod

Abstract supertype for barycentric coordinate methods. The subtypes may serve as dispatch types, or may cache some information about the target polygon.

API

The following methods must be implemented for all subtypes:

  • barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, point::Point{2, T2})

  • barycentric_interpolate(method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, values::Vector{V}, point::Point{2, T2})::V

  • barycentric_interpolate(method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, interiors::Vector{<: Vector{<: Point{2, T1}}} values::Vector{V}, point::Point{2, T2})::V

The rest of the methods will be implemented in terms of these, and have efficient dispatches for broadcasting.

source


# GeometryOps.ClosedRingType.
julia
ClosedRing() <: GeometryCorrection

This correction ensures that a polygon's exterior and interior rings are closed.

It can be called on any geometry correction as usual.

See also GeometryCorrection.

source


# GeometryOps.DiffIntersectingPolygonsType.
julia
DiffIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygons included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be made nonintersecting through the difference operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area. See also GeometryCorrection, UnionIntersectingPolygons.

source


# GeometryOps.DouglasPeuckerType.
julia
DouglasPeucker <: SimplifyAlg
+    sub-geometries as defined above.

Result will be a Vector, or nested set of vectors, of type T where an optional argument with a default value of Float64.

source


# GeometryOps.embed_extentFunction.
julia
embed_extent(obj)

Recursively wrap the object with a GeoInterface.jl geometry, calculating and adding an Extents.Extent to all objects.

This can improve performance when extents need to be checked multiple times, such when needing to check if many points are in geometries, and using their extents as a quick filter for obviously exterior points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

source


Barycentric coordinates

# GeometryOps.barycentric_coordinatesFunction.
julia
barycentric_coordinates(method = MeanValue(), polygon, point)

Returns the barycentric coordinates of point in polygon using the barycentric coordinate method method.

source


# GeometryOps.barycentric_coordinates!Function.
julia
barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, polygon, point)

Loads the barycentric coordinates of point in polygon into λs using the barycentric coordinate method method.

λs must be of the length of the polygon plus its holes.

Tip

Use this method to avoid excess allocations when you need to calculate barycentric coordinates for many points.

source


# GeometryOps.barycentric_interpolateFunction.
julia
barycentric_interpolate(method = MeanValue(), polygon, values::AbstractVector{V}, point)

Returns the interpolated value at point within polygon using the barycentric coordinate method method. values are the per-point values for the polygon which are to be interpolated.

Returns an object of type V.

Warning

Barycentric interpolation is currently defined only for 2-dimensional polygons. If you pass a 3-D polygon in, the Z coordinate will be used as per-vertex value to be interpolated (the M coordinate in GIS parlance).

source


Other methods

# GeometryOps.AbstractBarycentricCoordinateMethodType.
julia
abstract type AbstractBarycentricCoordinateMethod

Abstract supertype for barycentric coordinate methods. The subtypes may serve as dispatch types, or may cache some information about the target polygon.

API

The following methods must be implemented for all subtypes:

  • barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, point::Point{2, T2})

  • barycentric_interpolate(method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, values::Vector{V}, point::Point{2, T2})::V

  • barycentric_interpolate(method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, interiors::Vector{<: Vector{<: Point{2, T1}}} values::Vector{V}, point::Point{2, T2})::V

The rest of the methods will be implemented in terms of these, and have efficient dispatches for broadcasting.

source


# GeometryOps.ClosedRingType.
julia
ClosedRing() <: GeometryCorrection

This correction ensures that a polygon's exterior and interior rings are closed.

It can be called on any geometry correction as usual.

See also GeometryCorrection.

source


# GeometryOps.DiffIntersectingPolygonsType.
julia
DiffIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygons included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be made nonintersecting through the difference operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area. See also GeometryCorrection, UnionIntersectingPolygons.

source


# GeometryOps.DouglasPeuckerType.
julia
DouglasPeucker <: SimplifyAlg
 
-DouglasPeucker(; number, ratio, tol)

Simplifies geometries by removing points below tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance a point will be from the line joining its neighboring points.

Note: user input tol is squared to avoid unnecessary computation in algorithm.

source


# GeometryOps.GEOSType.
julia
GEOS(; params...)

A struct which instructs the method it's passed to as an algorithm to use the appropriate GEOS function via LibGEOS.jl for the operation.

Dispatch is generally carried out using the names of the keyword arguments. For example, segmentize will only accept a GEOS struct with only a max_distance keyword, and no other.

It's generally a lot slower than the native Julia implementations, since it must convert to the LibGEOS implementation and back - so be warned!

source


# GeometryOps.GeodesicSegmentsType.
julia
GeodesicSegments(; max_distance::Real, equatorial_radius::Real=6378137, flattening::Real=1/298.257223563)

A method for segmentizing geometries by adding extra vertices to the geometry so that no segment is longer than a given distance. This method calculates the distance between points on the geodesic, and assumes input in lat/long coordinates.

Warning

Any input geometries must be in lon/lat coordinates! If not, the method may fail or error.

Arguments

  • max_distance::Real: The maximum distance, in meters, between vertices in the geometry.

  • equatorial_radius::Real=6378137: The equatorial radius of the Earth, in meters. Passed to Proj.geod_geodesic.

  • flattening::Real=1/298.257223563: The flattening of the Earth, which is the ratio of the difference between the equatorial and polar radii to the equatorial radius. Passed to Proj.geod_geodesic.

One can also omit the equatorial_radius and flattening keyword arguments, and pass a geodesic object directly to the eponymous keyword.

This method uses the Proj/GeographicLib API for geodesic calculations.

source


# GeometryOps.GeometryCorrectionType.
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source


# GeometryOps.LineOrientationType.
julia
Enum LineOrientation

Enum for the orientation of a line with respect to a curve. A line can be line_cross (crossing over the curve), line_hinge (crossing the endpoint of the curve), line_over (collinear with the curve), or line_out (not interacting with the curve).

source


# GeometryOps.LinearSegmentsType.
julia
LinearSegments(; max_distance::Real)

A method for segmentizing geometries by adding extra vertices to the geometry so that no segment is longer than a given distance.

Here, max_distance is a purely nondimensional quantity and will apply in the input space. This is to say, that if the polygon is provided in lat/lon coordinates then the max_distance will be in degrees of arc. If the polygon is provided in meters, then the max_distance will be in meters.

source


# GeometryOps.MeanValueType.
julia
MeanValue() <: AbstractBarycentricCoordinateMethod

This method calculates barycentric coordinates using the mean value method.

References

source


# GeometryOps.MonotoneChainMethodType.
julia
MonotoneChainMethod()

This is an algorithm for the convex_hull function.

Uses DelaunayTriangulation.jl to compute the convex hull. This is a pure Julia algorithm which provides an optimal Delaunay triangulation.

See also convex_hull

source


# GeometryOps.PointOrientationType.
julia
Enum PointOrientation

Enum for the orientation of a point with respect to a curve. A point can be point_in the curve, point_on the curve, or point_out of the curve.

source


# GeometryOps.RadialDistanceType.
julia
RadialDistance <: SimplifyAlg

Simplifies geometries by removing points less than tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance between points.

Note: user input tol is squared to avoid unnecessary computation in algorithm.

source


# GeometryOps.SimplifyAlgType.
julia
abstract type SimplifyAlg

Abstract type for simplification algorithms.

API

For now, the algorithm must hold the number, ratio and tol properties.

Simplification algorithm types can hook into the interface by implementing the _simplify(trait, alg, geom) methods for whichever traits are necessary.

source


# GeometryOps.TraitTargetType.
julia
TraitTarget{T}

This struct holds a trait parameter or a union of trait parameters.

It is primarily used for dispatch into methods which select trait levels, like apply, or as a parameter to target.

Constructors

julia
TraitTarget(GI.PointTrait())
+DouglasPeucker(; number, ratio, tol)

Simplifies geometries by removing points below tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance a point will be from the line joining its neighboring points.

Note: user input tol is squared to avoid unnecessary computation in algorithm.

source


# GeometryOps.GEOSType.
julia
GEOS(; params...)

A struct which instructs the method it's passed to as an algorithm to use the appropriate GEOS function via LibGEOS.jl for the operation.

Dispatch is generally carried out using the names of the keyword arguments. For example, segmentize will only accept a GEOS struct with only a max_distance keyword, and no other.

It's generally a lot slower than the native Julia implementations, since it must convert to the LibGEOS implementation and back - so be warned!

source


# GeometryOps.GeodesicSegmentsType.
julia
GeodesicSegments(; max_distance::Real, equatorial_radius::Real=6378137, flattening::Real=1/298.257223563)

A method for segmentizing geometries by adding extra vertices to the geometry so that no segment is longer than a given distance. This method calculates the distance between points on the geodesic, and assumes input in lat/long coordinates.

Warning

Any input geometries must be in lon/lat coordinates! If not, the method may fail or error.

Arguments

  • max_distance::Real: The maximum distance, in meters, between vertices in the geometry.

  • equatorial_radius::Real=6378137: The equatorial radius of the Earth, in meters. Passed to Proj.geod_geodesic.

  • flattening::Real=1/298.257223563: The flattening of the Earth, which is the ratio of the difference between the equatorial and polar radii to the equatorial radius. Passed to Proj.geod_geodesic.

One can also omit the equatorial_radius and flattening keyword arguments, and pass a geodesic object directly to the eponymous keyword.

This method uses the Proj/GeographicLib API for geodesic calculations.

source


# GeometryOps.GeometryCorrectionType.
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source


# GeometryOps.LineOrientationType.
julia
Enum LineOrientation

Enum for the orientation of a line with respect to a curve. A line can be line_cross (crossing over the curve), line_hinge (crossing the endpoint of the curve), line_over (collinear with the curve), or line_out (not interacting with the curve).

source


# GeometryOps.LinearSegmentsType.
julia
LinearSegments(; max_distance::Real)

A method for segmentizing geometries by adding extra vertices to the geometry so that no segment is longer than a given distance.

Here, max_distance is a purely nondimensional quantity and will apply in the input space. This is to say, that if the polygon is provided in lat/lon coordinates then the max_distance will be in degrees of arc. If the polygon is provided in meters, then the max_distance will be in meters.

source


# GeometryOps.MeanValueType.
julia
MeanValue() <: AbstractBarycentricCoordinateMethod

This method calculates barycentric coordinates using the mean value method.

References

source


# GeometryOps.MonotoneChainMethodType.
julia
MonotoneChainMethod()

This is an algorithm for the convex_hull function.

Uses DelaunayTriangulation.jl to compute the convex hull. This is a pure Julia algorithm which provides an optimal Delaunay triangulation.

See also convex_hull

source


# GeometryOps.PointOrientationType.
julia
Enum PointOrientation

Enum for the orientation of a point with respect to a curve. A point can be point_in the curve, point_on the curve, or point_out of the curve.

source


# GeometryOps.RadialDistanceType.
julia
RadialDistance <: SimplifyAlg

Simplifies geometries by removing points less than tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance between points.

Note: user input tol is squared to avoid unnecessary computation in algorithm.

source


# GeometryOps.SimplifyAlgType.
julia
abstract type SimplifyAlg

Abstract type for simplification algorithms.

API

For now, the algorithm must hold the number, ratio and tol properties.

Simplification algorithm types can hook into the interface by implementing the _simplify(trait, alg, geom) methods for whichever traits are necessary.

source


# GeometryOps.TraitTargetType.
julia
TraitTarget{T}

This struct holds a trait parameter or a union of trait parameters.

It is primarily used for dispatch into methods which select trait levels, like apply, or as a parameter to target.

Constructors

julia
TraitTarget(GI.PointTrait())
 TraitTarget(GI.LineStringTrait(), GI.LinearRingTrait()) # and other traits as you may like
 TraitTarget(TraitTarget(...))
 # There are also type based constructors available, but that's not advised.
 TraitTarget(GI.PointTrait)
 TraitTarget(Union{GI.LineStringTrait, GI.LinearRingTrait})
-# etc.

source


# GeometryOps.UnionIntersectingPolygonsType.
julia
UnionIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygon's included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be combined through the union operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area.

See also GeometryCorrection.

source


# GeometryOps.VisvalingamWhyattType.
julia
VisvalingamWhyatt <: SimplifyAlg
+# etc.

source


# GeometryOps.UnionIntersectingPolygonsType.
julia
UnionIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygon's included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be combined through the union operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area.

See also GeometryCorrection.

source


# GeometryOps.VisvalingamWhyattType.
julia
VisvalingamWhyatt <: SimplifyAlg
 
-VisvalingamWhyatt(; kw...)

Simplifies geometries by removing points below tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum area of a triangle made with a point and its neighboring points.

Note: user input tol is doubled to avoid unnecessary computation in algorithm.

source


# GeometryOps._detMethod.
julia
_det(s1::Point2{T1}, s2::Point2{T2}) where {T1 <: Real, T2 <: Real}

Returns the determinant of the matrix formed by hcat'ing two points s1 and s2.

Specifically, this is:

julia
s1[1] * s2[2] - s1[2] * s2[1]

source


# GeometryOps._equals_curvesMethod.
julia
_equals_curves(c1, c2, closed_type1, closed_type2)::Bool

Two curves are equal if they share the same set of point, representing the same geometry. Both curves must must be composed of the same set of points, however, they do not have to wind in the same direction, or start on the same point to be equivalent. Inputs: c1 first geometry c2 second geometry closed_type1::Bool true if c1 is closed by definition (polygon, linear ring) closed_type2::Bool true if c2 is closed by definition (polygon, linear ring)

source


# GeometryOps.anglesMethod.
julia
angles(geom, ::Type{T} = Float64)

Returns the angles of a geometry or collection of geometries. This is computed differently for different geometries:

- The angles of a point is an empty vector.
+VisvalingamWhyatt(; kw...)

Simplifies geometries by removing points below tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum area of a triangle made with a point and its neighboring points.

Note: user input tol is doubled to avoid unnecessary computation in algorithm.

source


# GeometryOps._detMethod.
julia
_det(s1::Point2{T1}, s2::Point2{T2}) where {T1 <: Real, T2 <: Real}

Returns the determinant of the matrix formed by hcat'ing two points s1 and s2.

Specifically, this is:

julia
s1[1] * s2[2] - s1[2] * s2[1]

source


# GeometryOps._equals_curvesMethod.
julia
_equals_curves(c1, c2, closed_type1, closed_type2)::Bool

Two curves are equal if they share the same set of point, representing the same geometry. Both curves must must be composed of the same set of points, however, they do not have to wind in the same direction, or start on the same point to be equivalent. Inputs: c1 first geometry c2 second geometry closed_type1::Bool true if c1 is closed by definition (polygon, linear ring) closed_type2::Bool true if c2 is closed by definition (polygon, linear ring)

source


# GeometryOps.anglesMethod.
julia
angles(geom, ::Type{T} = Float64)

Returns the angles of a geometry or collection of geometries. This is computed differently for different geometries:

- The angles of a point is an empty vector.
 - The angles of a single line segment is an empty vector.
 - The angles of a linestring or linearring is a vector of angles formed by the curve.
 - The angles of a polygon is a vector of vectors of angles formed by each ring.
 - The angles of a multi-geometry collection is a vector of the angles of each of the
-    sub-geometries as defined above.

Result will be a Vector, or nested set of vectors, of type T where an optional argument with a default value of Float64.

source


# GeometryOps.applyMethod.
julia
apply(f, target::Union{TraitTarget, GI.AbstractTrait}, obj; kw...)

Reconstruct a geometry, feature, feature collection, or nested vectors of either using the function f on the target trait.

f(target_geom) => x where x also has the target trait, or a trait that can be substituted. For example, swapping PolgonTrait to MultiPointTrait will fail if the outer object has MultiPolygonTrait, but should work if it has FeatureTrait.

Objects "shallower" than the target trait are always completely rebuilt, like a Vector of FeatureCollectionTrait of FeatureTrait when the target has PolygonTrait and is held in the features. These will always be GeoInterface geometries/feature/feature collections. But "deeper" objects may remain unchanged or be whatever GeoInterface compatible objects f returns.

The result is a functionally similar geometry with values depending on f.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

Example

Flipped point the order in any feature or geometry, or iterables of either:

julia
import GeoInterface as GI
+    sub-geometries as defined above.

Result will be a Vector, or nested set of vectors, of type T where an optional argument with a default value of Float64.

source


# GeometryOps.applyMethod.
julia
apply(f, target::Union{TraitTarget, GI.AbstractTrait}, obj; kw...)

Reconstruct a geometry, feature, feature collection, or nested vectors of either using the function f on the target trait.

f(target_geom) => x where x also has the target trait, or a trait that can be substituted. For example, swapping PolgonTrait to MultiPointTrait will fail if the outer object has MultiPolygonTrait, but should work if it has FeatureTrait.

Objects "shallower" than the target trait are always completely rebuilt, like a Vector of FeatureCollectionTrait of FeatureTrait when the target has PolygonTrait and is held in the features. These will always be GeoInterface geometries/feature/feature collections. But "deeper" objects may remain unchanged or be whatever GeoInterface compatible objects f returns.

The result is a functionally similar geometry with values depending on f.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

Example

Flipped point the order in any feature or geometry, or iterables of either:

julia
import GeoInterface as GI
 import GeometryOps as GO
 geom = GI.Polygon([GI.LinearRing([(1, 2), (3, 4), (5, 6), (1, 2)]),
                    GI.LinearRing([(3, 4), (5, 6), (6, 7), (3, 4)])])
 
 flipped_geom = GO.apply(GI.PointTrait, geom) do p
     (GI.y(p), GI.x(p))
-end

source


# GeometryOps.applyreduceMethod.
julia
applyreduce(f, op, target::Union{TraitTarget, GI.AbstractTrait}, obj; threaded)

Apply function f to all objects with the target trait, and reduce the result with an op like +.

The order and grouping of application of op is not guaranteed.

If threaded==true threads will be used over arrays and iterables, feature collections and nested geometries.

source


# GeometryOps.areaMethod.
julia
area(geom, [T = Float64])::T

Returns the area of a geometry or collection of geometries. This is computed slightly differently for different geometries:

- The area of a point/multipoint is always zero.
+end

source


# GeometryOps.applyreduceMethod.
julia
applyreduce(f, op, target::Union{TraitTarget, GI.AbstractTrait}, obj; threaded)

Apply function f to all objects with the target trait, and reduce the result with an op like +.

The order and grouping of application of op is not guaranteed.

If threaded==true threads will be used over arrays and iterables, feature collections and nested geometries.

source


# GeometryOps.areaMethod.
julia
area(geom, [T = Float64])::T

Returns the area of a geometry or collection of geometries. This is computed slightly differently for different geometries:

- The area of a point/multipoint is always zero.
 - The area of a curve/multicurve is always zero.
 - The area of a polygon is the absolute value of the signed area.
 - The area multi-polygon is the sum of the areas of all of the sub-polygons.
 - The area of a geometry collection, feature collection of array/iterable 
-    is the sum of the areas of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.barycentric_coordinates!Method.
julia
barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, polygon, point)

Loads the barycentric coordinates of point in polygon into λs using the barycentric coordinate method method.

λs must be of the length of the polygon plus its holes.

Tip

Use this method to avoid excess allocations when you need to calculate barycentric coordinates for many points.

source


# GeometryOps.barycentric_coordinatesMethod.
julia
barycentric_coordinates(method = MeanValue(), polygon, point)

Returns the barycentric coordinates of point in polygon using the barycentric coordinate method method.

source


# GeometryOps.barycentric_interpolateMethod.
julia
barycentric_interpolate(method = MeanValue(), polygon, values::AbstractVector{V}, point)

Returns the interpolated value at point within polygon using the barycentric coordinate method method. values are the per-point values for the polygon which are to be interpolated.

Returns an object of type V.

Warning

Barycentric interpolation is currently defined only for 2-dimensional polygons. If you pass a 3-D polygon in, the Z coordinate will be used as per-vertex value to be interpolated (the M coordinate in GIS parlance).

source


# GeometryOps.centroidMethod.
julia
centroid(geom, [T=Float64])::Tuple{T, T}

Returns the centroid of a given line segment, linear ring, polygon, or mutlipolygon.

source


# GeometryOps.centroid_and_areaMethod.
julia
centroid_and_area(geom, [T=Float64])::(::Tuple{T, T}, ::Real)

Returns the centroid and area of a given geometry.

source


# GeometryOps.centroid_and_lengthMethod.
julia
centroid_and_length(geom, [T=Float64])::(::Tuple{T, T}, ::Real)

Returns the centroid and length of a given line/ring. Note this is only valid for line strings and linear rings.

source


# GeometryOps.containsMethod.
julia
contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the second geometry is completely contained by the first geometry. The interiors of both geometries must intersect and the interior and boundary of the secondary (g2) must not intersect the exterior of the first (g1).

contains returns the exact opposite result of within.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+    is the sum of the areas of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.barycentric_coordinates!Method.
julia
barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, polygon, point)

Loads the barycentric coordinates of point in polygon into λs using the barycentric coordinate method method.

λs must be of the length of the polygon plus its holes.

Tip

Use this method to avoid excess allocations when you need to calculate barycentric coordinates for many points.

source


# GeometryOps.barycentric_coordinatesMethod.
julia
barycentric_coordinates(method = MeanValue(), polygon, point)

Returns the barycentric coordinates of point in polygon using the barycentric coordinate method method.

source


# GeometryOps.barycentric_interpolateMethod.
julia
barycentric_interpolate(method = MeanValue(), polygon, values::AbstractVector{V}, point)

Returns the interpolated value at point within polygon using the barycentric coordinate method method. values are the per-point values for the polygon which are to be interpolated.

Returns an object of type V.

Warning

Barycentric interpolation is currently defined only for 2-dimensional polygons. If you pass a 3-D polygon in, the Z coordinate will be used as per-vertex value to be interpolated (the M coordinate in GIS parlance).

source


# GeometryOps.centroidMethod.
julia
centroid(geom, [T=Float64])::Tuple{T, T}

Returns the centroid of a given line segment, linear ring, polygon, or mutlipolygon.

source


# GeometryOps.centroid_and_areaMethod.
julia
centroid_and_area(geom, [T=Float64])::(::Tuple{T, T}, ::Real)

Returns the centroid and area of a given geometry.

source


# GeometryOps.centroid_and_lengthMethod.
julia
centroid_and_length(geom, [T=Float64])::(::Tuple{T, T}, ::Real)

Returns the centroid and length of a given line/ring. Note this is only valid for line strings and linear rings.

source


# GeometryOps.containsMethod.
julia
contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the second geometry is completely contained by the first geometry. The interiors of both geometries must intersect and the interior and boundary of the secondary (g2) must not intersect the exterior of the first (g1).

contains returns the exact opposite result of within.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = GI.Point((1, 2))
 
 GO.contains(line, point)
 # output
-true

source


# GeometryOps.convex_hullFunction.
julia
convex_hull([method], geometries)

Compute the convex hull of the points in geometries. Returns a GI.Polygon representing the convex hull.

Note that the polygon returned is wound counterclockwise as in the Simple Features standard by default. If you choose GEOS, the winding order will be inverted.

Warning

This interface only computes the 2-dimensional convex hull!

For higher dimensional hulls, use the relevant package (Qhull.jl, Quickhull.jl, or similar).

source


# GeometryOps.coverageMethod.
julia
coverage(geom, xmin, xmax, ymin, ymax, [T = Float64])::T

Returns the area of intersection between given geometry and grid cell defined by its minimum and maximum x and y-values. This is computed differently for different geometries:

  • The signed area of a point is always zero.

  • The signed area of a curve is always zero.

  • The signed area of a polygon is calculated by tracing along its edges and switching to the cell edges if needed.

  • The coverage of a geometry collection, multi-geometry, feature collection of array/iterable is the sum of the coverages of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.coveredbyMethod.
julia
coveredby(g1, g2)::Bool

Return true if the first geometry is completely covered by the second geometry. The interior and boundary of the primary geometry (g1) must not intersect the exterior of the secondary geometry (g2).

Furthermore, coveredby returns the exact opposite result of covers. They are equivalent with the order of the arguments swapped.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


# GeometryOps.convex_hullFunction.
julia
convex_hull([method], geometries)

Compute the convex hull of the points in geometries. Returns a GI.Polygon representing the convex hull.

Note that the polygon returned is wound counterclockwise as in the Simple Features standard by default. If you choose GEOS, the winding order will be inverted.

Warning

This interface only computes the 2-dimensional convex hull!

For higher dimensional hulls, use the relevant package (Qhull.jl, Quickhull.jl, or similar).

source


# GeometryOps.coverageMethod.
julia
coverage(geom, xmin, xmax, ymin, ymax, [T = Float64])::T

Returns the area of intersection between given geometry and grid cell defined by its minimum and maximum x and y-values. This is computed differently for different geometries:

  • The signed area of a point is always zero.

  • The signed area of a curve is always zero.

  • The signed area of a polygon is calculated by tracing along its edges and switching to the cell edges if needed.

  • The coverage of a geometry collection, multi-geometry, feature collection of array/iterable is the sum of the coverages of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.coveredbyMethod.
julia
coveredby(g1, g2)::Bool

Return true if the first geometry is completely covered by the second geometry. The interior and boundary of the primary geometry (g1) must not intersect the exterior of the secondary geometry (g2).

Furthermore, coveredby returns the exact opposite result of covers. They are equivalent with the order of the arguments swapped.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 p1 = GI.Point(0.0, 0.0)
 p2 = GI.Point(1.0, 1.0)
 l1 = GI.Line([p1, p2])
 
 GO.coveredby(p1, l1)
 # output
-true

source


# GeometryOps.coversMethod.
julia
covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the first geometry is completely covers the second geometry, The exterior and boundary of the second geometry must not be outside of the interior and boundary of the first geometry. However, the interiors need not intersect.

covers returns the exact opposite result of coveredby.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


# GeometryOps.coversMethod.
julia
covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the first geometry is completely covers the second geometry, The exterior and boundary of the second geometry must not be outside of the interior and boundary of the first geometry. However, the interiors need not intersect.

covers returns the exact opposite result of coveredby.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 l1 = GI.LineString([(1.0, 1.0), (1.0, 2.0), (1.0, 3.0), (1.0, 4.0)])
 l2 = GI.LineString([(1.0, 1.0), (1.0, 2.0)])
 
 GO.covers(l1, l2)
 # output
-true

source


# GeometryOps.crossesMethod.
julia
 crosses(geom1, geom2)::Bool

Return true if the intersection results in a geometry whose dimension is one less than the maximum dimension of the two source geometries and the intersection set is interior to both source geometries.

TODO: broken

Examples

julia
import GeoInterface as GI, GeometryOps as GO
-# TODO: Add working example

source


# GeometryOps.cutMethod.
julia
cut(geom, line, [T::Type])

Return given geom cut by given line as a list of geometries of the same type as the input geom. Return the original geometry as only list element if none are found. Line must cut fully through given geometry or the original geometry will be returned.

Note: This currently doesn't work for degenerate cases there line crosses through vertices.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+true

source


# GeometryOps.crossesMethod.
julia
 crosses(geom1, geom2)::Bool

Return true if the intersection results in a geometry whose dimension is one less than the maximum dimension of the two source geometries and the intersection set is interior to both source geometries.

TODO: broken

Examples

julia
import GeoInterface as GI, GeometryOps as GO
+# TODO: Add working example

source


# GeometryOps.cutMethod.
julia
cut(geom, line, [T::Type])

Return given geom cut by given line as a list of geometries of the same type as the input geom. Return the original geometry as only list element if none are found. Line must cut fully through given geometry or the original geometry will be returned.

Note: This currently doesn't work for degenerate cases there line crosses through vertices.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 poly = GI.Polygon([[(0.0, 0.0), (10.0, 0.0), (10.0, 10.0), (0.0, 10.0), (0.0, 0.0)]])
 line = GI.Line([(5.0, -5.0), (5.0, 15.0)])
@@ -209,7 +209,7 @@
 # output
 2-element Vector{Vector{Vector{Vector{Float64}}}}:
  [[[0.0, 0.0], [5.0, 0.0], [5.0, 10.0], [0.0, 10.0], [0.0, 0.0]]]
- [[[5.0, 0.0], [10.0, 0.0], [10.0, 10.0], [5.0, 10.0], [5.0, 0.0]]]

source


# GeometryOps.differenceMethod.
julia
difference(geom_a, geom_b, [T::Type]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the difference between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a taget type as a keyword argument and a list of target geometries found in the difference will be returned. The user can also provide a float type that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to false if you know that the multipolygons are valid, as it will avoid unneeded computation.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+ [[[5.0, 0.0], [10.0, 0.0], [10.0, 10.0], [5.0, 10.0], [5.0, 0.0]]]

source


# GeometryOps.differenceMethod.
julia
difference(geom_a, geom_b, [T::Type]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the difference between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a taget type as a keyword argument and a list of target geometries found in the difference will be returned. The user can also provide a float type that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to false if you know that the multipolygons are valid, as it will avoid unneeded computation.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 poly1 = GI.Polygon([[[0.0, 0.0], [5.0, 5.0], [10.0, 0.0], [5.0, -5.0], [0.0, 0.0]]])
 poly2 = GI.Polygon([[[3.0, 0.0], [8.0, 5.0], [13.0, 0.0], [8.0, -5.0], [3.0, 0.0]]])
@@ -218,33 +218,33 @@
 
 # output
 1-element Vector{Vector{Vector{Vector{Float64}}}}:
- [[[6.5, 3.5], [5.0, 5.0], [0.0, 0.0], [5.0, -5.0], [6.5, -3.5], [3.0, 0.0], [6.5, 3.5]]]

source


# GeometryOps.disjointMethod.
julia
disjoint(geom1, geom2)::Bool

Return true if the first geometry is disjoint from the second geometry.

Return true if the first geometry is disjoint from the second geometry. The interiors and boundaries of both geometries must not intersect.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+ [[[6.5, 3.5], [5.0, 5.0], [0.0, 0.0], [5.0, -5.0], [6.5, -3.5], [3.0, 0.0], [6.5, 3.5]]]

source


# GeometryOps.disjointMethod.
julia
disjoint(geom1, geom2)::Bool

Return true if the first geometry is disjoint from the second geometry.

Return true if the first geometry is disjoint from the second geometry. The interiors and boundaries of both geometries must not intersect.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = (2, 2)
 GO.disjoint(point, line)
 
 # output
-true

source


# GeometryOps.distanceMethod.
julia
distance(point, geom, ::Type{T} = Float64)::T

Calculates the ditance from the geometry g1 to the point. The distance will always be positive or zero.

The method will differ based on the type of the geometry provided: - The distance from a point to a point is just the Euclidean distance between the points. - The distance from a point to a line is the minimum distance from the point to the closest point on the given line. - The distance from a point to a linestring is the minimum distance from the point to the closest segment of the linestring. - The distance from a point to a linear ring is the minimum distance from the point to the closest segment of the linear ring. - The distance from a point to a polygon is zero if the point is within the polygon and otherwise is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The distance from a point to a multigeometry or a geometry collection is the minimum distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.embed_extentMethod.
julia
embed_extent(obj)

Recursively wrap the object with a GeoInterface.jl geometry, calculating and adding an Extents.Extent to all objects.

This can improve performance when extents need to be checked multiple times, such when needing to check if many points are in geometries, and using their extents as a quick filter for obviously exterior points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

source


# GeometryOps.enforceMethod.
julia
enforce(alg::GO.GEOS, kw::Symbol, f)

Enforce the presence of a keyword argument in a GEOS algorithm, and return alg.params[kw].

Throws an error if the key is not present, and mentions f in the error message (since there isn't a good way to get the name of the function that called this method).

source


# GeometryOps.equalsMethod.
julia
equals(trait_a, geom_a, trait_b, geom_b)

Two geometries which are not of the same type cannot be equal so they always return false.

source


# GeometryOps.equalsMethod.
julia
equals(geom1, geom2)::Bool

Compare two Geometries return true if they are the same geometry.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


# GeometryOps.distanceMethod.
julia
distance(point, geom, ::Type{T} = Float64)::T

Calculates the ditance from the geometry g1 to the point. The distance will always be positive or zero.

The method will differ based on the type of the geometry provided: - The distance from a point to a point is just the Euclidean distance between the points. - The distance from a point to a line is the minimum distance from the point to the closest point on the given line. - The distance from a point to a linestring is the minimum distance from the point to the closest segment of the linestring. - The distance from a point to a linear ring is the minimum distance from the point to the closest segment of the linear ring. - The distance from a point to a polygon is zero if the point is within the polygon and otherwise is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The distance from a point to a multigeometry or a geometry collection is the minimum distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.embed_extentMethod.
julia
embed_extent(obj)

Recursively wrap the object with a GeoInterface.jl geometry, calculating and adding an Extents.Extent to all objects.

This can improve performance when extents need to be checked multiple times, such when needing to check if many points are in geometries, and using their extents as a quick filter for obviously exterior points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

source


# GeometryOps.enforceMethod.
julia
enforce(alg::GO.GEOS, kw::Symbol, f)

Enforce the presence of a keyword argument in a GEOS algorithm, and return alg.params[kw].

Throws an error if the key is not present, and mentions f in the error message (since there isn't a good way to get the name of the function that called this method).

source


# GeometryOps.equalsMethod.
julia
equals(trait_a, geom_a, trait_b, geom_b)

Two geometries which are not of the same type cannot be equal so they always return false.

source


# GeometryOps.equalsMethod.
julia
equals(geom1, geom2)::Bool

Compare two Geometries return true if they are the same geometry.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 poly1 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 poly2 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 
 GO.equals(poly1, poly2)
 # output
-true

source


# GeometryOps.equalsMethod.
julia
equals(
+true

source


# GeometryOps.equalsMethod.
julia
equals(
     ::GI.LinearRingTrait, l1,
     ::GI.LinearRingTrait, l2,
-)::Bool

Two linear rings are equal if they share the same set of points going along the curve. Note that rings are closed by definition, so they can have, but don't need, a repeated last point to be equal.

source


# GeometryOps.equalsMethod.
julia
equals(
+)::Bool

Two linear rings are equal if they share the same set of points going along the curve. Note that rings are closed by definition, so they can have, but don't need, a repeated last point to be equal.

source


# GeometryOps.equalsMethod.
julia
equals(
     ::GI.LinearRingTrait, l1,
     ::Union{GI.LineTrait, GI.LineStringTrait}, l2,
-)::Bool

A linear ring and a line/linestring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source


# GeometryOps.equalsMethod.
julia
equals(::GI.MultiPointTrait, mp1, ::GI.MultiPointTrait, mp2)::Bool

Two multipoints are equal if they share the same set of points.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.MultiPointTrait, mp1, ::GI.PointTrait, p2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two multipolygons are equal if they share the same set of polygons.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.MultiPolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PointTrait, p1, ::GI.MultiPointTrait, mp2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PointTrait, p1, ::GI.PointTrait, p2)::Bool

Two points are the same if they have the same x and y (and z if 3D) coordinates.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PolygonTrait, geom_a, ::GI.MultiPolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two polygons are equal if they share the same exterior edge and holes.

source


# GeometryOps.equalsMethod.
julia
equals(
+)::Bool

A linear ring and a line/linestring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source


# GeometryOps.equalsMethod.
julia
equals(::GI.MultiPointTrait, mp1, ::GI.MultiPointTrait, mp2)::Bool

Two multipoints are equal if they share the same set of points.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.MultiPointTrait, mp1, ::GI.PointTrait, p2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two multipolygons are equal if they share the same set of polygons.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.MultiPolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PointTrait, p1, ::GI.MultiPointTrait, mp2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PointTrait, p1, ::GI.PointTrait, p2)::Bool

Two points are the same if they have the same x and y (and z if 3D) coordinates.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PolygonTrait, geom_a, ::GI.MultiPolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two polygons are equal if they share the same exterior edge and holes.

source


# GeometryOps.equalsMethod.
julia
equals(
     ::Union{GI.LineTrait, GI.LineStringTrait}, l1,
     ::GI.LinearRingTrait, l2,
-)::Bool

A line/linestring and a linear ring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source


# GeometryOps.equalsMethod.
julia
equals(
+)::Bool

A line/linestring and a linear ring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source


# GeometryOps.equalsMethod.
julia
equals(
     ::Union{GI.LineTrait, GI.LineStringTrait}, l1,
     ::Union{GI.LineTrait, GI.LineStringTrait}, l2,
-)::Bool

Two lines/linestrings are equal if they share the same set of points going along the curve. Note that lines/linestrings aren't closed by definition.

source


# GeometryOps.equalsMethod.
julia
equals(::T, geom_a, ::T, geom_b)::Bool

Two geometries of the same type, which don't have a equals function to dispatch off of should throw an error.

source


# GeometryOps.flattenMethod.
julia
flatten(target::Type{<:GI.AbstractTrait}, obj)
-flatten(f, target::Type{<:GI.AbstractTrait}, obj)

Lazily flatten any AbstractArray, iterator, FeatureCollectionTrait, FeatureTrait or AbstractGeometryTrait object obj, so that objects with the target trait are returned by the iterator.

If f is passed in it will be applied to the target geometries.

source


# GeometryOps.flipMethod.
julia
flip(obj)

Swap all of the x and y coordinates in obj, otherwise keeping the original structure (but not necessarily the original type).

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source


# GeometryOps.intersectionMethod.
julia
intersection(geom_a, geom_b, [T::Type]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the intersection between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a target type as a keyword argument and a list of target geometries found in the intersection will be returned. The user can also provide a float type that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to nothing if you know that the multipolygons are valid, as it will avoid unneeded computation.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+)::Bool

Two lines/linestrings are equal if they share the same set of points going along the curve. Note that lines/linestrings aren't closed by definition.

source


# GeometryOps.equalsMethod.
julia
equals(::T, geom_a, ::T, geom_b)::Bool

Two geometries of the same type, which don't have a equals function to dispatch off of should throw an error.

source


# GeometryOps.flattenMethod.
julia
flatten(target::Type{<:GI.AbstractTrait}, obj)
+flatten(f, target::Type{<:GI.AbstractTrait}, obj)

Lazily flatten any AbstractArray, iterator, FeatureCollectionTrait, FeatureTrait or AbstractGeometryTrait object obj, so that objects with the target trait are returned by the iterator.

If f is passed in it will be applied to the target geometries.

source


# GeometryOps.flipMethod.
julia
flip(obj)

Swap all of the x and y coordinates in obj, otherwise keeping the original structure (but not necessarily the original type).

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source


# GeometryOps.intersectionMethod.
julia
intersection(geom_a, geom_b, [T::Type]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the intersection between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a target type as a keyword argument and a list of target geometries found in the intersection will be returned. The user can also provide a float type that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to nothing if you know that the multipolygons are valid, as it will avoid unneeded computation.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 line1 = GI.Line([(124.584961,-12.768946), (126.738281,-17.224758)])
 line2 = GI.Line([(123.354492,-15.961329), (127.22168,-14.008696)])
@@ -253,7 +253,7 @@
 
 # output
 1-element Vector{Vector{Float64}}:
- [125.58375366067548, -14.83572303404496]

source


# GeometryOps.intersection_pointsMethod.
julia
intersection_points(geom_a, geom_b, [T::Type])

Return a list of intersection tuple points between two geometries. If no intersection points exist, returns an empty list.

Example

jldoctest

+ [125.58375366067548, -14.83572303404496]

source


# GeometryOps.intersection_pointsMethod.
julia
intersection_points(geom_a, geom_b, [T::Type])

Return a list of intersection tuple points between two geometries. If no intersection points exist, returns an empty list.

Example

jldoctest

 line1 = GI.Line([(124.584961,-12.768946), (126.738281,-17.224758)]) line2 = GI.Line([(123.354492,-15.961329), (127.22168,-14.008696)]) inter_points = GO.intersection_points(line1, line2)
 
 **output**
@@ -261,7 +261,7 @@
 1-element Vector{Tuple{Float64, Float64}}:  (125.58375366067548, -14.83572303404496)
 
 
-[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/v0.1.10/src/methods/clipping/intersection.jl#L177-L195)
+[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/v0.1.11/src/methods/clipping/intersection.jl#L177-L195)
 
 </div>
 <br>
@@ -279,57 +279,57 @@
 GO.intersects(line1, line2)
 
 # output
-true

source


# GeometryOps.isclockwiseMethod.
julia
isclockwise(line::Union{LineString, Vector{Position}})::Bool

Take a ring and return true if the line goes clockwise, or false if the line goes counter-clockwise. "Going clockwise" means, mathematically,

(i=2n(xixi1)(yi+yi1))>0

Example

julia
julia> import GeoInterface as GI, GeometryOps as GO
+true

source


# GeometryOps.isclockwiseMethod.
julia
isclockwise(line::Union{LineString, Vector{Position}})::Bool

Take a ring and return true if the line goes clockwise, or false if the line goes counter-clockwise. "Going clockwise" means, mathematically,

(i=2n(xixi1)(yi+yi1))>0

Example

julia
julia> import GeoInterface as GI, GeometryOps as GO
 julia> ring = GI.LinearRing([(0, 0), (1, 1), (1, 0), (0, 0)]);
 julia> GO.isclockwise(ring)
 # output
-true

source


# GeometryOps.isconcaveMethod.
julia
isconcave(poly::Polygon)::Bool

Take a polygon and return true or false as to whether it is concave or not.

Examples

julia
import GeoInterface as GI, GeometryOps as GO
+true

source


# GeometryOps.isconcaveMethod.
julia
isconcave(poly::Polygon)::Bool

Take a polygon and return true or false as to whether it is concave or not.

Examples

julia
import GeoInterface as GI, GeometryOps as GO
 
 poly = GI.Polygon([[(0, 0), (0, 1), (1, 1), (1, 0), (0, 0)]])
 GO.isconcave(poly)
 
 # output
-false

source


# GeometryOps.overlapsMethod.
julia
overlaps(geom1, geom2)::Bool

Compare two Geometries of the same dimension and return true if their intersection set results in a geometry different from both but of the same dimension. This means one geometry cannot be within or contain the other and they cannot be equal

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+false

source


# GeometryOps.overlapsMethod.
julia
overlaps(geom1, geom2)::Bool

Compare two Geometries of the same dimension and return true if their intersection set results in a geometry different from both but of the same dimension. This means one geometry cannot be within or contain the other and they cannot be equal

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 poly1 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 poly2 = GI.Polygon([[(1,1), (1,6), (6,6), (6,1), (1,1)]])
 
 GO.overlaps(poly1, poly2)
 # output
-true

source


# GeometryOps.overlapsMethod.
julia
overlaps(::GI.AbstractTrait, geom1, ::GI.AbstractTrait, geom2)::Bool

For any non-specified pair, all have non-matching dimensions, return false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line)::Bool

If the lines overlap, meaning that they are collinear but each have one endpoint outside of the other line, return true. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
+true

source


# GeometryOps.overlapsMethod.
julia
overlaps(::GI.AbstractTrait, geom1, ::GI.AbstractTrait, geom2)::Bool

For any non-specified pair, all have non-matching dimensions, return false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line)::Bool

If the lines overlap, meaning that they are collinear but each have one endpoint outside of the other line, return true. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
     ::GI.MultiPointTrait, points1,
     ::GI.MultiPointTrait, points2,
-)::Bool

If the multipoints overlap, meaning some, but not all, of the points within the multipoints are shared, return true.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
+)::Bool

If the multipoints overlap, meaning some, but not all, of the points within the multipoints are shared, return true.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
     ::GI.MultiPolygonTrait, polys1,
     ::GI.MultiPolygonTrait, polys2,
-)::Bool

Return true if at least one pair of polygons from multipolygons overlap. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
+)::Bool

Return true if at least one pair of polygons from multipolygons overlap. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
     ::GI.MultiPolygonTrait, polys1,
     ::GI.PolygonTrait, poly2,
-)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
+)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
     ::GI.PolygonTrait, poly1,
     ::GI.MultiPolygonTrait, polys2,
-)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
+)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
     trait_a::GI.PolygonTrait, poly_a,
     trait_b::GI.PolygonTrait, poly_b,
-)::Bool

If the two polygons intersect with one another, but are not equal, return true. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
+)::Bool

If the two polygons intersect with one another, but are not equal, return true. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
     ::Union{GI.LineStringTrait, GI.LinearRing}, line1,
     ::Union{GI.LineStringTrait, GI.LinearRing}, line2,
-)::Bool

If the curves overlap, meaning that at least one edge of each curve overlaps, return true. Else false.

source


# GeometryOps.polygon_to_lineMethod.
julia
polygon_to_line(poly::Polygon)

Converts a Polygon to LineString or MultiLineString

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+)::Bool

If the curves overlap, meaning that at least one edge of each curve overlaps, return true. Else false.

source


# GeometryOps.polygon_to_lineMethod.
julia
polygon_to_line(poly::Polygon)

Converts a Polygon to LineString or MultiLineString

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 poly = GI.Polygon([[(-2.275543, 53.464547), (-2.275543, 53.489271), (-2.215118, 53.489271), (-2.215118, 53.464547), (-2.275543, 53.464547)]])
 GO.polygon_to_line(poly)
 # output
-GeoInterface.Wrappers.LineString{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(-2.275543, 53.464547), (-2.275543, 53.489271), (-2.215118, 53.489271), (-2.215118, 53.464547), (-2.275543, 53.464547)], nothing, nothing)

source


# GeometryOps.polygonizeMethod.
julia
polygonize(A::AbstractMatrix{Bool}; kw...)
+GeoInterface.Wrappers.LineString{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(-2.275543, 53.464547), (-2.275543, 53.489271), (-2.215118, 53.489271), (-2.215118, 53.464547), (-2.275543, 53.464547)], nothing, nothing)

source


# GeometryOps.polygonizeMethod.
julia
polygonize(A::AbstractMatrix{Bool}; kw...)
 polygonize(f, A::AbstractMatrix; kw...)
 polygonize(xs, ys, A::AbstractMatrix{Bool}; kw...)
 polygonize(f, xs, ys, A::AbstractMatrix; kw...)

Polygonize an AbstractMatrix of values, currently to a single class of polygons.

Returns a MultiPolygon for Bool values and f return values, and a FeatureCollection of Features holding MultiPolygon for all other values.

Function f should return either true or false or a transformation of values into simpler groups, especially useful for floating point arrays.

If xs and ys are ranges, they are used as the pixel/cell center points. If they are Vector of Tuple they are used as the lower and upper bounds of each pixel/cell.

Keywords

  • minpoints: ignore polygons with less than minpoints points.

  • values: the values to turn into polygons. By default these are union(A), If function f is passed these refer to the return values of f, by default union(map(f, A). If values Bool, false is ignored and a single MultiPolygon is returned rather than a FeatureCollection.

Example

julia
using GeometryOps
 A = rand(100, 100)
-multipolygon = polygonize(>(0.5), A);

source


# GeometryOps.rebuildMethod.
julia
rebuild(geom, child_geoms)

Rebuild a geometry from child geometries.

By default geometries will be rebuilt as a GeoInterface.Wrappers geometry, but rebuild can have methods added to it to dispatch on geometries from other packages and specify how to rebuild them.

(Maybe it should go into GeoInterface.jl)

source


# GeometryOps.reconstructMethod.
julia
reconstruct(geom, components)

Reconstruct geom from an iterable of component objects that match its structure.

All objects in components must have the same GeoInterface.trait.

Usually used in combination with flatten.

source


# GeometryOps.segmentizeMethod.
julia
segmentize([method = LinearSegments()], geom; max_distance::Real, threaded)

Segmentize a geometry by adding extra vertices to the geometry so that no segment is longer than a given distance. This is useful for plotting geometries with a limited number of vertices, or for ensuring that a geometry is not too "coarse" for a given application.

Arguments

  • method::SegmentizeMethod = LinearSegments(): The method to use for segmentizing the geometry. At the moment, only LinearSegments and GeodesicSegments are available.

  • geom: The geometry to segmentize. Must be a LineString, LinearRing, or greater in complexity.

  • max_distance::Real: The maximum distance, in the input space, between vertices in the geometry. Only used if you don't explicitly pass a method.

Returns a geometry of similar type to the input geometry, but resampled.

source


# GeometryOps.signed_areaMethod.
julia
signed_area(geom, [T = Float64])::T

Returns the signed area of a single geometry, based on winding order. This is computed slightly differently for different geometries:

- The signed area of a point is always zero.
+multipolygon = polygonize(>(0.5), A);

source


# GeometryOps.rebuildMethod.
julia
rebuild(geom, child_geoms)

Rebuild a geometry from child geometries.

By default geometries will be rebuilt as a GeoInterface.Wrappers geometry, but rebuild can have methods added to it to dispatch on geometries from other packages and specify how to rebuild them.

(Maybe it should go into GeoInterface.jl)

source


# GeometryOps.reconstructMethod.
julia
reconstruct(geom, components)

Reconstruct geom from an iterable of component objects that match its structure.

All objects in components must have the same GeoInterface.trait.

Usually used in combination with flatten.

source


# GeometryOps.segmentizeMethod.
julia
segmentize([method = LinearSegments()], geom; max_distance::Real, threaded)

Segmentize a geometry by adding extra vertices to the geometry so that no segment is longer than a given distance. This is useful for plotting geometries with a limited number of vertices, or for ensuring that a geometry is not too "coarse" for a given application.

Arguments

  • method::SegmentizeMethod = LinearSegments(): The method to use for segmentizing the geometry. At the moment, only LinearSegments and GeodesicSegments are available.

  • geom: The geometry to segmentize. Must be a LineString, LinearRing, or greater in complexity.

  • max_distance::Real: The maximum distance, in the input space, between vertices in the geometry. Only used if you don't explicitly pass a method.

Returns a geometry of similar type to the input geometry, but resampled.

source


# GeometryOps.signed_areaMethod.
julia
signed_area(geom, [T = Float64])::T

Returns the signed area of a single geometry, based on winding order. This is computed slightly differently for different geometries:

- The signed area of a point is always zero.
 - The signed area of a curve is always zero.
 - The signed area of a polygon is computed with the shoelace formula and is
 positive if the polygon coordinates wind clockwise and negative if
 counterclockwise.
 - You cannot compute the signed area of a multipolygon as it doesn't have a
-meaning as each sub-polygon could have a different winding order.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.signed_distanceMethod.
julia
signed_distance(point, geom, ::Type{T} = Float64)::T

Calculates the signed distance from the geometry geom to the given point. Points within geom have a negative signed distance, and points outside of geom have a positive signed distance. - The signed distance from a point to a point, line, linestring, or linear ring is equal to the distance between the two. - The signed distance from a point to a polygon is negative if the point is within the polygon and is positive otherwise. The value of the distance is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The signed distance from a point to a multigeometry or a geometry collection is the minimum signed distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.simplifyMethod.
julia
simplify(obj; kw...)
+meaning as each sub-polygon could have a different winding order.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.signed_distanceMethod.
julia
signed_distance(point, geom, ::Type{T} = Float64)::T

Calculates the signed distance from the geometry geom to the given point. Points within geom have a negative signed distance, and points outside of geom have a positive signed distance. - The signed distance from a point to a point, line, linestring, or linear ring is equal to the distance between the two. - The signed distance from a point to a polygon is negative if the point is within the polygon and is positive otherwise. The value of the distance is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The signed distance from a point to a multigeometry or a geometry collection is the minimum signed distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.simplifyMethod.
julia
simplify(obj; kw...)
 simplify(::SimplifyAlg, obj; kw...)

Simplify a geometry, feature, feature collection, or nested vectors or a table of these.

RadialDistance, DouglasPeucker, or VisvalingamWhyatt algorithms are available, listed in order of increasing quality but decreasing performance.

PoinTrait and MultiPointTrait are returned unchanged.

The default behaviour is simplify(DouglasPeucker(; kw...), obj). Pass in other SimplifyAlg to use other algorithms.

Keywords

  • prefilter_alg: SimplifyAlg algorithm used to pre-filter object before using primary filtering algorithm.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

Keywords for DouglasPeucker are allowed when no algorithm is specified:

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance a point will be from the line joining its neighboring points.

Example

Simplify a polygon to have six points:

julia
import GeoInterface as GI
 import GeometryOps as GO
 
@@ -359,9 +359,9 @@
 GI.npoint(simple)
 
 # output
-6

source


# GeometryOps.t_valueMethod.
julia
t_value(sᵢ, sᵢ₊₁, rᵢ, rᵢ₊₁)

Returns the "T-value" as described in Hormann's presentation [1] on how to calculate the mean-value coordinate.

Here, sᵢ is the vector from vertex vᵢ to the point, and rᵢ is the norm (length) of sᵢ. s must be Point and r must be real numbers.

t=det(s,s)rr+ss

+6

source


# GeometryOps.t_valueMethod.
julia
t_value(sᵢ, sᵢ₊₁, rᵢ, rᵢ₊₁)

Returns the "T-value" as described in Hormann's presentation [1] on how to calculate the mean-value coordinate.

Here, sᵢ is the vector from vertex vᵢ to the point, and rᵢ is the norm (length) of sᵢ. s must be Point and r must be real numbers.

t=det(s,s)rr+ss

 
-[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/v0.1.10/src/methods/barycentric.jl#L289-L305)
+[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/v0.1.11/src/methods/barycentric.jl#L289-L305)
 
 </div>
 <br>
@@ -372,14 +372,14 @@
 
 
 ```julia
-to_edges()

Convert any geometry or collection of geometries into a flat vector of Tuple{Tuple{Float64,Float64},Tuple{Float64,Float64}} edges.

source


# GeometryOps.touchesMethod.
julia
touches(geom1, geom2)::Bool

Return true if the first geometry touches the second geometry. In other words, the two interiors cannot interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+to_edges()

Convert any geometry or collection of geometries into a flat vector of Tuple{Tuple{Float64,Float64},Tuple{Float64,Float64}} edges.

source


# GeometryOps.touchesMethod.
julia
touches(geom1, geom2)::Bool

Return true if the first geometry touches the second geometry. In other words, the two interiors cannot interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 l1 = GI.Line([(0.0, 0.0), (1.0, 0.0)])
 l2 = GI.Line([(1.0, 1.0), (1.0, -1.0)])
 
 GO.touches(l1, l2)
 # output
-true

source


# GeometryOps.transformMethod.
julia
transform(f, obj)

Apply a function f to all the points in obj.

Points will be passed to f as an SVector to allow using CoordinateTransformations.jl and Rotations.jl without hassle.

SVector is also a valid GeoInterface.jl point, so will work in all GeoInterface.jl methods.

Example

julia
julia> import GeoInterface as GI
+true

source


# GeometryOps.transformMethod.
julia
transform(f, obj)

Apply a function f to all the points in obj.

Points will be passed to f as an SVector to allow using CoordinateTransformations.jl and Rotations.jl without hassle.

SVector is also a valid GeoInterface.jl point, so will work in all GeoInterface.jl methods.

Example

julia
julia> import GeoInterface as GI
 
 julia> import GeometryOps as GO
 
@@ -398,7 +398,7 @@
 GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearR
 ing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}(StaticArraysCore.SVe
 ctor{2, Int64}[[2, 1], [4, 3], [6, 5], [2, 1]], nothing, nothing), GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}(StaticArraysCore.SVector{2, Int64
-}[[4, 3], [6, 5], [7, 6], [4, 3]], nothing, nothing)], nothing, nothing)

source


# GeometryOps.tuplesMethod.
julia
tuples(obj)

Convert all points in obj to Tuples, wherever the are nested.

Returns a similar object or collection of objects using GeoInterface.jl geometries wrapping Tuple points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source


# GeometryOps.unionMethod.
julia
union(geom_a, geom_b, [::Type{T}]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the union between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a taget type as a keyword argument and a list of target geometries found in the difference will be returned. The user can also provide a float type 'T' that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to false if you know that the multipolygons are valid, as it will avoid unneeded computation.

Calculates the union between two polygons.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+}[[4, 3], [6, 5], [7, 6], [4, 3]], nothing, nothing)], nothing, nothing)

source


# GeometryOps.tuplesMethod.
julia
tuples(obj)

Convert all points in obj to Tuples, wherever the are nested.

Returns a similar object or collection of objects using GeoInterface.jl geometries wrapping Tuple points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source


# GeometryOps.unionMethod.
julia
union(geom_a, geom_b, [::Type{T}]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the union between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a taget type as a keyword argument and a list of target geometries found in the difference will be returned. The user can also provide a float type 'T' that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to false if you know that the multipolygons are valid, as it will avoid unneeded computation.

Calculates the union between two polygons.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 p1 = GI.Polygon([[(0.0, 0.0), (5.0, 5.0), (10.0, 0.0), (5.0, -5.0), (0.0, 0.0)]])
 p2 = GI.Polygon([[(3.0, 0.0), (8.0, 5.0), (13.0, 0.0), (8.0, -5.0), (3.0, 0.0)]])
@@ -407,16 +407,16 @@
 
 # output
 1-element Vector{Vector{Vector{Vector{Float64}}}}:
- [[[6.5, 3.5], [5.0, 5.0], [0.0, 0.0], [5.0, -5.0], [6.5, -3.5], [8.0, -5.0], [13.0, 0.0], [8.0, 5.0], [6.5, 3.5]]]

source


# GeometryOps.unwrapFunction.
julia
unwrap(target::Type{<:AbstractTrait}, obj)
-unwrap(f, target::Type{<:AbstractTrait}, obj)

Unwrap the object to vectors, down to the target trait.

If f is passed in it will be applied to the target geometries as they are found.

source


# GeometryOps.weighted_meanMethod.
julia
weighted_mean(weight::Real, x1, x2)

Returns the weighted mean of x1 and x2, where weight is the weight of x1.

Specifically, calculates x1 * weight + x2 * (1 - weight).

Note

The idea for this method is that you can override this for custom types, like Color types, in extension modules.

source


# GeometryOps.withinMethod.
julia
within(geom1, geom2)::Bool

Return true if the first geometry is completely within the second geometry. The interiors of both geometries must intersect and the interior and boundary of the primary geometry (geom1) must not intersect the exterior of the secondary geometry (geom2).

Furthermore, within returns the exact opposite result of contains.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+ [[[6.5, 3.5], [5.0, 5.0], [0.0, 0.0], [5.0, -5.0], [6.5, -3.5], [8.0, -5.0], [13.0, 0.0], [8.0, 5.0], [6.5, 3.5]]]

source


# GeometryOps.unwrapFunction.
julia
unwrap(target::Type{<:AbstractTrait}, obj)
+unwrap(f, target::Type{<:AbstractTrait}, obj)

Unwrap the object to vectors, down to the target trait.

If f is passed in it will be applied to the target geometries as they are found.

source


# GeometryOps.weighted_meanMethod.
julia
weighted_mean(weight::Real, x1, x2)

Returns the weighted mean of x1 and x2, where weight is the weight of x1.

Specifically, calculates x1 * weight + x2 * (1 - weight).

Note

The idea for this method is that you can override this for custom types, like Color types, in extension modules.

source


# GeometryOps.withinMethod.
julia
within(geom1, geom2)::Bool

Return true if the first geometry is completely within the second geometry. The interiors of both geometries must intersect and the interior and boundary of the primary geometry (geom1) must not intersect the exterior of the secondary geometry (geom2).

Furthermore, within returns the exact opposite result of contains.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = (1, 2)
 GO.within(point, line)
 
 # output
-true

source



  1. K. Hormann and N. Sukumar. Generalized Barycentric Coordinates in Computer Graphics and Computational Mechanics. Taylor & Fancis, CRC Press, 2017. ↩︎

- +true

source



  1. K. Hormann and N. Sukumar. Generalized Barycentric Coordinates in Computer Graphics and Computational Mechanics. Taylor & Fancis, CRC Press, 2017. ↩︎

+ \ No newline at end of file diff --git a/dev/assets/ntsoasx.Dz86q2IX.png b/dev/assets/aftrdlb.Dz86q2IX.png similarity index 100% rename from dev/assets/ntsoasx.Dz86q2IX.png rename to dev/assets/aftrdlb.Dz86q2IX.png diff --git a/dev/assets/api.md.2ouECU0_.js b/dev/assets/api.md.DA3cj-wA.js similarity index 97% rename from dev/assets/api.md.2ouECU0_.js rename to dev/assets/api.md.DA3cj-wA.js index dee787b9c..b221b46ad 100644 --- a/dev/assets/api.md.2ouECU0_.js +++ b/dev/assets/api.md.DA3cj-wA.js @@ -1,13 +1,13 @@ -import{_ as n,c as e,a5 as a,j as s,o as t}from"./chunks/framework.B9oBnxE7.js";const b=JSON.parse('{"title":"Full GeometryOps API documentation","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),l={name:"api.md"},h={style:{"border-width":"1px","border-style":"solid","border-color":"black",padding:"1em","border-radius":"25px"}},p={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},r={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.827ex"},xmlns:"http://www.w3.org/2000/svg",width:"33.539ex",height:"6.785ex",role:"img",focusable:"false",viewBox:"0 -1749.5 14824.1 2999","aria-hidden":"true"},k={style:{"border-width":"1px","border-style":"solid","border-color":"black",padding:"1em","border-radius":"25px"}},o={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.059ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.746ex",height:"5.362ex",role:"img",focusable:"false",viewBox:"0 -1460 12263.9 2370","aria-hidden":"true"};function g(y,i,E,c,u,m){return t(),e("div",null,[i[8]||(i[8]=a(`

Full GeometryOps API documentation

Warning

This page is still very much WIP!

Documentation for GeometryOps's full API (only for reference!).

apply and associated functions

# GeometryOps.applyFunction.
julia
apply(f, target::Union{TraitTarget, GI.AbstractTrait}, obj; kw...)

Reconstruct a geometry, feature, feature collection, or nested vectors of either using the function f on the target trait.

f(target_geom) => x where x also has the target trait, or a trait that can be substituted. For example, swapping PolgonTrait to MultiPointTrait will fail if the outer object has MultiPolygonTrait, but should work if it has FeatureTrait.

Objects "shallower" than the target trait are always completely rebuilt, like a Vector of FeatureCollectionTrait of FeatureTrait when the target has PolygonTrait and is held in the features. These will always be GeoInterface geometries/feature/feature collections. But "deeper" objects may remain unchanged or be whatever GeoInterface compatible objects f returns.

The result is a functionally similar geometry with values depending on f.

Example

Flipped point the order in any feature or geometry, or iterables of either:

julia
import GeoInterface as GI
+import{_ as n,c as e,a5 as a,j as s,o as t}from"./chunks/framework.B0Ss3dHN.js";const b=JSON.parse('{"title":"Full GeometryOps API documentation","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),l={name:"api.md"},h={style:{"border-width":"1px","border-style":"solid","border-color":"black",padding:"1em","border-radius":"25px"}},p={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},r={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.827ex"},xmlns:"http://www.w3.org/2000/svg",width:"33.539ex",height:"6.785ex",role:"img",focusable:"false",viewBox:"0 -1749.5 14824.1 2999","aria-hidden":"true"},k={style:{"border-width":"1px","border-style":"solid","border-color":"black",padding:"1em","border-radius":"25px"}},o={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.059ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.746ex",height:"5.362ex",role:"img",focusable:"false",viewBox:"0 -1460 12263.9 2370","aria-hidden":"true"};function g(y,i,E,c,u,m){return t(),e("div",null,[i[8]||(i[8]=a(`

Full GeometryOps API documentation

Warning

This page is still very much WIP!

Documentation for GeometryOps's full API (only for reference!).

apply and associated functions

# GeometryOps.applyFunction.
julia
apply(f, target::Union{TraitTarget, GI.AbstractTrait}, obj; kw...)

Reconstruct a geometry, feature, feature collection, or nested vectors of either using the function f on the target trait.

f(target_geom) => x where x also has the target trait, or a trait that can be substituted. For example, swapping PolgonTrait to MultiPointTrait will fail if the outer object has MultiPolygonTrait, but should work if it has FeatureTrait.

Objects "shallower" than the target trait are always completely rebuilt, like a Vector of FeatureCollectionTrait of FeatureTrait when the target has PolygonTrait and is held in the features. These will always be GeoInterface geometries/feature/feature collections. But "deeper" objects may remain unchanged or be whatever GeoInterface compatible objects f returns.

The result is a functionally similar geometry with values depending on f.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

Example

Flipped point the order in any feature or geometry, or iterables of either:

julia
import GeoInterface as GI
 import GeometryOps as GO
 geom = GI.Polygon([GI.LinearRing([(1, 2), (3, 4), (5, 6), (1, 2)]),
                    GI.LinearRing([(3, 4), (5, 6), (6, 7), (3, 4)])])
 
 flipped_geom = GO.apply(GI.PointTrait, geom) do p
     (GI.y(p), GI.x(p))
-end

source


# GeometryOps.applyreduceFunction.
julia
applyreduce(f, op, target::Union{TraitTarget, GI.AbstractTrait}, obj; threaded)

Apply function f to all objects with the target trait, and reduce the result with an op like +.

The order and grouping of application of op is not guaranteed.

If threaded==true threads will be used over arrays and iterables, feature collections and nested geometries.

source


# GeometryOps.reprojectFunction.
julia
reproject(geometry; source_crs, target_crs, transform, always_xy, time)
+end

source


# GeometryOps.applyreduceFunction.
julia
applyreduce(f, op, target::Union{TraitTarget, GI.AbstractTrait}, obj; threaded)

Apply function f to all objects with the target trait, and reduce the result with an op like +.

The order and grouping of application of op is not guaranteed.

If threaded==true threads will be used over arrays and iterables, feature collections and nested geometries.

source


# GeometryOps.reprojectFunction.
julia
reproject(geometry; source_crs, target_crs, transform, always_xy, time)
 reproject(geometry, source_crs, target_crs; always_xy, time)
-reproject(geometry, transform; always_xy, time)

Reproject any GeoInterface.jl compatible geometry from source_crs to target_crs.

The returned object will be constructed from GeoInterface.WrapperGeometry geometries, wrapping views of a Vector{Proj.Point{D}}, where D is the dimension.

Tip

The Proj.jl package must be loaded for this method to work, since it is implemented in a package extension.

Arguments

  • geometry: Any GeoInterface.jl compatible geometries.

  • source_crs: the source coordinate reference system, as a GeoFormatTypes.jl object or a string.

  • target_crs: the target coordinate reference system, as a GeoFormatTypes.jl object or a string.

If these a passed as keywords, transform will take priority. Without it target_crs is always needed, and source_crs is needed if it is not retrievable from the geometry with GeoInterface.crs(geometry).

Keywords

  • always_xy: force x, y coordinate order, true by default. false will expect and return points in the crs coordinate order.

  • time: the time for the coordinates. Inf by default.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source


# GeometryOps.transformFunction.
julia
transform(f, obj)

Apply a function f to all the points in obj.

Points will be passed to f as an SVector to allow using CoordinateTransformations.jl and Rotations.jl without hassle.

SVector is also a valid GeoInterface.jl point, so will work in all GeoInterface.jl methods.

Example

julia
julia> import GeoInterface as GI
+reproject(geometry, transform; always_xy, time)

Reproject any GeoInterface.jl compatible geometry from source_crs to target_crs.

The returned object will be constructed from GeoInterface.WrapperGeometry geometries, wrapping views of a Vector{Proj.Point{D}}, where D is the dimension.

Tip

The Proj.jl package must be loaded for this method to work, since it is implemented in a package extension.

Arguments

  • geometry: Any GeoInterface.jl compatible geometries.

  • source_crs: the source coordinate reference system, as a GeoFormatTypes.jl object or a string.

  • target_crs: the target coordinate reference system, as a GeoFormatTypes.jl object or a string.

If these a passed as keywords, transform will take priority. Without it target_crs is always needed, and source_crs is needed if it is not retrievable from the geometry with GeoInterface.crs(geometry).

Keywords

  • always_xy: force x, y coordinate order, true by default. false will expect and return points in the crs coordinate order.

  • time: the time for the coordinates. Inf by default.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source


# GeometryOps.transformFunction.
julia
transform(f, obj)

Apply a function f to all the points in obj.

Points will be passed to f as an SVector to allow using CoordinateTransformations.jl and Rotations.jl without hassle.

SVector is also a valid GeoInterface.jl point, so will work in all GeoInterface.jl methods.

Example

julia
julia> import GeoInterface as GI
 
 julia> import GeometryOps as GO
 
@@ -26,160 +26,160 @@ import{_ as n,c as e,a5 as a,j as s,o as t}from"./chunks/framework.B9oBnxE7.js";
 GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearR
 ing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}(StaticArraysCore.SVe
 ctor{2, Int64}[[2, 1], [4, 3], [6, 5], [2, 1]], nothing, nothing), GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}(StaticArraysCore.SVector{2, Int64
-}[[4, 3], [6, 5], [7, 6], [4, 3]], nothing, nothing)], nothing, nothing)

source


General geometry methods

OGC methods

# GeometryOps.containsFunction.
julia
contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the second geometry is completely contained by the first geometry. The interiors of both geometries must intersect and the interior and boundary of the secondary (g2) must not intersect the exterior of the first (g1).

contains returns the exact opposite result of within.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+}[[4, 3], [6, 5], [7, 6], [4, 3]], nothing, nothing)], nothing, nothing)

source


General geometry methods

OGC methods

# GeometryOps.containsFunction.
julia
contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the second geometry is completely contained by the first geometry. The interiors of both geometries must intersect and the interior and boundary of the secondary (g2) must not intersect the exterior of the first (g1).

contains returns the exact opposite result of within.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = GI.Point((1, 2))
 
 GO.contains(line, point)
 # output
-true

source


# GeometryOps.coveredbyFunction.
julia
coveredby(g1, g2)::Bool

Return true if the first geometry is completely covered by the second geometry. The interior and boundary of the primary geometry (g1) must not intersect the exterior of the secondary geometry (g2).

Furthermore, coveredby returns the exact opposite result of covers. They are equivalent with the order of the arguments swapped.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


# GeometryOps.coveredbyFunction.
julia
coveredby(g1, g2)::Bool

Return true if the first geometry is completely covered by the second geometry. The interior and boundary of the primary geometry (g1) must not intersect the exterior of the secondary geometry (g2).

Furthermore, coveredby returns the exact opposite result of covers. They are equivalent with the order of the arguments swapped.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 p1 = GI.Point(0.0, 0.0)
 p2 = GI.Point(1.0, 1.0)
 l1 = GI.Line([p1, p2])
 
 GO.coveredby(p1, l1)
 # output
-true

source


# GeometryOps.coversFunction.
julia
covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the first geometry is completely covers the second geometry, The exterior and boundary of the second geometry must not be outside of the interior and boundary of the first geometry. However, the interiors need not intersect.

covers returns the exact opposite result of coveredby.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


# GeometryOps.coversFunction.
julia
covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the first geometry is completely covers the second geometry, The exterior and boundary of the second geometry must not be outside of the interior and boundary of the first geometry. However, the interiors need not intersect.

covers returns the exact opposite result of coveredby.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 l1 = GI.LineString([(1.0, 1.0), (1.0, 2.0), (1.0, 3.0), (1.0, 4.0)])
 l2 = GI.LineString([(1.0, 1.0), (1.0, 2.0)])
 
 GO.covers(l1, l2)
 # output
-true

source


# GeometryOps.crossesFunction.
julia
 crosses(geom1, geom2)::Bool

Return true if the intersection results in a geometry whose dimension is one less than the maximum dimension of the two source geometries and the intersection set is interior to both source geometries.

TODO: broken

Examples

julia
import GeoInterface as GI, GeometryOps as GO
-# TODO: Add working example

source


# GeometryOps.disjointFunction.
julia
disjoint(geom1, geom2)::Bool

Return true if the first geometry is disjoint from the second geometry.

Return true if the first geometry is disjoint from the second geometry. The interiors and boundaries of both geometries must not intersect.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


# GeometryOps.crossesFunction.
julia
 crosses(geom1, geom2)::Bool

Return true if the intersection results in a geometry whose dimension is one less than the maximum dimension of the two source geometries and the intersection set is interior to both source geometries.

TODO: broken

Examples

julia
import GeoInterface as GI, GeometryOps as GO
+# TODO: Add working example

source


# GeometryOps.disjointFunction.
julia
disjoint(geom1, geom2)::Bool

Return true if the first geometry is disjoint from the second geometry.

Return true if the first geometry is disjoint from the second geometry. The interiors and boundaries of both geometries must not intersect.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = (2, 2)
 GO.disjoint(point, line)
 
 # output
-true

source


# GeometryOps.intersectsFunction.
julia
intersects(geom1, geom2)::Bool

Return true if the interiors or boundaries of the two geometries interact.

intersects returns the exact opposite result of disjoint.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+true

source


# GeometryOps.intersectsFunction.
julia
intersects(geom1, geom2)::Bool

Return true if the interiors or boundaries of the two geometries interact.

intersects returns the exact opposite result of disjoint.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 line1 = GI.Line([(124.584961,-12.768946), (126.738281,-17.224758)])
 line2 = GI.Line([(123.354492,-15.961329), (127.22168,-14.008696)])
 GO.intersects(line1, line2)
 
 # output
-true

source


# GeometryOps.overlapsFunction.
julia
overlaps(geom1, geom2)::Bool

Compare two Geometries of the same dimension and return true if their intersection set results in a geometry different from both but of the same dimension. This means one geometry cannot be within or contain the other and they cannot be equal

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


# GeometryOps.overlapsFunction.
julia
overlaps(geom1, geom2)::Bool

Compare two Geometries of the same dimension and return true if their intersection set results in a geometry different from both but of the same dimension. This means one geometry cannot be within or contain the other and they cannot be equal

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 poly1 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 poly2 = GI.Polygon([[(1,1), (1,6), (6,6), (6,1), (1,1)]])
 
 GO.overlaps(poly1, poly2)
 # output
-true

source

julia
overlaps(::GI.AbstractTrait, geom1, ::GI.AbstractTrait, geom2)::Bool

For any non-specified pair, all have non-matching dimensions, return false.

source

julia
overlaps(
+true

source

julia
overlaps(::GI.AbstractTrait, geom1, ::GI.AbstractTrait, geom2)::Bool

For any non-specified pair, all have non-matching dimensions, return false.

source

julia
overlaps(
     ::GI.MultiPointTrait, points1,
     ::GI.MultiPointTrait, points2,
-)::Bool

If the multipoints overlap, meaning some, but not all, of the points within the multipoints are shared, return true.

source

julia
overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line)::Bool

If the lines overlap, meaning that they are collinear but each have one endpoint outside of the other line, return true. Else false.

source

julia
overlaps(
+)::Bool

If the multipoints overlap, meaning some, but not all, of the points within the multipoints are shared, return true.

source

julia
overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line)::Bool

If the lines overlap, meaning that they are collinear but each have one endpoint outside of the other line, return true. Else false.

source

julia
overlaps(
     ::Union{GI.LineStringTrait, GI.LinearRing}, line1,
     ::Union{GI.LineStringTrait, GI.LinearRing}, line2,
-)::Bool

If the curves overlap, meaning that at least one edge of each curve overlaps, return true. Else false.

source

julia
overlaps(
+)::Bool

If the curves overlap, meaning that at least one edge of each curve overlaps, return true. Else false.

source

julia
overlaps(
     trait_a::GI.PolygonTrait, poly_a,
     trait_b::GI.PolygonTrait, poly_b,
-)::Bool

If the two polygons intersect with one another, but are not equal, return true. Else false.

source

julia
overlaps(
+)::Bool

If the two polygons intersect with one another, but are not equal, return true. Else false.

source

julia
overlaps(
     ::GI.PolygonTrait, poly1,
     ::GI.MultiPolygonTrait, polys2,
-)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

julia
overlaps(
+)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

julia
overlaps(
     ::GI.MultiPolygonTrait, polys1,
     ::GI.PolygonTrait, poly2,
-)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

julia
overlaps(
+)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

julia
overlaps(
     ::GI.MultiPolygonTrait, polys1,
     ::GI.MultiPolygonTrait, polys2,
-)::Bool

Return true if at least one pair of polygons from multipolygons overlap. Else false.

source


# GeometryOps.touchesFunction.
julia
touches(geom1, geom2)::Bool

Return true if the first geometry touches the second geometry. In other words, the two interiors cannot interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+)::Bool

Return true if at least one pair of polygons from multipolygons overlap. Else false.

source


# GeometryOps.touchesFunction.
julia
touches(geom1, geom2)::Bool

Return true if the first geometry touches the second geometry. In other words, the two interiors cannot interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 l1 = GI.Line([(0.0, 0.0), (1.0, 0.0)])
 l2 = GI.Line([(1.0, 1.0), (1.0, -1.0)])
 
 GO.touches(l1, l2)
 # output
-true

source


# GeometryOps.withinFunction.
julia
within(geom1, geom2)::Bool

Return true if the first geometry is completely within the second geometry. The interiors of both geometries must intersect and the interior and boundary of the primary geometry (geom1) must not intersect the exterior of the secondary geometry (geom2).

Furthermore, within returns the exact opposite result of contains.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


# GeometryOps.withinFunction.
julia
within(geom1, geom2)::Bool

Return true if the first geometry is completely within the second geometry. The interiors of both geometries must intersect and the interior and boundary of the primary geometry (geom1) must not intersect the exterior of the secondary geometry (geom2).

Furthermore, within returns the exact opposite result of contains.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = (1, 2)
 GO.within(point, line)
 
 # output
-true

source


Other general methods

# GeometryOps.equalsFunction.
julia
equals(geom1, geom2)::Bool

Compare two Geometries return true if they are the same geometry.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


Other general methods

# GeometryOps.equalsFunction.
julia
equals(geom1, geom2)::Bool

Compare two Geometries return true if they are the same geometry.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 poly1 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 poly2 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 
 GO.equals(poly1, poly2)
 # output
-true

source

julia
equals(::T, geom_a, ::T, geom_b)::Bool

Two geometries of the same type, which don't have a equals function to dispatch off of should throw an error.

source

julia
equals(trait_a, geom_a, trait_b, geom_b)

Two geometries which are not of the same type cannot be equal so they always return false.

source

julia
equals(::GI.PointTrait, p1, ::GI.PointTrait, p2)::Bool

Two points are the same if they have the same x and y (and z if 3D) coordinates.

source

julia
equals(::GI.PointTrait, p1, ::GI.MultiPointTrait, mp2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

julia
equals(::GI.MultiPointTrait, mp1, ::GI.PointTrait, p2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

julia
equals(::GI.MultiPointTrait, mp1, ::GI.MultiPointTrait, mp2)::Bool

Two multipoints are equal if they share the same set of points.

source

julia
equals(
+true

source

julia
equals(::T, geom_a, ::T, geom_b)::Bool

Two geometries of the same type, which don't have a equals function to dispatch off of should throw an error.

source

julia
equals(trait_a, geom_a, trait_b, geom_b)

Two geometries which are not of the same type cannot be equal so they always return false.

source

julia
equals(::GI.PointTrait, p1, ::GI.PointTrait, p2)::Bool

Two points are the same if they have the same x and y (and z if 3D) coordinates.

source

julia
equals(::GI.PointTrait, p1, ::GI.MultiPointTrait, mp2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

julia
equals(::GI.MultiPointTrait, mp1, ::GI.PointTrait, p2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

julia
equals(::GI.MultiPointTrait, mp1, ::GI.MultiPointTrait, mp2)::Bool

Two multipoints are equal if they share the same set of points.

source

julia
equals(
     ::Union{GI.LineTrait, GI.LineStringTrait}, l1,
     ::Union{GI.LineTrait, GI.LineStringTrait}, l2,
-)::Bool

Two lines/linestrings are equal if they share the same set of points going along the curve. Note that lines/linestrings aren't closed by definition.

source

julia
equals(
+)::Bool

Two lines/linestrings are equal if they share the same set of points going along the curve. Note that lines/linestrings aren't closed by definition.

source

julia
equals(
     ::Union{GI.LineTrait, GI.LineStringTrait}, l1,
     ::GI.LinearRingTrait, l2,
-)::Bool

A line/linestring and a linear ring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

julia
equals(
+)::Bool

A line/linestring and a linear ring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

julia
equals(
     ::GI.LinearRingTrait, l1,
     ::Union{GI.LineTrait, GI.LineStringTrait}, l2,
-)::Bool

A linear ring and a line/linestring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

julia
equals(
+)::Bool

A linear ring and a line/linestring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

julia
equals(
     ::GI.LinearRingTrait, l1,
     ::GI.LinearRingTrait, l2,
-)::Bool

Two linear rings are equal if they share the same set of points going along the curve. Note that rings are closed by definition, so they can have, but don't need, a repeated last point to be equal.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two polygons are equal if they share the same exterior edge and holes.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.MultiPolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

julia
equals(::GI.MultiPolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two multipolygons are equal if they share the same set of polygons.

source


# GeometryOps.centroidFunction.
julia
centroid(geom, [T=Float64])::Tuple{T, T}

Returns the centroid of a given line segment, linear ring, polygon, or mutlipolygon.

source


# GeometryOps.distanceFunction.
julia
distance(point, geom, ::Type{T} = Float64)::T

Calculates the ditance from the geometry g1 to the point. The distance will always be positive or zero.

The method will differ based on the type of the geometry provided: - The distance from a point to a point is just the Euclidean distance between the points. - The distance from a point to a line is the minimum distance from the point to the closest point on the given line. - The distance from a point to a linestring is the minimum distance from the point to the closest segment of the linestring. - The distance from a point to a linear ring is the minimum distance from the point to the closest segment of the linear ring. - The distance from a point to a polygon is zero if the point is within the polygon and otherwise is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The distance from a point to a multigeometry or a geometry collection is the minimum distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.signed_distanceFunction.
julia
signed_distance(point, geom, ::Type{T} = Float64)::T

Calculates the signed distance from the geometry geom to the given point. Points within geom have a negative signed distance, and points outside of geom have a positive signed distance. - The signed distance from a point to a point, line, linestring, or linear ring is equal to the distance between the two. - The signed distance from a point to a polygon is negative if the point is within the polygon and is positive otherwise. The value of the distance is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The signed distance from a point to a multigeometry or a geometry collection is the minimum signed distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.areaFunction.
julia
area(geom, [T = Float64])::T

Returns the area of a geometry or collection of geometries. This is computed slightly differently for different geometries:

- The area of a point/multipoint is always zero.
+)::Bool

Two linear rings are equal if they share the same set of points going along the curve. Note that rings are closed by definition, so they can have, but don't need, a repeated last point to be equal.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two polygons are equal if they share the same exterior edge and holes.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.MultiPolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

julia
equals(::GI.MultiPolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two multipolygons are equal if they share the same set of polygons.

source


# GeometryOps.centroidFunction.
julia
centroid(geom, [T=Float64])::Tuple{T, T}

Returns the centroid of a given line segment, linear ring, polygon, or mutlipolygon.

source


# GeometryOps.distanceFunction.
julia
distance(point, geom, ::Type{T} = Float64)::T

Calculates the ditance from the geometry g1 to the point. The distance will always be positive or zero.

The method will differ based on the type of the geometry provided: - The distance from a point to a point is just the Euclidean distance between the points. - The distance from a point to a line is the minimum distance from the point to the closest point on the given line. - The distance from a point to a linestring is the minimum distance from the point to the closest segment of the linestring. - The distance from a point to a linear ring is the minimum distance from the point to the closest segment of the linear ring. - The distance from a point to a polygon is zero if the point is within the polygon and otherwise is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The distance from a point to a multigeometry or a geometry collection is the minimum distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.signed_distanceFunction.
julia
signed_distance(point, geom, ::Type{T} = Float64)::T

Calculates the signed distance from the geometry geom to the given point. Points within geom have a negative signed distance, and points outside of geom have a positive signed distance. - The signed distance from a point to a point, line, linestring, or linear ring is equal to the distance between the two. - The signed distance from a point to a polygon is negative if the point is within the polygon and is positive otherwise. The value of the distance is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The signed distance from a point to a multigeometry or a geometry collection is the minimum signed distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.areaFunction.
julia
area(geom, [T = Float64])::T

Returns the area of a geometry or collection of geometries. This is computed slightly differently for different geometries:

- The area of a point/multipoint is always zero.
 - The area of a curve/multicurve is always zero.
 - The area of a polygon is the absolute value of the signed area.
 - The area multi-polygon is the sum of the areas of all of the sub-polygons.
 - The area of a geometry collection, feature collection of array/iterable 
-    is the sum of the areas of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.signed_areaFunction.
julia
signed_area(geom, [T = Float64])::T

Returns the signed area of a single geometry, based on winding order. This is computed slightly differently for different geometries:

- The signed area of a point is always zero.
+    is the sum of the areas of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.signed_areaFunction.
julia
signed_area(geom, [T = Float64])::T

Returns the signed area of a single geometry, based on winding order. This is computed slightly differently for different geometries:

- The signed area of a point is always zero.
 - The signed area of a curve is always zero.
 - The signed area of a polygon is computed with the shoelace formula and is
 positive if the polygon coordinates wind clockwise and negative if
 counterclockwise.
 - You cannot compute the signed area of a multipolygon as it doesn't have a
-meaning as each sub-polygon could have a different winding order.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.anglesFunction.
julia
angles(geom, ::Type{T} = Float64)

Returns the angles of a geometry or collection of geometries. This is computed differently for different geometries:

- The angles of a point is an empty vector.
+meaning as each sub-polygon could have a different winding order.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.anglesFunction.
julia
angles(geom, ::Type{T} = Float64)

Returns the angles of a geometry or collection of geometries. This is computed differently for different geometries:

- The angles of a point is an empty vector.
 - The angles of a single line segment is an empty vector.
 - The angles of a linestring or linearring is a vector of angles formed by the curve.
 - The angles of a polygon is a vector of vectors of angles formed by each ring.
 - The angles of a multi-geometry collection is a vector of the angles of each of the
-    sub-geometries as defined above.

Result will be a Vector, or nested set of vectors, of type T where an optional argument with a default value of Float64.

source


# GeometryOps.embed_extentFunction.
julia
embed_extent(obj)

Recursively wrap the object with a GeoInterface.jl geometry, calculating and adding an Extents.Extent to all objects.

This can improve performance when extents need to be checked multiple times, such when needing to check if many points are in geometries, and using their extents as a quick filter for obviously exterior points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

source


Barycentric coordinates

# GeometryOps.barycentric_coordinatesFunction.
julia
barycentric_coordinates(method = MeanValue(), polygon, point)

Returns the barycentric coordinates of point in polygon using the barycentric coordinate method method.

source


# GeometryOps.barycentric_coordinates!Function.
julia
barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, polygon, point)

Loads the barycentric coordinates of point in polygon into λs using the barycentric coordinate method method.

λs must be of the length of the polygon plus its holes.

Tip

Use this method to avoid excess allocations when you need to calculate barycentric coordinates for many points.

source


# GeometryOps.barycentric_interpolateFunction.
julia
barycentric_interpolate(method = MeanValue(), polygon, values::AbstractVector{V}, point)

Returns the interpolated value at point within polygon using the barycentric coordinate method method. values are the per-point values for the polygon which are to be interpolated.

Returns an object of type V.

Warning

Barycentric interpolation is currently defined only for 2-dimensional polygons. If you pass a 3-D polygon in, the Z coordinate will be used as per-vertex value to be interpolated (the M coordinate in GIS parlance).

source


Other methods

# GeometryOps.AbstractBarycentricCoordinateMethodType.
julia
abstract type AbstractBarycentricCoordinateMethod

Abstract supertype for barycentric coordinate methods. The subtypes may serve as dispatch types, or may cache some information about the target polygon.

API

The following methods must be implemented for all subtypes:

  • barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, point::Point{2, T2})

  • barycentric_interpolate(method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, values::Vector{V}, point::Point{2, T2})::V

  • barycentric_interpolate(method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, interiors::Vector{<: Vector{<: Point{2, T1}}} values::Vector{V}, point::Point{2, T2})::V

The rest of the methods will be implemented in terms of these, and have efficient dispatches for broadcasting.

source


# GeometryOps.ClosedRingType.
julia
ClosedRing() <: GeometryCorrection

This correction ensures that a polygon's exterior and interior rings are closed.

It can be called on any geometry correction as usual.

See also GeometryCorrection.

source


# GeometryOps.DiffIntersectingPolygonsType.
julia
DiffIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygons included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be made nonintersecting through the difference operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area. See also GeometryCorrection, UnionIntersectingPolygons.

source


# GeometryOps.DouglasPeuckerType.
julia
DouglasPeucker <: SimplifyAlg
+    sub-geometries as defined above.

Result will be a Vector, or nested set of vectors, of type T where an optional argument with a default value of Float64.

source


# GeometryOps.embed_extentFunction.
julia
embed_extent(obj)

Recursively wrap the object with a GeoInterface.jl geometry, calculating and adding an Extents.Extent to all objects.

This can improve performance when extents need to be checked multiple times, such when needing to check if many points are in geometries, and using their extents as a quick filter for obviously exterior points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

source


Barycentric coordinates

# GeometryOps.barycentric_coordinatesFunction.
julia
barycentric_coordinates(method = MeanValue(), polygon, point)

Returns the barycentric coordinates of point in polygon using the barycentric coordinate method method.

source


# GeometryOps.barycentric_coordinates!Function.
julia
barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, polygon, point)

Loads the barycentric coordinates of point in polygon into λs using the barycentric coordinate method method.

λs must be of the length of the polygon plus its holes.

Tip

Use this method to avoid excess allocations when you need to calculate barycentric coordinates for many points.

source


# GeometryOps.barycentric_interpolateFunction.
julia
barycentric_interpolate(method = MeanValue(), polygon, values::AbstractVector{V}, point)

Returns the interpolated value at point within polygon using the barycentric coordinate method method. values are the per-point values for the polygon which are to be interpolated.

Returns an object of type V.

Warning

Barycentric interpolation is currently defined only for 2-dimensional polygons. If you pass a 3-D polygon in, the Z coordinate will be used as per-vertex value to be interpolated (the M coordinate in GIS parlance).

source


Other methods

# GeometryOps.AbstractBarycentricCoordinateMethodType.
julia
abstract type AbstractBarycentricCoordinateMethod

Abstract supertype for barycentric coordinate methods. The subtypes may serve as dispatch types, or may cache some information about the target polygon.

API

The following methods must be implemented for all subtypes:

  • barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, point::Point{2, T2})

  • barycentric_interpolate(method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, values::Vector{V}, point::Point{2, T2})::V

  • barycentric_interpolate(method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, interiors::Vector{<: Vector{<: Point{2, T1}}} values::Vector{V}, point::Point{2, T2})::V

The rest of the methods will be implemented in terms of these, and have efficient dispatches for broadcasting.

source


# GeometryOps.ClosedRingType.
julia
ClosedRing() <: GeometryCorrection

This correction ensures that a polygon's exterior and interior rings are closed.

It can be called on any geometry correction as usual.

See also GeometryCorrection.

source


# GeometryOps.DiffIntersectingPolygonsType.
julia
DiffIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygons included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be made nonintersecting through the difference operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area. See also GeometryCorrection, UnionIntersectingPolygons.

source


# GeometryOps.DouglasPeuckerType.
julia
DouglasPeucker <: SimplifyAlg
 
-DouglasPeucker(; number, ratio, tol)

Simplifies geometries by removing points below tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance a point will be from the line joining its neighboring points.

Note: user input tol is squared to avoid unnecessary computation in algorithm.

source


# GeometryOps.GEOSType.
julia
GEOS(; params...)

A struct which instructs the method it's passed to as an algorithm to use the appropriate GEOS function via LibGEOS.jl for the operation.

Dispatch is generally carried out using the names of the keyword arguments. For example, segmentize will only accept a GEOS struct with only a max_distance keyword, and no other.

It's generally a lot slower than the native Julia implementations, since it must convert to the LibGEOS implementation and back - so be warned!

source


# GeometryOps.GeodesicSegmentsType.
julia
GeodesicSegments(; max_distance::Real, equatorial_radius::Real=6378137, flattening::Real=1/298.257223563)

A method for segmentizing geometries by adding extra vertices to the geometry so that no segment is longer than a given distance. This method calculates the distance between points on the geodesic, and assumes input in lat/long coordinates.

Warning

Any input geometries must be in lon/lat coordinates! If not, the method may fail or error.

Arguments

  • max_distance::Real: The maximum distance, in meters, between vertices in the geometry.

  • equatorial_radius::Real=6378137: The equatorial radius of the Earth, in meters. Passed to Proj.geod_geodesic.

  • flattening::Real=1/298.257223563: The flattening of the Earth, which is the ratio of the difference between the equatorial and polar radii to the equatorial radius. Passed to Proj.geod_geodesic.

One can also omit the equatorial_radius and flattening keyword arguments, and pass a geodesic object directly to the eponymous keyword.

This method uses the Proj/GeographicLib API for geodesic calculations.

source


# GeometryOps.GeometryCorrectionType.
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source


# GeometryOps.LineOrientationType.
julia
Enum LineOrientation

Enum for the orientation of a line with respect to a curve. A line can be line_cross (crossing over the curve), line_hinge (crossing the endpoint of the curve), line_over (collinear with the curve), or line_out (not interacting with the curve).

source


# GeometryOps.LinearSegmentsType.
julia
LinearSegments(; max_distance::Real)

A method for segmentizing geometries by adding extra vertices to the geometry so that no segment is longer than a given distance.

Here, max_distance is a purely nondimensional quantity and will apply in the input space. This is to say, that if the polygon is provided in lat/lon coordinates then the max_distance will be in degrees of arc. If the polygon is provided in meters, then the max_distance will be in meters.

source


# GeometryOps.MeanValueType.
julia
MeanValue() <: AbstractBarycentricCoordinateMethod

This method calculates barycentric coordinates using the mean value method.

References

source


# GeometryOps.MonotoneChainMethodType.
julia
MonotoneChainMethod()

This is an algorithm for the convex_hull function.

Uses DelaunayTriangulation.jl to compute the convex hull. This is a pure Julia algorithm which provides an optimal Delaunay triangulation.

See also convex_hull

source


# GeometryOps.PointOrientationType.
julia
Enum PointOrientation

Enum for the orientation of a point with respect to a curve. A point can be point_in the curve, point_on the curve, or point_out of the curve.

source


# GeometryOps.RadialDistanceType.
julia
RadialDistance <: SimplifyAlg

Simplifies geometries by removing points less than tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance between points.

Note: user input tol is squared to avoid unnecessary computation in algorithm.

source


# GeometryOps.SimplifyAlgType.
julia
abstract type SimplifyAlg

Abstract type for simplification algorithms.

API

For now, the algorithm must hold the number, ratio and tol properties.

Simplification algorithm types can hook into the interface by implementing the _simplify(trait, alg, geom) methods for whichever traits are necessary.

source


# GeometryOps.TraitTargetType.
julia
TraitTarget{T}

This struct holds a trait parameter or a union of trait parameters.

It is primarily used for dispatch into methods which select trait levels, like apply, or as a parameter to target.

Constructors

julia
TraitTarget(GI.PointTrait())
+DouglasPeucker(; number, ratio, tol)

Simplifies geometries by removing points below tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance a point will be from the line joining its neighboring points.

Note: user input tol is squared to avoid unnecessary computation in algorithm.

source


# GeometryOps.GEOSType.
julia
GEOS(; params...)

A struct which instructs the method it's passed to as an algorithm to use the appropriate GEOS function via LibGEOS.jl for the operation.

Dispatch is generally carried out using the names of the keyword arguments. For example, segmentize will only accept a GEOS struct with only a max_distance keyword, and no other.

It's generally a lot slower than the native Julia implementations, since it must convert to the LibGEOS implementation and back - so be warned!

source


# GeometryOps.GeodesicSegmentsType.
julia
GeodesicSegments(; max_distance::Real, equatorial_radius::Real=6378137, flattening::Real=1/298.257223563)

A method for segmentizing geometries by adding extra vertices to the geometry so that no segment is longer than a given distance. This method calculates the distance between points on the geodesic, and assumes input in lat/long coordinates.

Warning

Any input geometries must be in lon/lat coordinates! If not, the method may fail or error.

Arguments

  • max_distance::Real: The maximum distance, in meters, between vertices in the geometry.

  • equatorial_radius::Real=6378137: The equatorial radius of the Earth, in meters. Passed to Proj.geod_geodesic.

  • flattening::Real=1/298.257223563: The flattening of the Earth, which is the ratio of the difference between the equatorial and polar radii to the equatorial radius. Passed to Proj.geod_geodesic.

One can also omit the equatorial_radius and flattening keyword arguments, and pass a geodesic object directly to the eponymous keyword.

This method uses the Proj/GeographicLib API for geodesic calculations.

source


# GeometryOps.GeometryCorrectionType.
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source


# GeometryOps.LineOrientationType.
julia
Enum LineOrientation

Enum for the orientation of a line with respect to a curve. A line can be line_cross (crossing over the curve), line_hinge (crossing the endpoint of the curve), line_over (collinear with the curve), or line_out (not interacting with the curve).

source


# GeometryOps.LinearSegmentsType.
julia
LinearSegments(; max_distance::Real)

A method for segmentizing geometries by adding extra vertices to the geometry so that no segment is longer than a given distance.

Here, max_distance is a purely nondimensional quantity and will apply in the input space. This is to say, that if the polygon is provided in lat/lon coordinates then the max_distance will be in degrees of arc. If the polygon is provided in meters, then the max_distance will be in meters.

source


# GeometryOps.MeanValueType.
julia
MeanValue() <: AbstractBarycentricCoordinateMethod

This method calculates barycentric coordinates using the mean value method.

References

source


# GeometryOps.MonotoneChainMethodType.
julia
MonotoneChainMethod()

This is an algorithm for the convex_hull function.

Uses DelaunayTriangulation.jl to compute the convex hull. This is a pure Julia algorithm which provides an optimal Delaunay triangulation.

See also convex_hull

source


# GeometryOps.PointOrientationType.
julia
Enum PointOrientation

Enum for the orientation of a point with respect to a curve. A point can be point_in the curve, point_on the curve, or point_out of the curve.

source


# GeometryOps.RadialDistanceType.
julia
RadialDistance <: SimplifyAlg

Simplifies geometries by removing points less than tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance between points.

Note: user input tol is squared to avoid unnecessary computation in algorithm.

source


# GeometryOps.SimplifyAlgType.
julia
abstract type SimplifyAlg

Abstract type for simplification algorithms.

API

For now, the algorithm must hold the number, ratio and tol properties.

Simplification algorithm types can hook into the interface by implementing the _simplify(trait, alg, geom) methods for whichever traits are necessary.

source


# GeometryOps.TraitTargetType.
julia
TraitTarget{T}

This struct holds a trait parameter or a union of trait parameters.

It is primarily used for dispatch into methods which select trait levels, like apply, or as a parameter to target.

Constructors

julia
TraitTarget(GI.PointTrait())
 TraitTarget(GI.LineStringTrait(), GI.LinearRingTrait()) # and other traits as you may like
 TraitTarget(TraitTarget(...))
 # There are also type based constructors available, but that's not advised.
 TraitTarget(GI.PointTrait)
 TraitTarget(Union{GI.LineStringTrait, GI.LinearRingTrait})
-# etc.

source


# GeometryOps.UnionIntersectingPolygonsType.
julia
UnionIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygon's included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be combined through the union operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area.

See also GeometryCorrection.

source


# GeometryOps.VisvalingamWhyattType.
julia
VisvalingamWhyatt <: SimplifyAlg
+# etc.

source


# GeometryOps.UnionIntersectingPolygonsType.
julia
UnionIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygon's included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be combined through the union operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area.

See also GeometryCorrection.

source


# GeometryOps.VisvalingamWhyattType.
julia
VisvalingamWhyatt <: SimplifyAlg
 
-VisvalingamWhyatt(; kw...)

Simplifies geometries by removing points below tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum area of a triangle made with a point and its neighboring points.

Note: user input tol is doubled to avoid unnecessary computation in algorithm.

source


# GeometryOps._detMethod.
julia
_det(s1::Point2{T1}, s2::Point2{T2}) where {T1 <: Real, T2 <: Real}

Returns the determinant of the matrix formed by hcat'ing two points s1 and s2.

Specifically, this is:

julia
s1[1] * s2[2] - s1[2] * s2[1]

source


# GeometryOps._equals_curvesMethod.
julia
_equals_curves(c1, c2, closed_type1, closed_type2)::Bool

Two curves are equal if they share the same set of point, representing the same geometry. Both curves must must be composed of the same set of points, however, they do not have to wind in the same direction, or start on the same point to be equivalent. Inputs: c1 first geometry c2 second geometry closed_type1::Bool true if c1 is closed by definition (polygon, linear ring) closed_type2::Bool true if c2 is closed by definition (polygon, linear ring)

source


# GeometryOps.anglesMethod.
julia
angles(geom, ::Type{T} = Float64)

Returns the angles of a geometry or collection of geometries. This is computed differently for different geometries:

- The angles of a point is an empty vector.
+VisvalingamWhyatt(; kw...)

Simplifies geometries by removing points below tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum area of a triangle made with a point and its neighboring points.

Note: user input tol is doubled to avoid unnecessary computation in algorithm.

source


# GeometryOps._detMethod.
julia
_det(s1::Point2{T1}, s2::Point2{T2}) where {T1 <: Real, T2 <: Real}

Returns the determinant of the matrix formed by hcat'ing two points s1 and s2.

Specifically, this is:

julia
s1[1] * s2[2] - s1[2] * s2[1]

source


# GeometryOps._equals_curvesMethod.
julia
_equals_curves(c1, c2, closed_type1, closed_type2)::Bool

Two curves are equal if they share the same set of point, representing the same geometry. Both curves must must be composed of the same set of points, however, they do not have to wind in the same direction, or start on the same point to be equivalent. Inputs: c1 first geometry c2 second geometry closed_type1::Bool true if c1 is closed by definition (polygon, linear ring) closed_type2::Bool true if c2 is closed by definition (polygon, linear ring)

source


# GeometryOps.anglesMethod.
julia
angles(geom, ::Type{T} = Float64)

Returns the angles of a geometry or collection of geometries. This is computed differently for different geometries:

- The angles of a point is an empty vector.
 - The angles of a single line segment is an empty vector.
 - The angles of a linestring or linearring is a vector of angles formed by the curve.
 - The angles of a polygon is a vector of vectors of angles formed by each ring.
 - The angles of a multi-geometry collection is a vector of the angles of each of the
-    sub-geometries as defined above.

Result will be a Vector, or nested set of vectors, of type T where an optional argument with a default value of Float64.

source


# GeometryOps.applyMethod.
julia
apply(f, target::Union{TraitTarget, GI.AbstractTrait}, obj; kw...)

Reconstruct a geometry, feature, feature collection, or nested vectors of either using the function f on the target trait.

f(target_geom) => x where x also has the target trait, or a trait that can be substituted. For example, swapping PolgonTrait to MultiPointTrait will fail if the outer object has MultiPolygonTrait, but should work if it has FeatureTrait.

Objects "shallower" than the target trait are always completely rebuilt, like a Vector of FeatureCollectionTrait of FeatureTrait when the target has PolygonTrait and is held in the features. These will always be GeoInterface geometries/feature/feature collections. But "deeper" objects may remain unchanged or be whatever GeoInterface compatible objects f returns.

The result is a functionally similar geometry with values depending on f.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

Example

Flipped point the order in any feature or geometry, or iterables of either:

julia
import GeoInterface as GI
+    sub-geometries as defined above.

Result will be a Vector, or nested set of vectors, of type T where an optional argument with a default value of Float64.

source


# GeometryOps.applyMethod.
julia
apply(f, target::Union{TraitTarget, GI.AbstractTrait}, obj; kw...)

Reconstruct a geometry, feature, feature collection, or nested vectors of either using the function f on the target trait.

f(target_geom) => x where x also has the target trait, or a trait that can be substituted. For example, swapping PolgonTrait to MultiPointTrait will fail if the outer object has MultiPolygonTrait, but should work if it has FeatureTrait.

Objects "shallower" than the target trait are always completely rebuilt, like a Vector of FeatureCollectionTrait of FeatureTrait when the target has PolygonTrait and is held in the features. These will always be GeoInterface geometries/feature/feature collections. But "deeper" objects may remain unchanged or be whatever GeoInterface compatible objects f returns.

The result is a functionally similar geometry with values depending on f.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

Example

Flipped point the order in any feature or geometry, or iterables of either:

julia
import GeoInterface as GI
 import GeometryOps as GO
 geom = GI.Polygon([GI.LinearRing([(1, 2), (3, 4), (5, 6), (1, 2)]),
                    GI.LinearRing([(3, 4), (5, 6), (6, 7), (3, 4)])])
 
 flipped_geom = GO.apply(GI.PointTrait, geom) do p
     (GI.y(p), GI.x(p))
-end

source


# GeometryOps.applyreduceMethod.
julia
applyreduce(f, op, target::Union{TraitTarget, GI.AbstractTrait}, obj; threaded)

Apply function f to all objects with the target trait, and reduce the result with an op like +.

The order and grouping of application of op is not guaranteed.

If threaded==true threads will be used over arrays and iterables, feature collections and nested geometries.

source


# GeometryOps.areaMethod.
julia
area(geom, [T = Float64])::T

Returns the area of a geometry or collection of geometries. This is computed slightly differently for different geometries:

- The area of a point/multipoint is always zero.
+end

source


# GeometryOps.applyreduceMethod.
julia
applyreduce(f, op, target::Union{TraitTarget, GI.AbstractTrait}, obj; threaded)

Apply function f to all objects with the target trait, and reduce the result with an op like +.

The order and grouping of application of op is not guaranteed.

If threaded==true threads will be used over arrays and iterables, feature collections and nested geometries.

source


# GeometryOps.areaMethod.
julia
area(geom, [T = Float64])::T

Returns the area of a geometry or collection of geometries. This is computed slightly differently for different geometries:

- The area of a point/multipoint is always zero.
 - The area of a curve/multicurve is always zero.
 - The area of a polygon is the absolute value of the signed area.
 - The area multi-polygon is the sum of the areas of all of the sub-polygons.
 - The area of a geometry collection, feature collection of array/iterable 
-    is the sum of the areas of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.barycentric_coordinates!Method.
julia
barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, polygon, point)

Loads the barycentric coordinates of point in polygon into λs using the barycentric coordinate method method.

λs must be of the length of the polygon plus its holes.

Tip

Use this method to avoid excess allocations when you need to calculate barycentric coordinates for many points.

source


# GeometryOps.barycentric_coordinatesMethod.
julia
barycentric_coordinates(method = MeanValue(), polygon, point)

Returns the barycentric coordinates of point in polygon using the barycentric coordinate method method.

source


# GeometryOps.barycentric_interpolateMethod.
julia
barycentric_interpolate(method = MeanValue(), polygon, values::AbstractVector{V}, point)

Returns the interpolated value at point within polygon using the barycentric coordinate method method. values are the per-point values for the polygon which are to be interpolated.

Returns an object of type V.

Warning

Barycentric interpolation is currently defined only for 2-dimensional polygons. If you pass a 3-D polygon in, the Z coordinate will be used as per-vertex value to be interpolated (the M coordinate in GIS parlance).

source


# GeometryOps.centroidMethod.
julia
centroid(geom, [T=Float64])::Tuple{T, T}

Returns the centroid of a given line segment, linear ring, polygon, or mutlipolygon.

source


# GeometryOps.centroid_and_areaMethod.
julia
centroid_and_area(geom, [T=Float64])::(::Tuple{T, T}, ::Real)

Returns the centroid and area of a given geometry.

source


# GeometryOps.centroid_and_lengthMethod.
julia
centroid_and_length(geom, [T=Float64])::(::Tuple{T, T}, ::Real)

Returns the centroid and length of a given line/ring. Note this is only valid for line strings and linear rings.

source


# GeometryOps.containsMethod.
julia
contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the second geometry is completely contained by the first geometry. The interiors of both geometries must intersect and the interior and boundary of the secondary (g2) must not intersect the exterior of the first (g1).

contains returns the exact opposite result of within.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+    is the sum of the areas of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.barycentric_coordinates!Method.
julia
barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, polygon, point)

Loads the barycentric coordinates of point in polygon into λs using the barycentric coordinate method method.

λs must be of the length of the polygon plus its holes.

Tip

Use this method to avoid excess allocations when you need to calculate barycentric coordinates for many points.

source


# GeometryOps.barycentric_coordinatesMethod.
julia
barycentric_coordinates(method = MeanValue(), polygon, point)

Returns the barycentric coordinates of point in polygon using the barycentric coordinate method method.

source


# GeometryOps.barycentric_interpolateMethod.
julia
barycentric_interpolate(method = MeanValue(), polygon, values::AbstractVector{V}, point)

Returns the interpolated value at point within polygon using the barycentric coordinate method method. values are the per-point values for the polygon which are to be interpolated.

Returns an object of type V.

Warning

Barycentric interpolation is currently defined only for 2-dimensional polygons. If you pass a 3-D polygon in, the Z coordinate will be used as per-vertex value to be interpolated (the M coordinate in GIS parlance).

source


# GeometryOps.centroidMethod.
julia
centroid(geom, [T=Float64])::Tuple{T, T}

Returns the centroid of a given line segment, linear ring, polygon, or mutlipolygon.

source


# GeometryOps.centroid_and_areaMethod.
julia
centroid_and_area(geom, [T=Float64])::(::Tuple{T, T}, ::Real)

Returns the centroid and area of a given geometry.

source


# GeometryOps.centroid_and_lengthMethod.
julia
centroid_and_length(geom, [T=Float64])::(::Tuple{T, T}, ::Real)

Returns the centroid and length of a given line/ring. Note this is only valid for line strings and linear rings.

source


# GeometryOps.containsMethod.
julia
contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the second geometry is completely contained by the first geometry. The interiors of both geometries must intersect and the interior and boundary of the secondary (g2) must not intersect the exterior of the first (g1).

contains returns the exact opposite result of within.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = GI.Point((1, 2))
 
 GO.contains(line, point)
 # output
-true

source


# GeometryOps.convex_hullFunction.
julia
convex_hull([method], geometries)

Compute the convex hull of the points in geometries. Returns a GI.Polygon representing the convex hull.

Note that the polygon returned is wound counterclockwise as in the Simple Features standard by default. If you choose GEOS, the winding order will be inverted.

Warning

This interface only computes the 2-dimensional convex hull!

For higher dimensional hulls, use the relevant package (Qhull.jl, Quickhull.jl, or similar).

source


# GeometryOps.coverageMethod.
julia
coverage(geom, xmin, xmax, ymin, ymax, [T = Float64])::T

Returns the area of intersection between given geometry and grid cell defined by its minimum and maximum x and y-values. This is computed differently for different geometries:

  • The signed area of a point is always zero.

  • The signed area of a curve is always zero.

  • The signed area of a polygon is calculated by tracing along its edges and switching to the cell edges if needed.

  • The coverage of a geometry collection, multi-geometry, feature collection of array/iterable is the sum of the coverages of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.coveredbyMethod.
julia
coveredby(g1, g2)::Bool

Return true if the first geometry is completely covered by the second geometry. The interior and boundary of the primary geometry (g1) must not intersect the exterior of the secondary geometry (g2).

Furthermore, coveredby returns the exact opposite result of covers. They are equivalent with the order of the arguments swapped.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


# GeometryOps.convex_hullFunction.
julia
convex_hull([method], geometries)

Compute the convex hull of the points in geometries. Returns a GI.Polygon representing the convex hull.

Note that the polygon returned is wound counterclockwise as in the Simple Features standard by default. If you choose GEOS, the winding order will be inverted.

Warning

This interface only computes the 2-dimensional convex hull!

For higher dimensional hulls, use the relevant package (Qhull.jl, Quickhull.jl, or similar).

source


# GeometryOps.coverageMethod.
julia
coverage(geom, xmin, xmax, ymin, ymax, [T = Float64])::T

Returns the area of intersection between given geometry and grid cell defined by its minimum and maximum x and y-values. This is computed differently for different geometries:

  • The signed area of a point is always zero.

  • The signed area of a curve is always zero.

  • The signed area of a polygon is calculated by tracing along its edges and switching to the cell edges if needed.

  • The coverage of a geometry collection, multi-geometry, feature collection of array/iterable is the sum of the coverages of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.coveredbyMethod.
julia
coveredby(g1, g2)::Bool

Return true if the first geometry is completely covered by the second geometry. The interior and boundary of the primary geometry (g1) must not intersect the exterior of the secondary geometry (g2).

Furthermore, coveredby returns the exact opposite result of covers. They are equivalent with the order of the arguments swapped.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 p1 = GI.Point(0.0, 0.0)
 p2 = GI.Point(1.0, 1.0)
 l1 = GI.Line([p1, p2])
 
 GO.coveredby(p1, l1)
 # output
-true

source


# GeometryOps.coversMethod.
julia
covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the first geometry is completely covers the second geometry, The exterior and boundary of the second geometry must not be outside of the interior and boundary of the first geometry. However, the interiors need not intersect.

covers returns the exact opposite result of coveredby.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


# GeometryOps.coversMethod.
julia
covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the first geometry is completely covers the second geometry, The exterior and boundary of the second geometry must not be outside of the interior and boundary of the first geometry. However, the interiors need not intersect.

covers returns the exact opposite result of coveredby.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 l1 = GI.LineString([(1.0, 1.0), (1.0, 2.0), (1.0, 3.0), (1.0, 4.0)])
 l2 = GI.LineString([(1.0, 1.0), (1.0, 2.0)])
 
 GO.covers(l1, l2)
 # output
-true

source


# GeometryOps.crossesMethod.
julia
 crosses(geom1, geom2)::Bool

Return true if the intersection results in a geometry whose dimension is one less than the maximum dimension of the two source geometries and the intersection set is interior to both source geometries.

TODO: broken

Examples

julia
import GeoInterface as GI, GeometryOps as GO
-# TODO: Add working example

source


# GeometryOps.cutMethod.
julia
cut(geom, line, [T::Type])

Return given geom cut by given line as a list of geometries of the same type as the input geom. Return the original geometry as only list element if none are found. Line must cut fully through given geometry or the original geometry will be returned.

Note: This currently doesn't work for degenerate cases there line crosses through vertices.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+true

source


# GeometryOps.crossesMethod.
julia
 crosses(geom1, geom2)::Bool

Return true if the intersection results in a geometry whose dimension is one less than the maximum dimension of the two source geometries and the intersection set is interior to both source geometries.

TODO: broken

Examples

julia
import GeoInterface as GI, GeometryOps as GO
+# TODO: Add working example

source


# GeometryOps.cutMethod.
julia
cut(geom, line, [T::Type])

Return given geom cut by given line as a list of geometries of the same type as the input geom. Return the original geometry as only list element if none are found. Line must cut fully through given geometry or the original geometry will be returned.

Note: This currently doesn't work for degenerate cases there line crosses through vertices.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 poly = GI.Polygon([[(0.0, 0.0), (10.0, 0.0), (10.0, 10.0), (0.0, 10.0), (0.0, 0.0)]])
 line = GI.Line([(5.0, -5.0), (5.0, 15.0)])
@@ -189,7 +189,7 @@ import{_ as n,c as e,a5 as a,j as s,o as t}from"./chunks/framework.B9oBnxE7.js";
 # output
 2-element Vector{Vector{Vector{Vector{Float64}}}}:
  [[[0.0, 0.0], [5.0, 0.0], [5.0, 10.0], [0.0, 10.0], [0.0, 0.0]]]
- [[[5.0, 0.0], [10.0, 0.0], [10.0, 10.0], [5.0, 10.0], [5.0, 0.0]]]

source


# GeometryOps.differenceMethod.
julia
difference(geom_a, geom_b, [T::Type]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the difference between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a taget type as a keyword argument and a list of target geometries found in the difference will be returned. The user can also provide a float type that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to false if you know that the multipolygons are valid, as it will avoid unneeded computation.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+ [[[5.0, 0.0], [10.0, 0.0], [10.0, 10.0], [5.0, 10.0], [5.0, 0.0]]]

source


# GeometryOps.differenceMethod.
julia
difference(geom_a, geom_b, [T::Type]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the difference between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a taget type as a keyword argument and a list of target geometries found in the difference will be returned. The user can also provide a float type that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to false if you know that the multipolygons are valid, as it will avoid unneeded computation.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 poly1 = GI.Polygon([[[0.0, 0.0], [5.0, 5.0], [10.0, 0.0], [5.0, -5.0], [0.0, 0.0]]])
 poly2 = GI.Polygon([[[3.0, 0.0], [8.0, 5.0], [13.0, 0.0], [8.0, -5.0], [3.0, 0.0]]])
@@ -198,33 +198,33 @@ import{_ as n,c as e,a5 as a,j as s,o as t}from"./chunks/framework.B9oBnxE7.js";
 
 # output
 1-element Vector{Vector{Vector{Vector{Float64}}}}:
- [[[6.5, 3.5], [5.0, 5.0], [0.0, 0.0], [5.0, -5.0], [6.5, -3.5], [3.0, 0.0], [6.5, 3.5]]]

source


# GeometryOps.disjointMethod.
julia
disjoint(geom1, geom2)::Bool

Return true if the first geometry is disjoint from the second geometry.

Return true if the first geometry is disjoint from the second geometry. The interiors and boundaries of both geometries must not intersect.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+ [[[6.5, 3.5], [5.0, 5.0], [0.0, 0.0], [5.0, -5.0], [6.5, -3.5], [3.0, 0.0], [6.5, 3.5]]]

source


# GeometryOps.disjointMethod.
julia
disjoint(geom1, geom2)::Bool

Return true if the first geometry is disjoint from the second geometry.

Return true if the first geometry is disjoint from the second geometry. The interiors and boundaries of both geometries must not intersect.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = (2, 2)
 GO.disjoint(point, line)
 
 # output
-true

source


# GeometryOps.distanceMethod.
julia
distance(point, geom, ::Type{T} = Float64)::T

Calculates the ditance from the geometry g1 to the point. The distance will always be positive or zero.

The method will differ based on the type of the geometry provided: - The distance from a point to a point is just the Euclidean distance between the points. - The distance from a point to a line is the minimum distance from the point to the closest point on the given line. - The distance from a point to a linestring is the minimum distance from the point to the closest segment of the linestring. - The distance from a point to a linear ring is the minimum distance from the point to the closest segment of the linear ring. - The distance from a point to a polygon is zero if the point is within the polygon and otherwise is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The distance from a point to a multigeometry or a geometry collection is the minimum distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.embed_extentMethod.
julia
embed_extent(obj)

Recursively wrap the object with a GeoInterface.jl geometry, calculating and adding an Extents.Extent to all objects.

This can improve performance when extents need to be checked multiple times, such when needing to check if many points are in geometries, and using their extents as a quick filter for obviously exterior points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

source


# GeometryOps.enforceMethod.
julia
enforce(alg::GO.GEOS, kw::Symbol, f)

Enforce the presence of a keyword argument in a GEOS algorithm, and return alg.params[kw].

Throws an error if the key is not present, and mentions f in the error message (since there isn't a good way to get the name of the function that called this method).

source


# GeometryOps.equalsMethod.
julia
equals(trait_a, geom_a, trait_b, geom_b)

Two geometries which are not of the same type cannot be equal so they always return false.

source


# GeometryOps.equalsMethod.
julia
equals(geom1, geom2)::Bool

Compare two Geometries return true if they are the same geometry.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


# GeometryOps.distanceMethod.
julia
distance(point, geom, ::Type{T} = Float64)::T

Calculates the ditance from the geometry g1 to the point. The distance will always be positive or zero.

The method will differ based on the type of the geometry provided: - The distance from a point to a point is just the Euclidean distance between the points. - The distance from a point to a line is the minimum distance from the point to the closest point on the given line. - The distance from a point to a linestring is the minimum distance from the point to the closest segment of the linestring. - The distance from a point to a linear ring is the minimum distance from the point to the closest segment of the linear ring. - The distance from a point to a polygon is zero if the point is within the polygon and otherwise is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The distance from a point to a multigeometry or a geometry collection is the minimum distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.embed_extentMethod.
julia
embed_extent(obj)

Recursively wrap the object with a GeoInterface.jl geometry, calculating and adding an Extents.Extent to all objects.

This can improve performance when extents need to be checked multiple times, such when needing to check if many points are in geometries, and using their extents as a quick filter for obviously exterior points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

source


# GeometryOps.enforceMethod.
julia
enforce(alg::GO.GEOS, kw::Symbol, f)

Enforce the presence of a keyword argument in a GEOS algorithm, and return alg.params[kw].

Throws an error if the key is not present, and mentions f in the error message (since there isn't a good way to get the name of the function that called this method).

source


# GeometryOps.equalsMethod.
julia
equals(trait_a, geom_a, trait_b, geom_b)

Two geometries which are not of the same type cannot be equal so they always return false.

source


# GeometryOps.equalsMethod.
julia
equals(geom1, geom2)::Bool

Compare two Geometries return true if they are the same geometry.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 poly1 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 poly2 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 
 GO.equals(poly1, poly2)
 # output
-true

source


# GeometryOps.equalsMethod.
julia
equals(
+true

source


# GeometryOps.equalsMethod.
julia
equals(
     ::GI.LinearRingTrait, l1,
     ::GI.LinearRingTrait, l2,
-)::Bool

Two linear rings are equal if they share the same set of points going along the curve. Note that rings are closed by definition, so they can have, but don't need, a repeated last point to be equal.

source


# GeometryOps.equalsMethod.
julia
equals(
+)::Bool

Two linear rings are equal if they share the same set of points going along the curve. Note that rings are closed by definition, so they can have, but don't need, a repeated last point to be equal.

source


# GeometryOps.equalsMethod.
julia
equals(
     ::GI.LinearRingTrait, l1,
     ::Union{GI.LineTrait, GI.LineStringTrait}, l2,
-)::Bool

A linear ring and a line/linestring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source


# GeometryOps.equalsMethod.
julia
equals(::GI.MultiPointTrait, mp1, ::GI.MultiPointTrait, mp2)::Bool

Two multipoints are equal if they share the same set of points.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.MultiPointTrait, mp1, ::GI.PointTrait, p2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two multipolygons are equal if they share the same set of polygons.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.MultiPolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PointTrait, p1, ::GI.MultiPointTrait, mp2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PointTrait, p1, ::GI.PointTrait, p2)::Bool

Two points are the same if they have the same x and y (and z if 3D) coordinates.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PolygonTrait, geom_a, ::GI.MultiPolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two polygons are equal if they share the same exterior edge and holes.

source


# GeometryOps.equalsMethod.
julia
equals(
+)::Bool

A linear ring and a line/linestring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source


# GeometryOps.equalsMethod.
julia
equals(::GI.MultiPointTrait, mp1, ::GI.MultiPointTrait, mp2)::Bool

Two multipoints are equal if they share the same set of points.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.MultiPointTrait, mp1, ::GI.PointTrait, p2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two multipolygons are equal if they share the same set of polygons.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.MultiPolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PointTrait, p1, ::GI.MultiPointTrait, mp2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PointTrait, p1, ::GI.PointTrait, p2)::Bool

Two points are the same if they have the same x and y (and z if 3D) coordinates.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PolygonTrait, geom_a, ::GI.MultiPolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two polygons are equal if they share the same exterior edge and holes.

source


# GeometryOps.equalsMethod.
julia
equals(
     ::Union{GI.LineTrait, GI.LineStringTrait}, l1,
     ::GI.LinearRingTrait, l2,
-)::Bool

A line/linestring and a linear ring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source


# GeometryOps.equalsMethod.
julia
equals(
+)::Bool

A line/linestring and a linear ring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source


# GeometryOps.equalsMethod.
julia
equals(
     ::Union{GI.LineTrait, GI.LineStringTrait}, l1,
     ::Union{GI.LineTrait, GI.LineStringTrait}, l2,
-)::Bool

Two lines/linestrings are equal if they share the same set of points going along the curve. Note that lines/linestrings aren't closed by definition.

source


# GeometryOps.equalsMethod.
julia
equals(::T, geom_a, ::T, geom_b)::Bool

Two geometries of the same type, which don't have a equals function to dispatch off of should throw an error.

source


# GeometryOps.flattenMethod.
julia
flatten(target::Type{<:GI.AbstractTrait}, obj)
-flatten(f, target::Type{<:GI.AbstractTrait}, obj)

Lazily flatten any AbstractArray, iterator, FeatureCollectionTrait, FeatureTrait or AbstractGeometryTrait object obj, so that objects with the target trait are returned by the iterator.

If f is passed in it will be applied to the target geometries.

source


# GeometryOps.flipMethod.
julia
flip(obj)

Swap all of the x and y coordinates in obj, otherwise keeping the original structure (but not necessarily the original type).

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source


# GeometryOps.intersectionMethod.
julia
intersection(geom_a, geom_b, [T::Type]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the intersection between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a target type as a keyword argument and a list of target geometries found in the intersection will be returned. The user can also provide a float type that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to nothing if you know that the multipolygons are valid, as it will avoid unneeded computation.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+)::Bool

Two lines/linestrings are equal if they share the same set of points going along the curve. Note that lines/linestrings aren't closed by definition.

source


# GeometryOps.equalsMethod.
julia
equals(::T, geom_a, ::T, geom_b)::Bool

Two geometries of the same type, which don't have a equals function to dispatch off of should throw an error.

source


# GeometryOps.flattenMethod.
julia
flatten(target::Type{<:GI.AbstractTrait}, obj)
+flatten(f, target::Type{<:GI.AbstractTrait}, obj)

Lazily flatten any AbstractArray, iterator, FeatureCollectionTrait, FeatureTrait or AbstractGeometryTrait object obj, so that objects with the target trait are returned by the iterator.

If f is passed in it will be applied to the target geometries.

source


# GeometryOps.flipMethod.
julia
flip(obj)

Swap all of the x and y coordinates in obj, otherwise keeping the original structure (but not necessarily the original type).

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source


# GeometryOps.intersectionMethod.
julia
intersection(geom_a, geom_b, [T::Type]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the intersection between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a target type as a keyword argument and a list of target geometries found in the intersection will be returned. The user can also provide a float type that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to nothing if you know that the multipolygons are valid, as it will avoid unneeded computation.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 line1 = GI.Line([(124.584961,-12.768946), (126.738281,-17.224758)])
 line2 = GI.Line([(123.354492,-15.961329), (127.22168,-14.008696)])
@@ -233,7 +233,7 @@ import{_ as n,c as e,a5 as a,j as s,o as t}from"./chunks/framework.B9oBnxE7.js";
 
 # output
 1-element Vector{Vector{Float64}}:
- [125.58375366067548, -14.83572303404496]

source


# GeometryOps.intersection_pointsMethod.
julia
intersection_points(geom_a, geom_b, [T::Type])

Return a list of intersection tuple points between two geometries. If no intersection points exist, returns an empty list.

Example

jldoctest

+ [125.58375366067548, -14.83572303404496]

source


# GeometryOps.intersection_pointsMethod.
julia
intersection_points(geom_a, geom_b, [T::Type])

Return a list of intersection tuple points between two geometries. If no intersection points exist, returns an empty list.

Example

jldoctest

 line1 = GI.Line([(124.584961,-12.768946), (126.738281,-17.224758)]) line2 = GI.Line([(123.354492,-15.961329), (127.22168,-14.008696)]) inter_points = GO.intersection_points(line1, line2)
 
 **output**
@@ -241,7 +241,7 @@ import{_ as n,c as e,a5 as a,j as s,o as t}from"./chunks/framework.B9oBnxE7.js";
 1-element Vector{Tuple{Float64, Float64}}:  (125.58375366067548, -14.83572303404496)
 
 
-[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/v0.1.10/src/methods/clipping/intersection.jl#L177-L195)
+[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/v0.1.11/src/methods/clipping/intersection.jl#L177-L195)
 
 </div>
 <br>
@@ -259,57 +259,57 @@ import{_ as n,c as e,a5 as a,j as s,o as t}from"./chunks/framework.B9oBnxE7.js";
 GO.intersects(line1, line2)
 
 # output
-true

source


`,178)),s("div",h,[i[2]||(i[2]=a('# GeometryOps.isclockwiseMethod.
julia
isclockwise(line::Union{LineString, Vector{Position}})::Bool

Take a ring and return true if the line goes clockwise, or false if the line goes counter-clockwise. "Going clockwise" means, mathematically,

',8)),s("mjx-container",p,[(t(),e("svg",r,i[0]||(i[0]=[a('',1)]))),i[1]||(i[1]=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("munderover",null,[s("mo",{"data-mjx-texclass":"OP"},"∑"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mo",null,"="),s("mn",null,"2")]),s("mi",null,"n")]),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mi",null,"i")]),s("mo",null,"−"),s("msub",null,[s("mi",null,"x"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mo",null,"−"),s("mn",null,"1")])]),s("mo",{stretchy:"false"},")"),s("mo",null,"⋅"),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"y"),s("mi",null,"i")]),s("mo",null,"+"),s("msub",null,[s("mi",null,"y"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mo",null,"−"),s("mn",null,"1")])]),s("mo",{stretchy:"false"},")"),s("mo",{"data-mjx-texclass":"CLOSE"},")")]),s("mo",null,">"),s("mn",null,"0")])],-1))]),i[3]||(i[3]=a(`

Example

julia
julia> import GeoInterface as GI, GeometryOps as GO
+true

source


`,178)),s("div",h,[i[2]||(i[2]=a('# GeometryOps.isclockwiseMethod.
julia
isclockwise(line::Union{LineString, Vector{Position}})::Bool

Take a ring and return true if the line goes clockwise, or false if the line goes counter-clockwise. "Going clockwise" means, mathematically,

',8)),s("mjx-container",p,[(t(),e("svg",r,i[0]||(i[0]=[a('',1)]))),i[1]||(i[1]=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("munderover",null,[s("mo",{"data-mjx-texclass":"OP"},"∑"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mo",null,"="),s("mn",null,"2")]),s("mi",null,"n")]),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mi",null,"i")]),s("mo",null,"−"),s("msub",null,[s("mi",null,"x"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mo",null,"−"),s("mn",null,"1")])]),s("mo",{stretchy:"false"},")"),s("mo",null,"⋅"),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"y"),s("mi",null,"i")]),s("mo",null,"+"),s("msub",null,[s("mi",null,"y"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mo",null,"−"),s("mn",null,"1")])]),s("mo",{stretchy:"false"},")"),s("mo",{"data-mjx-texclass":"CLOSE"},")")]),s("mo",null,">"),s("mn",null,"0")])],-1))]),i[3]||(i[3]=a(`

Example

julia
julia> import GeoInterface as GI, GeometryOps as GO
 julia> ring = GI.LinearRing([(0, 0), (1, 1), (1, 0), (0, 0)]);
 julia> GO.isclockwise(ring)
 # output
-true

source

`,3))]),i[9]||(i[9]=a(`
# GeometryOps.isconcaveMethod.
julia
isconcave(poly::Polygon)::Bool

Take a polygon and return true or false as to whether it is concave or not.

Examples

julia
import GeoInterface as GI, GeometryOps as GO
+true

source

`,3))]),i[9]||(i[9]=a(`
# GeometryOps.isconcaveMethod.
julia
isconcave(poly::Polygon)::Bool

Take a polygon and return true or false as to whether it is concave or not.

Examples

julia
import GeoInterface as GI, GeometryOps as GO
 
 poly = GI.Polygon([[(0, 0), (0, 1), (1, 1), (1, 0), (0, 0)]])
 GO.isconcave(poly)
 
 # output
-false

source


# GeometryOps.overlapsMethod.
julia
overlaps(geom1, geom2)::Bool

Compare two Geometries of the same dimension and return true if their intersection set results in a geometry different from both but of the same dimension. This means one geometry cannot be within or contain the other and they cannot be equal

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+false

source


# GeometryOps.overlapsMethod.
julia
overlaps(geom1, geom2)::Bool

Compare two Geometries of the same dimension and return true if their intersection set results in a geometry different from both but of the same dimension. This means one geometry cannot be within or contain the other and they cannot be equal

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 poly1 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 poly2 = GI.Polygon([[(1,1), (1,6), (6,6), (6,1), (1,1)]])
 
 GO.overlaps(poly1, poly2)
 # output
-true

source


# GeometryOps.overlapsMethod.
julia
overlaps(::GI.AbstractTrait, geom1, ::GI.AbstractTrait, geom2)::Bool

For any non-specified pair, all have non-matching dimensions, return false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line)::Bool

If the lines overlap, meaning that they are collinear but each have one endpoint outside of the other line, return true. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
+true

source


# GeometryOps.overlapsMethod.
julia
overlaps(::GI.AbstractTrait, geom1, ::GI.AbstractTrait, geom2)::Bool

For any non-specified pair, all have non-matching dimensions, return false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line)::Bool

If the lines overlap, meaning that they are collinear but each have one endpoint outside of the other line, return true. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
     ::GI.MultiPointTrait, points1,
     ::GI.MultiPointTrait, points2,
-)::Bool

If the multipoints overlap, meaning some, but not all, of the points within the multipoints are shared, return true.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
+)::Bool

If the multipoints overlap, meaning some, but not all, of the points within the multipoints are shared, return true.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
     ::GI.MultiPolygonTrait, polys1,
     ::GI.MultiPolygonTrait, polys2,
-)::Bool

Return true if at least one pair of polygons from multipolygons overlap. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
+)::Bool

Return true if at least one pair of polygons from multipolygons overlap. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
     ::GI.MultiPolygonTrait, polys1,
     ::GI.PolygonTrait, poly2,
-)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
+)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
     ::GI.PolygonTrait, poly1,
     ::GI.MultiPolygonTrait, polys2,
-)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
+)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
     trait_a::GI.PolygonTrait, poly_a,
     trait_b::GI.PolygonTrait, poly_b,
-)::Bool

If the two polygons intersect with one another, but are not equal, return true. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
+)::Bool

If the two polygons intersect with one another, but are not equal, return true. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
     ::Union{GI.LineStringTrait, GI.LinearRing}, line1,
     ::Union{GI.LineStringTrait, GI.LinearRing}, line2,
-)::Bool

If the curves overlap, meaning that at least one edge of each curve overlaps, return true. Else false.

source


# GeometryOps.polygon_to_lineMethod.
julia
polygon_to_line(poly::Polygon)

Converts a Polygon to LineString or MultiLineString

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+)::Bool

If the curves overlap, meaning that at least one edge of each curve overlaps, return true. Else false.

source


# GeometryOps.polygon_to_lineMethod.
julia
polygon_to_line(poly::Polygon)

Converts a Polygon to LineString or MultiLineString

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 poly = GI.Polygon([[(-2.275543, 53.464547), (-2.275543, 53.489271), (-2.215118, 53.489271), (-2.215118, 53.464547), (-2.275543, 53.464547)]])
 GO.polygon_to_line(poly)
 # output
-GeoInterface.Wrappers.LineString{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(-2.275543, 53.464547), (-2.275543, 53.489271), (-2.215118, 53.489271), (-2.215118, 53.464547), (-2.275543, 53.464547)], nothing, nothing)

source


# GeometryOps.polygonizeMethod.
julia
polygonize(A::AbstractMatrix{Bool}; kw...)
+GeoInterface.Wrappers.LineString{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(-2.275543, 53.464547), (-2.275543, 53.489271), (-2.215118, 53.489271), (-2.215118, 53.464547), (-2.275543, 53.464547)], nothing, nothing)

source


# GeometryOps.polygonizeMethod.
julia
polygonize(A::AbstractMatrix{Bool}; kw...)
 polygonize(f, A::AbstractMatrix; kw...)
 polygonize(xs, ys, A::AbstractMatrix{Bool}; kw...)
 polygonize(f, xs, ys, A::AbstractMatrix; kw...)

Polygonize an AbstractMatrix of values, currently to a single class of polygons.

Returns a MultiPolygon for Bool values and f return values, and a FeatureCollection of Features holding MultiPolygon for all other values.

Function f should return either true or false or a transformation of values into simpler groups, especially useful for floating point arrays.

If xs and ys are ranges, they are used as the pixel/cell center points. If they are Vector of Tuple they are used as the lower and upper bounds of each pixel/cell.

Keywords

  • minpoints: ignore polygons with less than minpoints points.

  • values: the values to turn into polygons. By default these are union(A), If function f is passed these refer to the return values of f, by default union(map(f, A). If values Bool, false is ignored and a single MultiPolygon is returned rather than a FeatureCollection.

Example

julia
using GeometryOps
 A = rand(100, 100)
-multipolygon = polygonize(>(0.5), A);

source


# GeometryOps.rebuildMethod.
julia
rebuild(geom, child_geoms)

Rebuild a geometry from child geometries.

By default geometries will be rebuilt as a GeoInterface.Wrappers geometry, but rebuild can have methods added to it to dispatch on geometries from other packages and specify how to rebuild them.

(Maybe it should go into GeoInterface.jl)

source


# GeometryOps.reconstructMethod.
julia
reconstruct(geom, components)

Reconstruct geom from an iterable of component objects that match its structure.

All objects in components must have the same GeoInterface.trait.

Usually used in combination with flatten.

source


# GeometryOps.segmentizeMethod.
julia
segmentize([method = LinearSegments()], geom; max_distance::Real, threaded)

Segmentize a geometry by adding extra vertices to the geometry so that no segment is longer than a given distance. This is useful for plotting geometries with a limited number of vertices, or for ensuring that a geometry is not too "coarse" for a given application.

Arguments

  • method::SegmentizeMethod = LinearSegments(): The method to use for segmentizing the geometry. At the moment, only LinearSegments and GeodesicSegments are available.

  • geom: The geometry to segmentize. Must be a LineString, LinearRing, or greater in complexity.

  • max_distance::Real: The maximum distance, in the input space, between vertices in the geometry. Only used if you don't explicitly pass a method.

Returns a geometry of similar type to the input geometry, but resampled.

source


# GeometryOps.signed_areaMethod.
julia
signed_area(geom, [T = Float64])::T

Returns the signed area of a single geometry, based on winding order. This is computed slightly differently for different geometries:

- The signed area of a point is always zero.
+multipolygon = polygonize(>(0.5), A);

source


# GeometryOps.rebuildMethod.
julia
rebuild(geom, child_geoms)

Rebuild a geometry from child geometries.

By default geometries will be rebuilt as a GeoInterface.Wrappers geometry, but rebuild can have methods added to it to dispatch on geometries from other packages and specify how to rebuild them.

(Maybe it should go into GeoInterface.jl)

source


# GeometryOps.reconstructMethod.
julia
reconstruct(geom, components)

Reconstruct geom from an iterable of component objects that match its structure.

All objects in components must have the same GeoInterface.trait.

Usually used in combination with flatten.

source


# GeometryOps.segmentizeMethod.
julia
segmentize([method = LinearSegments()], geom; max_distance::Real, threaded)

Segmentize a geometry by adding extra vertices to the geometry so that no segment is longer than a given distance. This is useful for plotting geometries with a limited number of vertices, or for ensuring that a geometry is not too "coarse" for a given application.

Arguments

  • method::SegmentizeMethod = LinearSegments(): The method to use for segmentizing the geometry. At the moment, only LinearSegments and GeodesicSegments are available.

  • geom: The geometry to segmentize. Must be a LineString, LinearRing, or greater in complexity.

  • max_distance::Real: The maximum distance, in the input space, between vertices in the geometry. Only used if you don't explicitly pass a method.

Returns a geometry of similar type to the input geometry, but resampled.

source


# GeometryOps.signed_areaMethod.
julia
signed_area(geom, [T = Float64])::T

Returns the signed area of a single geometry, based on winding order. This is computed slightly differently for different geometries:

- The signed area of a point is always zero.
 - The signed area of a curve is always zero.
 - The signed area of a polygon is computed with the shoelace formula and is
 positive if the polygon coordinates wind clockwise and negative if
 counterclockwise.
 - You cannot compute the signed area of a multipolygon as it doesn't have a
-meaning as each sub-polygon could have a different winding order.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.signed_distanceMethod.
julia
signed_distance(point, geom, ::Type{T} = Float64)::T

Calculates the signed distance from the geometry geom to the given point. Points within geom have a negative signed distance, and points outside of geom have a positive signed distance. - The signed distance from a point to a point, line, linestring, or linear ring is equal to the distance between the two. - The signed distance from a point to a polygon is negative if the point is within the polygon and is positive otherwise. The value of the distance is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The signed distance from a point to a multigeometry or a geometry collection is the minimum signed distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.simplifyMethod.
julia
simplify(obj; kw...)
+meaning as each sub-polygon could have a different winding order.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.signed_distanceMethod.
julia
signed_distance(point, geom, ::Type{T} = Float64)::T

Calculates the signed distance from the geometry geom to the given point. Points within geom have a negative signed distance, and points outside of geom have a positive signed distance. - The signed distance from a point to a point, line, linestring, or linear ring is equal to the distance between the two. - The signed distance from a point to a polygon is negative if the point is within the polygon and is positive otherwise. The value of the distance is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The signed distance from a point to a multigeometry or a geometry collection is the minimum signed distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.simplifyMethod.
julia
simplify(obj; kw...)
 simplify(::SimplifyAlg, obj; kw...)

Simplify a geometry, feature, feature collection, or nested vectors or a table of these.

RadialDistance, DouglasPeucker, or VisvalingamWhyatt algorithms are available, listed in order of increasing quality but decreasing performance.

PoinTrait and MultiPointTrait are returned unchanged.

The default behaviour is simplify(DouglasPeucker(; kw...), obj). Pass in other SimplifyAlg to use other algorithms.

Keywords

  • prefilter_alg: SimplifyAlg algorithm used to pre-filter object before using primary filtering algorithm.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

Keywords for DouglasPeucker are allowed when no algorithm is specified:

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance a point will be from the line joining its neighboring points.

Example

Simplify a polygon to have six points:

julia
import GeoInterface as GI
 import GeometryOps as GO
 
@@ -339,9 +339,9 @@ import{_ as n,c as e,a5 as a,j as s,o as t}from"./chunks/framework.B9oBnxE7.js";
 GI.npoint(simple)
 
 # output
-6

source


`,37)),s("div",k,[i[6]||(i[6]=a('# GeometryOps.t_valueMethod.
julia
t_value(sᵢ, sᵢ₊₁, rᵢ, rᵢ₊₁)

Returns the "T-value" as described in Hormann's presentation [1] on how to calculate the mean-value coordinate.

Here, sᵢ is the vector from vertex vᵢ to the point, and rᵢ is the norm (length) of sᵢ. s must be Point and r must be real numbers.

',9)),s("mjx-container",o,[(t(),e("svg",d,i[4]||(i[4]=[a('',1)]))),i[5]||(i[5]=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"t"),s("mi",null,"ᵢ"),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",{"data-mjx-auto-op":"false"},"det")]),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mo",null,","),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₊")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₁")]),s("mo",{"data-mjx-texclass":"CLOSE"},")")])]),s("mrow",null,[s("mi",null,"r"),s("mi",null,"ᵢ"),s("mo",null,"∗"),s("mi",null,"r"),s("mi",null,"ᵢ"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₊")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₁")]),s("mo",null,"+"),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mo",null,"⋅"),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₊")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₁")])])])])],-1))]),i[7]||(i[7]=a(`

+6

source


`,37)),s("div",k,[i[6]||(i[6]=a('# GeometryOps.t_valueMethod.
julia
t_value(sᵢ, sᵢ₊₁, rᵢ, rᵢ₊₁)

Returns the "T-value" as described in Hormann's presentation [1] on how to calculate the mean-value coordinate.

Here, sᵢ is the vector from vertex vᵢ to the point, and rᵢ is the norm (length) of sᵢ. s must be Point and r must be real numbers.

',9)),s("mjx-container",o,[(t(),e("svg",d,i[4]||(i[4]=[a('',1)]))),i[5]||(i[5]=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"t"),s("mi",null,"ᵢ"),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",{"data-mjx-auto-op":"false"},"det")]),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mo",null,","),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₊")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₁")]),s("mo",{"data-mjx-texclass":"CLOSE"},")")])]),s("mrow",null,[s("mi",null,"r"),s("mi",null,"ᵢ"),s("mo",null,"∗"),s("mi",null,"r"),s("mi",null,"ᵢ"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₊")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₁")]),s("mo",null,"+"),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mo",null,"⋅"),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₊")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₁")])])])])],-1))]),i[7]||(i[7]=a(`

 
-[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/v0.1.10/src/methods/barycentric.jl#L289-L305)
+[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/v0.1.11/src/methods/barycentric.jl#L289-L305)
 
 </div>
 <br>
@@ -352,14 +352,14 @@ import{_ as n,c as e,a5 as a,j as s,o as t}from"./chunks/framework.B9oBnxE7.js";
 
 
 \`\`\`julia
-to_edges()

Convert any geometry or collection of geometries into a flat vector of Tuple{Tuple{Float64,Float64},Tuple{Float64,Float64}} edges.

source

`,3))]),i[10]||(i[10]=a(`
# GeometryOps.touchesMethod.
julia
touches(geom1, geom2)::Bool

Return true if the first geometry touches the second geometry. In other words, the two interiors cannot interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+to_edges()

Convert any geometry or collection of geometries into a flat vector of Tuple{Tuple{Float64,Float64},Tuple{Float64,Float64}} edges.

source

`,3))]),i[10]||(i[10]=a(`
# GeometryOps.touchesMethod.
julia
touches(geom1, geom2)::Bool

Return true if the first geometry touches the second geometry. In other words, the two interiors cannot interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 l1 = GI.Line([(0.0, 0.0), (1.0, 0.0)])
 l2 = GI.Line([(1.0, 1.0), (1.0, -1.0)])
 
 GO.touches(l1, l2)
 # output
-true

source


# GeometryOps.transformMethod.
julia
transform(f, obj)

Apply a function f to all the points in obj.

Points will be passed to f as an SVector to allow using CoordinateTransformations.jl and Rotations.jl without hassle.

SVector is also a valid GeoInterface.jl point, so will work in all GeoInterface.jl methods.

Example

julia
julia> import GeoInterface as GI
+true

source


# GeometryOps.transformMethod.
julia
transform(f, obj)

Apply a function f to all the points in obj.

Points will be passed to f as an SVector to allow using CoordinateTransformations.jl and Rotations.jl without hassle.

SVector is also a valid GeoInterface.jl point, so will work in all GeoInterface.jl methods.

Example

julia
julia> import GeoInterface as GI
 
 julia> import GeometryOps as GO
 
@@ -378,7 +378,7 @@ import{_ as n,c as e,a5 as a,j as s,o as t}from"./chunks/framework.B9oBnxE7.js";
 GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearR
 ing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}(StaticArraysCore.SVe
 ctor{2, Int64}[[2, 1], [4, 3], [6, 5], [2, 1]], nothing, nothing), GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}(StaticArraysCore.SVector{2, Int64
-}[[4, 3], [6, 5], [7, 6], [4, 3]], nothing, nothing)], nothing, nothing)

source


# GeometryOps.tuplesMethod.
julia
tuples(obj)

Convert all points in obj to Tuples, wherever the are nested.

Returns a similar object or collection of objects using GeoInterface.jl geometries wrapping Tuple points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source


# GeometryOps.unionMethod.
julia
union(geom_a, geom_b, [::Type{T}]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the union between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a taget type as a keyword argument and a list of target geometries found in the difference will be returned. The user can also provide a float type 'T' that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to false if you know that the multipolygons are valid, as it will avoid unneeded computation.

Calculates the union between two polygons.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+}[[4, 3], [6, 5], [7, 6], [4, 3]], nothing, nothing)], nothing, nothing)

source


# GeometryOps.tuplesMethod.
julia
tuples(obj)

Convert all points in obj to Tuples, wherever the are nested.

Returns a similar object or collection of objects using GeoInterface.jl geometries wrapping Tuple points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source


# GeometryOps.unionMethod.
julia
union(geom_a, geom_b, [::Type{T}]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the union between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a taget type as a keyword argument and a list of target geometries found in the difference will be returned. The user can also provide a float type 'T' that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to false if you know that the multipolygons are valid, as it will avoid unneeded computation.

Calculates the union between two polygons.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 p1 = GI.Polygon([[(0.0, 0.0), (5.0, 5.0), (10.0, 0.0), (5.0, -5.0), (0.0, 0.0)]])
 p2 = GI.Polygon([[(3.0, 0.0), (8.0, 5.0), (13.0, 0.0), (8.0, -5.0), (3.0, 0.0)]])
@@ -387,12 +387,12 @@ import{_ as n,c as e,a5 as a,j as s,o as t}from"./chunks/framework.B9oBnxE7.js";
 
 # output
 1-element Vector{Vector{Vector{Vector{Float64}}}}:
- [[[6.5, 3.5], [5.0, 5.0], [0.0, 0.0], [5.0, -5.0], [6.5, -3.5], [8.0, -5.0], [13.0, 0.0], [8.0, 5.0], [6.5, 3.5]]]

source


# GeometryOps.unwrapFunction.
julia
unwrap(target::Type{<:AbstractTrait}, obj)
-unwrap(f, target::Type{<:AbstractTrait}, obj)

Unwrap the object to vectors, down to the target trait.

If f is passed in it will be applied to the target geometries as they are found.

source


# GeometryOps.weighted_meanMethod.
julia
weighted_mean(weight::Real, x1, x2)

Returns the weighted mean of x1 and x2, where weight is the weight of x1.

Specifically, calculates x1 * weight + x2 * (1 - weight).

Note

The idea for this method is that you can override this for custom types, like Color types, in extension modules.

source


# GeometryOps.withinMethod.
julia
within(geom1, geom2)::Bool

Return true if the first geometry is completely within the second geometry. The interiors of both geometries must intersect and the interior and boundary of the primary geometry (geom1) must not intersect the exterior of the secondary geometry (geom2).

Furthermore, within returns the exact opposite result of contains.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+ [[[6.5, 3.5], [5.0, 5.0], [0.0, 0.0], [5.0, -5.0], [6.5, -3.5], [8.0, -5.0], [13.0, 0.0], [8.0, 5.0], [6.5, 3.5]]]

source


# GeometryOps.unwrapFunction.
julia
unwrap(target::Type{<:AbstractTrait}, obj)
+unwrap(f, target::Type{<:AbstractTrait}, obj)

Unwrap the object to vectors, down to the target trait.

If f is passed in it will be applied to the target geometries as they are found.

source


# GeometryOps.weighted_meanMethod.
julia
weighted_mean(weight::Real, x1, x2)

Returns the weighted mean of x1 and x2, where weight is the weight of x1.

Specifically, calculates x1 * weight + x2 * (1 - weight).

Note

The idea for this method is that you can override this for custom types, like Color types, in extension modules.

source


# GeometryOps.withinMethod.
julia
within(geom1, geom2)::Bool

Return true if the first geometry is completely within the second geometry. The interiors of both geometries must intersect and the interior and boundary of the primary geometry (geom1) must not intersect the exterior of the secondary geometry (geom2).

Furthermore, within returns the exact opposite result of contains.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = (1, 2)
 GO.within(point, line)
 
 # output
-true

source



  1. K. Hormann and N. Sukumar. Generalized Barycentric Coordinates in Computer Graphics and Computational Mechanics. Taylor & Fancis, CRC Press, 2017. ↩︎

`,17))])}const C=n(l,[["render",g]]);export{b as __pageData,C as default}; +true

source



  1. K. Hormann and N. Sukumar. Generalized Barycentric Coordinates in Computer Graphics and Computational Mechanics. Taylor & Fancis, CRC Press, 2017. ↩︎

`,17))])}const C=n(l,[["render",g]]);export{b as __pageData,C as default}; diff --git a/dev/assets/api.md.2ouECU0_.lean.js b/dev/assets/api.md.DA3cj-wA.lean.js similarity index 97% rename from dev/assets/api.md.2ouECU0_.lean.js rename to dev/assets/api.md.DA3cj-wA.lean.js index dee787b9c..b221b46ad 100644 --- a/dev/assets/api.md.2ouECU0_.lean.js +++ b/dev/assets/api.md.DA3cj-wA.lean.js @@ -1,13 +1,13 @@ -import{_ as n,c as e,a5 as a,j as s,o as t}from"./chunks/framework.B9oBnxE7.js";const b=JSON.parse('{"title":"Full GeometryOps API documentation","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),l={name:"api.md"},h={style:{"border-width":"1px","border-style":"solid","border-color":"black",padding:"1em","border-radius":"25px"}},p={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},r={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.827ex"},xmlns:"http://www.w3.org/2000/svg",width:"33.539ex",height:"6.785ex",role:"img",focusable:"false",viewBox:"0 -1749.5 14824.1 2999","aria-hidden":"true"},k={style:{"border-width":"1px","border-style":"solid","border-color":"black",padding:"1em","border-radius":"25px"}},o={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.059ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.746ex",height:"5.362ex",role:"img",focusable:"false",viewBox:"0 -1460 12263.9 2370","aria-hidden":"true"};function g(y,i,E,c,u,m){return t(),e("div",null,[i[8]||(i[8]=a(`

Full GeometryOps API documentation

Warning

This page is still very much WIP!

Documentation for GeometryOps's full API (only for reference!).

apply and associated functions

# GeometryOps.applyFunction.
julia
apply(f, target::Union{TraitTarget, GI.AbstractTrait}, obj; kw...)

Reconstruct a geometry, feature, feature collection, or nested vectors of either using the function f on the target trait.

f(target_geom) => x where x also has the target trait, or a trait that can be substituted. For example, swapping PolgonTrait to MultiPointTrait will fail if the outer object has MultiPolygonTrait, but should work if it has FeatureTrait.

Objects "shallower" than the target trait are always completely rebuilt, like a Vector of FeatureCollectionTrait of FeatureTrait when the target has PolygonTrait and is held in the features. These will always be GeoInterface geometries/feature/feature collections. But "deeper" objects may remain unchanged or be whatever GeoInterface compatible objects f returns.

The result is a functionally similar geometry with values depending on f.

Example

Flipped point the order in any feature or geometry, or iterables of either:

julia
import GeoInterface as GI
+import{_ as n,c as e,a5 as a,j as s,o as t}from"./chunks/framework.B0Ss3dHN.js";const b=JSON.parse('{"title":"Full GeometryOps API documentation","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),l={name:"api.md"},h={style:{"border-width":"1px","border-style":"solid","border-color":"black",padding:"1em","border-radius":"25px"}},p={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},r={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.827ex"},xmlns:"http://www.w3.org/2000/svg",width:"33.539ex",height:"6.785ex",role:"img",focusable:"false",viewBox:"0 -1749.5 14824.1 2999","aria-hidden":"true"},k={style:{"border-width":"1px","border-style":"solid","border-color":"black",padding:"1em","border-radius":"25px"}},o={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.059ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.746ex",height:"5.362ex",role:"img",focusable:"false",viewBox:"0 -1460 12263.9 2370","aria-hidden":"true"};function g(y,i,E,c,u,m){return t(),e("div",null,[i[8]||(i[8]=a(`

Full GeometryOps API documentation

Warning

This page is still very much WIP!

Documentation for GeometryOps's full API (only for reference!).

apply and associated functions

# GeometryOps.applyFunction.
julia
apply(f, target::Union{TraitTarget, GI.AbstractTrait}, obj; kw...)

Reconstruct a geometry, feature, feature collection, or nested vectors of either using the function f on the target trait.

f(target_geom) => x where x also has the target trait, or a trait that can be substituted. For example, swapping PolgonTrait to MultiPointTrait will fail if the outer object has MultiPolygonTrait, but should work if it has FeatureTrait.

Objects "shallower" than the target trait are always completely rebuilt, like a Vector of FeatureCollectionTrait of FeatureTrait when the target has PolygonTrait and is held in the features. These will always be GeoInterface geometries/feature/feature collections. But "deeper" objects may remain unchanged or be whatever GeoInterface compatible objects f returns.

The result is a functionally similar geometry with values depending on f.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

Example

Flipped point the order in any feature or geometry, or iterables of either:

julia
import GeoInterface as GI
 import GeometryOps as GO
 geom = GI.Polygon([GI.LinearRing([(1, 2), (3, 4), (5, 6), (1, 2)]),
                    GI.LinearRing([(3, 4), (5, 6), (6, 7), (3, 4)])])
 
 flipped_geom = GO.apply(GI.PointTrait, geom) do p
     (GI.y(p), GI.x(p))
-end

source


# GeometryOps.applyreduceFunction.
julia
applyreduce(f, op, target::Union{TraitTarget, GI.AbstractTrait}, obj; threaded)

Apply function f to all objects with the target trait, and reduce the result with an op like +.

The order and grouping of application of op is not guaranteed.

If threaded==true threads will be used over arrays and iterables, feature collections and nested geometries.

source


# GeometryOps.reprojectFunction.
julia
reproject(geometry; source_crs, target_crs, transform, always_xy, time)
+end

source


# GeometryOps.applyreduceFunction.
julia
applyreduce(f, op, target::Union{TraitTarget, GI.AbstractTrait}, obj; threaded)

Apply function f to all objects with the target trait, and reduce the result with an op like +.

The order and grouping of application of op is not guaranteed.

If threaded==true threads will be used over arrays and iterables, feature collections and nested geometries.

source


# GeometryOps.reprojectFunction.
julia
reproject(geometry; source_crs, target_crs, transform, always_xy, time)
 reproject(geometry, source_crs, target_crs; always_xy, time)
-reproject(geometry, transform; always_xy, time)

Reproject any GeoInterface.jl compatible geometry from source_crs to target_crs.

The returned object will be constructed from GeoInterface.WrapperGeometry geometries, wrapping views of a Vector{Proj.Point{D}}, where D is the dimension.

Tip

The Proj.jl package must be loaded for this method to work, since it is implemented in a package extension.

Arguments

  • geometry: Any GeoInterface.jl compatible geometries.

  • source_crs: the source coordinate reference system, as a GeoFormatTypes.jl object or a string.

  • target_crs: the target coordinate reference system, as a GeoFormatTypes.jl object or a string.

If these a passed as keywords, transform will take priority. Without it target_crs is always needed, and source_crs is needed if it is not retrievable from the geometry with GeoInterface.crs(geometry).

Keywords

  • always_xy: force x, y coordinate order, true by default. false will expect and return points in the crs coordinate order.

  • time: the time for the coordinates. Inf by default.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source


# GeometryOps.transformFunction.
julia
transform(f, obj)

Apply a function f to all the points in obj.

Points will be passed to f as an SVector to allow using CoordinateTransformations.jl and Rotations.jl without hassle.

SVector is also a valid GeoInterface.jl point, so will work in all GeoInterface.jl methods.

Example

julia
julia> import GeoInterface as GI
+reproject(geometry, transform; always_xy, time)

Reproject any GeoInterface.jl compatible geometry from source_crs to target_crs.

The returned object will be constructed from GeoInterface.WrapperGeometry geometries, wrapping views of a Vector{Proj.Point{D}}, where D is the dimension.

Tip

The Proj.jl package must be loaded for this method to work, since it is implemented in a package extension.

Arguments

  • geometry: Any GeoInterface.jl compatible geometries.

  • source_crs: the source coordinate reference system, as a GeoFormatTypes.jl object or a string.

  • target_crs: the target coordinate reference system, as a GeoFormatTypes.jl object or a string.

If these a passed as keywords, transform will take priority. Without it target_crs is always needed, and source_crs is needed if it is not retrievable from the geometry with GeoInterface.crs(geometry).

Keywords

  • always_xy: force x, y coordinate order, true by default. false will expect and return points in the crs coordinate order.

  • time: the time for the coordinates. Inf by default.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source


# GeometryOps.transformFunction.
julia
transform(f, obj)

Apply a function f to all the points in obj.

Points will be passed to f as an SVector to allow using CoordinateTransformations.jl and Rotations.jl without hassle.

SVector is also a valid GeoInterface.jl point, so will work in all GeoInterface.jl methods.

Example

julia
julia> import GeoInterface as GI
 
 julia> import GeometryOps as GO
 
@@ -26,160 +26,160 @@ import{_ as n,c as e,a5 as a,j as s,o as t}from"./chunks/framework.B9oBnxE7.js";
 GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearR
 ing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}(StaticArraysCore.SVe
 ctor{2, Int64}[[2, 1], [4, 3], [6, 5], [2, 1]], nothing, nothing), GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}(StaticArraysCore.SVector{2, Int64
-}[[4, 3], [6, 5], [7, 6], [4, 3]], nothing, nothing)], nothing, nothing)

source


General geometry methods

OGC methods

# GeometryOps.containsFunction.
julia
contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the second geometry is completely contained by the first geometry. The interiors of both geometries must intersect and the interior and boundary of the secondary (g2) must not intersect the exterior of the first (g1).

contains returns the exact opposite result of within.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+}[[4, 3], [6, 5], [7, 6], [4, 3]], nothing, nothing)], nothing, nothing)

source


General geometry methods

OGC methods

# GeometryOps.containsFunction.
julia
contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the second geometry is completely contained by the first geometry. The interiors of both geometries must intersect and the interior and boundary of the secondary (g2) must not intersect the exterior of the first (g1).

contains returns the exact opposite result of within.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = GI.Point((1, 2))
 
 GO.contains(line, point)
 # output
-true

source


# GeometryOps.coveredbyFunction.
julia
coveredby(g1, g2)::Bool

Return true if the first geometry is completely covered by the second geometry. The interior and boundary of the primary geometry (g1) must not intersect the exterior of the secondary geometry (g2).

Furthermore, coveredby returns the exact opposite result of covers. They are equivalent with the order of the arguments swapped.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


# GeometryOps.coveredbyFunction.
julia
coveredby(g1, g2)::Bool

Return true if the first geometry is completely covered by the second geometry. The interior and boundary of the primary geometry (g1) must not intersect the exterior of the secondary geometry (g2).

Furthermore, coveredby returns the exact opposite result of covers. They are equivalent with the order of the arguments swapped.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 p1 = GI.Point(0.0, 0.0)
 p2 = GI.Point(1.0, 1.0)
 l1 = GI.Line([p1, p2])
 
 GO.coveredby(p1, l1)
 # output
-true

source


# GeometryOps.coversFunction.
julia
covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the first geometry is completely covers the second geometry, The exterior and boundary of the second geometry must not be outside of the interior and boundary of the first geometry. However, the interiors need not intersect.

covers returns the exact opposite result of coveredby.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


# GeometryOps.coversFunction.
julia
covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the first geometry is completely covers the second geometry, The exterior and boundary of the second geometry must not be outside of the interior and boundary of the first geometry. However, the interiors need not intersect.

covers returns the exact opposite result of coveredby.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 l1 = GI.LineString([(1.0, 1.0), (1.0, 2.0), (1.0, 3.0), (1.0, 4.0)])
 l2 = GI.LineString([(1.0, 1.0), (1.0, 2.0)])
 
 GO.covers(l1, l2)
 # output
-true

source


# GeometryOps.crossesFunction.
julia
 crosses(geom1, geom2)::Bool

Return true if the intersection results in a geometry whose dimension is one less than the maximum dimension of the two source geometries and the intersection set is interior to both source geometries.

TODO: broken

Examples

julia
import GeoInterface as GI, GeometryOps as GO
-# TODO: Add working example

source


# GeometryOps.disjointFunction.
julia
disjoint(geom1, geom2)::Bool

Return true if the first geometry is disjoint from the second geometry.

Return true if the first geometry is disjoint from the second geometry. The interiors and boundaries of both geometries must not intersect.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


# GeometryOps.crossesFunction.
julia
 crosses(geom1, geom2)::Bool

Return true if the intersection results in a geometry whose dimension is one less than the maximum dimension of the two source geometries and the intersection set is interior to both source geometries.

TODO: broken

Examples

julia
import GeoInterface as GI, GeometryOps as GO
+# TODO: Add working example

source


# GeometryOps.disjointFunction.
julia
disjoint(geom1, geom2)::Bool

Return true if the first geometry is disjoint from the second geometry.

Return true if the first geometry is disjoint from the second geometry. The interiors and boundaries of both geometries must not intersect.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = (2, 2)
 GO.disjoint(point, line)
 
 # output
-true

source


# GeometryOps.intersectsFunction.
julia
intersects(geom1, geom2)::Bool

Return true if the interiors or boundaries of the two geometries interact.

intersects returns the exact opposite result of disjoint.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+true

source


# GeometryOps.intersectsFunction.
julia
intersects(geom1, geom2)::Bool

Return true if the interiors or boundaries of the two geometries interact.

intersects returns the exact opposite result of disjoint.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 line1 = GI.Line([(124.584961,-12.768946), (126.738281,-17.224758)])
 line2 = GI.Line([(123.354492,-15.961329), (127.22168,-14.008696)])
 GO.intersects(line1, line2)
 
 # output
-true

source


# GeometryOps.overlapsFunction.
julia
overlaps(geom1, geom2)::Bool

Compare two Geometries of the same dimension and return true if their intersection set results in a geometry different from both but of the same dimension. This means one geometry cannot be within or contain the other and they cannot be equal

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


# GeometryOps.overlapsFunction.
julia
overlaps(geom1, geom2)::Bool

Compare two Geometries of the same dimension and return true if their intersection set results in a geometry different from both but of the same dimension. This means one geometry cannot be within or contain the other and they cannot be equal

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 poly1 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 poly2 = GI.Polygon([[(1,1), (1,6), (6,6), (6,1), (1,1)]])
 
 GO.overlaps(poly1, poly2)
 # output
-true

source

julia
overlaps(::GI.AbstractTrait, geom1, ::GI.AbstractTrait, geom2)::Bool

For any non-specified pair, all have non-matching dimensions, return false.

source

julia
overlaps(
+true

source

julia
overlaps(::GI.AbstractTrait, geom1, ::GI.AbstractTrait, geom2)::Bool

For any non-specified pair, all have non-matching dimensions, return false.

source

julia
overlaps(
     ::GI.MultiPointTrait, points1,
     ::GI.MultiPointTrait, points2,
-)::Bool

If the multipoints overlap, meaning some, but not all, of the points within the multipoints are shared, return true.

source

julia
overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line)::Bool

If the lines overlap, meaning that they are collinear but each have one endpoint outside of the other line, return true. Else false.

source

julia
overlaps(
+)::Bool

If the multipoints overlap, meaning some, but not all, of the points within the multipoints are shared, return true.

source

julia
overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line)::Bool

If the lines overlap, meaning that they are collinear but each have one endpoint outside of the other line, return true. Else false.

source

julia
overlaps(
     ::Union{GI.LineStringTrait, GI.LinearRing}, line1,
     ::Union{GI.LineStringTrait, GI.LinearRing}, line2,
-)::Bool

If the curves overlap, meaning that at least one edge of each curve overlaps, return true. Else false.

source

julia
overlaps(
+)::Bool

If the curves overlap, meaning that at least one edge of each curve overlaps, return true. Else false.

source

julia
overlaps(
     trait_a::GI.PolygonTrait, poly_a,
     trait_b::GI.PolygonTrait, poly_b,
-)::Bool

If the two polygons intersect with one another, but are not equal, return true. Else false.

source

julia
overlaps(
+)::Bool

If the two polygons intersect with one another, but are not equal, return true. Else false.

source

julia
overlaps(
     ::GI.PolygonTrait, poly1,
     ::GI.MultiPolygonTrait, polys2,
-)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

julia
overlaps(
+)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

julia
overlaps(
     ::GI.MultiPolygonTrait, polys1,
     ::GI.PolygonTrait, poly2,
-)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

julia
overlaps(
+)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

julia
overlaps(
     ::GI.MultiPolygonTrait, polys1,
     ::GI.MultiPolygonTrait, polys2,
-)::Bool

Return true if at least one pair of polygons from multipolygons overlap. Else false.

source


# GeometryOps.touchesFunction.
julia
touches(geom1, geom2)::Bool

Return true if the first geometry touches the second geometry. In other words, the two interiors cannot interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+)::Bool

Return true if at least one pair of polygons from multipolygons overlap. Else false.

source


# GeometryOps.touchesFunction.
julia
touches(geom1, geom2)::Bool

Return true if the first geometry touches the second geometry. In other words, the two interiors cannot interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 l1 = GI.Line([(0.0, 0.0), (1.0, 0.0)])
 l2 = GI.Line([(1.0, 1.0), (1.0, -1.0)])
 
 GO.touches(l1, l2)
 # output
-true

source


# GeometryOps.withinFunction.
julia
within(geom1, geom2)::Bool

Return true if the first geometry is completely within the second geometry. The interiors of both geometries must intersect and the interior and boundary of the primary geometry (geom1) must not intersect the exterior of the secondary geometry (geom2).

Furthermore, within returns the exact opposite result of contains.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


# GeometryOps.withinFunction.
julia
within(geom1, geom2)::Bool

Return true if the first geometry is completely within the second geometry. The interiors of both geometries must intersect and the interior and boundary of the primary geometry (geom1) must not intersect the exterior of the secondary geometry (geom2).

Furthermore, within returns the exact opposite result of contains.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = (1, 2)
 GO.within(point, line)
 
 # output
-true

source


Other general methods

# GeometryOps.equalsFunction.
julia
equals(geom1, geom2)::Bool

Compare two Geometries return true if they are the same geometry.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


Other general methods

# GeometryOps.equalsFunction.
julia
equals(geom1, geom2)::Bool

Compare two Geometries return true if they are the same geometry.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 poly1 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 poly2 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 
 GO.equals(poly1, poly2)
 # output
-true

source

julia
equals(::T, geom_a, ::T, geom_b)::Bool

Two geometries of the same type, which don't have a equals function to dispatch off of should throw an error.

source

julia
equals(trait_a, geom_a, trait_b, geom_b)

Two geometries which are not of the same type cannot be equal so they always return false.

source

julia
equals(::GI.PointTrait, p1, ::GI.PointTrait, p2)::Bool

Two points are the same if they have the same x and y (and z if 3D) coordinates.

source

julia
equals(::GI.PointTrait, p1, ::GI.MultiPointTrait, mp2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

julia
equals(::GI.MultiPointTrait, mp1, ::GI.PointTrait, p2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

julia
equals(::GI.MultiPointTrait, mp1, ::GI.MultiPointTrait, mp2)::Bool

Two multipoints are equal if they share the same set of points.

source

julia
equals(
+true

source

julia
equals(::T, geom_a, ::T, geom_b)::Bool

Two geometries of the same type, which don't have a equals function to dispatch off of should throw an error.

source

julia
equals(trait_a, geom_a, trait_b, geom_b)

Two geometries which are not of the same type cannot be equal so they always return false.

source

julia
equals(::GI.PointTrait, p1, ::GI.PointTrait, p2)::Bool

Two points are the same if they have the same x and y (and z if 3D) coordinates.

source

julia
equals(::GI.PointTrait, p1, ::GI.MultiPointTrait, mp2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

julia
equals(::GI.MultiPointTrait, mp1, ::GI.PointTrait, p2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

julia
equals(::GI.MultiPointTrait, mp1, ::GI.MultiPointTrait, mp2)::Bool

Two multipoints are equal if they share the same set of points.

source

julia
equals(
     ::Union{GI.LineTrait, GI.LineStringTrait}, l1,
     ::Union{GI.LineTrait, GI.LineStringTrait}, l2,
-)::Bool

Two lines/linestrings are equal if they share the same set of points going along the curve. Note that lines/linestrings aren't closed by definition.

source

julia
equals(
+)::Bool

Two lines/linestrings are equal if they share the same set of points going along the curve. Note that lines/linestrings aren't closed by definition.

source

julia
equals(
     ::Union{GI.LineTrait, GI.LineStringTrait}, l1,
     ::GI.LinearRingTrait, l2,
-)::Bool

A line/linestring and a linear ring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

julia
equals(
+)::Bool

A line/linestring and a linear ring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

julia
equals(
     ::GI.LinearRingTrait, l1,
     ::Union{GI.LineTrait, GI.LineStringTrait}, l2,
-)::Bool

A linear ring and a line/linestring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

julia
equals(
+)::Bool

A linear ring and a line/linestring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

julia
equals(
     ::GI.LinearRingTrait, l1,
     ::GI.LinearRingTrait, l2,
-)::Bool

Two linear rings are equal if they share the same set of points going along the curve. Note that rings are closed by definition, so they can have, but don't need, a repeated last point to be equal.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two polygons are equal if they share the same exterior edge and holes.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.MultiPolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

julia
equals(::GI.MultiPolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two multipolygons are equal if they share the same set of polygons.

source


# GeometryOps.centroidFunction.
julia
centroid(geom, [T=Float64])::Tuple{T, T}

Returns the centroid of a given line segment, linear ring, polygon, or mutlipolygon.

source


# GeometryOps.distanceFunction.
julia
distance(point, geom, ::Type{T} = Float64)::T

Calculates the ditance from the geometry g1 to the point. The distance will always be positive or zero.

The method will differ based on the type of the geometry provided: - The distance from a point to a point is just the Euclidean distance between the points. - The distance from a point to a line is the minimum distance from the point to the closest point on the given line. - The distance from a point to a linestring is the minimum distance from the point to the closest segment of the linestring. - The distance from a point to a linear ring is the minimum distance from the point to the closest segment of the linear ring. - The distance from a point to a polygon is zero if the point is within the polygon and otherwise is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The distance from a point to a multigeometry or a geometry collection is the minimum distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.signed_distanceFunction.
julia
signed_distance(point, geom, ::Type{T} = Float64)::T

Calculates the signed distance from the geometry geom to the given point. Points within geom have a negative signed distance, and points outside of geom have a positive signed distance. - The signed distance from a point to a point, line, linestring, or linear ring is equal to the distance between the two. - The signed distance from a point to a polygon is negative if the point is within the polygon and is positive otherwise. The value of the distance is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The signed distance from a point to a multigeometry or a geometry collection is the minimum signed distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.areaFunction.
julia
area(geom, [T = Float64])::T

Returns the area of a geometry or collection of geometries. This is computed slightly differently for different geometries:

- The area of a point/multipoint is always zero.
+)::Bool

Two linear rings are equal if they share the same set of points going along the curve. Note that rings are closed by definition, so they can have, but don't need, a repeated last point to be equal.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two polygons are equal if they share the same exterior edge and holes.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.MultiPolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

julia
equals(::GI.MultiPolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two multipolygons are equal if they share the same set of polygons.

source


# GeometryOps.centroidFunction.
julia
centroid(geom, [T=Float64])::Tuple{T, T}

Returns the centroid of a given line segment, linear ring, polygon, or mutlipolygon.

source


# GeometryOps.distanceFunction.
julia
distance(point, geom, ::Type{T} = Float64)::T

Calculates the ditance from the geometry g1 to the point. The distance will always be positive or zero.

The method will differ based on the type of the geometry provided: - The distance from a point to a point is just the Euclidean distance between the points. - The distance from a point to a line is the minimum distance from the point to the closest point on the given line. - The distance from a point to a linestring is the minimum distance from the point to the closest segment of the linestring. - The distance from a point to a linear ring is the minimum distance from the point to the closest segment of the linear ring. - The distance from a point to a polygon is zero if the point is within the polygon and otherwise is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The distance from a point to a multigeometry or a geometry collection is the minimum distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.signed_distanceFunction.
julia
signed_distance(point, geom, ::Type{T} = Float64)::T

Calculates the signed distance from the geometry geom to the given point. Points within geom have a negative signed distance, and points outside of geom have a positive signed distance. - The signed distance from a point to a point, line, linestring, or linear ring is equal to the distance between the two. - The signed distance from a point to a polygon is negative if the point is within the polygon and is positive otherwise. The value of the distance is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The signed distance from a point to a multigeometry or a geometry collection is the minimum signed distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.areaFunction.
julia
area(geom, [T = Float64])::T

Returns the area of a geometry or collection of geometries. This is computed slightly differently for different geometries:

- The area of a point/multipoint is always zero.
 - The area of a curve/multicurve is always zero.
 - The area of a polygon is the absolute value of the signed area.
 - The area multi-polygon is the sum of the areas of all of the sub-polygons.
 - The area of a geometry collection, feature collection of array/iterable 
-    is the sum of the areas of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.signed_areaFunction.
julia
signed_area(geom, [T = Float64])::T

Returns the signed area of a single geometry, based on winding order. This is computed slightly differently for different geometries:

- The signed area of a point is always zero.
+    is the sum of the areas of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.signed_areaFunction.
julia
signed_area(geom, [T = Float64])::T

Returns the signed area of a single geometry, based on winding order. This is computed slightly differently for different geometries:

- The signed area of a point is always zero.
 - The signed area of a curve is always zero.
 - The signed area of a polygon is computed with the shoelace formula and is
 positive if the polygon coordinates wind clockwise and negative if
 counterclockwise.
 - You cannot compute the signed area of a multipolygon as it doesn't have a
-meaning as each sub-polygon could have a different winding order.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.anglesFunction.
julia
angles(geom, ::Type{T} = Float64)

Returns the angles of a geometry or collection of geometries. This is computed differently for different geometries:

- The angles of a point is an empty vector.
+meaning as each sub-polygon could have a different winding order.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.anglesFunction.
julia
angles(geom, ::Type{T} = Float64)

Returns the angles of a geometry or collection of geometries. This is computed differently for different geometries:

- The angles of a point is an empty vector.
 - The angles of a single line segment is an empty vector.
 - The angles of a linestring or linearring is a vector of angles formed by the curve.
 - The angles of a polygon is a vector of vectors of angles formed by each ring.
 - The angles of a multi-geometry collection is a vector of the angles of each of the
-    sub-geometries as defined above.

Result will be a Vector, or nested set of vectors, of type T where an optional argument with a default value of Float64.

source


# GeometryOps.embed_extentFunction.
julia
embed_extent(obj)

Recursively wrap the object with a GeoInterface.jl geometry, calculating and adding an Extents.Extent to all objects.

This can improve performance when extents need to be checked multiple times, such when needing to check if many points are in geometries, and using their extents as a quick filter for obviously exterior points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

source


Barycentric coordinates

# GeometryOps.barycentric_coordinatesFunction.
julia
barycentric_coordinates(method = MeanValue(), polygon, point)

Returns the barycentric coordinates of point in polygon using the barycentric coordinate method method.

source


# GeometryOps.barycentric_coordinates!Function.
julia
barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, polygon, point)

Loads the barycentric coordinates of point in polygon into λs using the barycentric coordinate method method.

λs must be of the length of the polygon plus its holes.

Tip

Use this method to avoid excess allocations when you need to calculate barycentric coordinates for many points.

source


# GeometryOps.barycentric_interpolateFunction.
julia
barycentric_interpolate(method = MeanValue(), polygon, values::AbstractVector{V}, point)

Returns the interpolated value at point within polygon using the barycentric coordinate method method. values are the per-point values for the polygon which are to be interpolated.

Returns an object of type V.

Warning

Barycentric interpolation is currently defined only for 2-dimensional polygons. If you pass a 3-D polygon in, the Z coordinate will be used as per-vertex value to be interpolated (the M coordinate in GIS parlance).

source


Other methods

# GeometryOps.AbstractBarycentricCoordinateMethodType.
julia
abstract type AbstractBarycentricCoordinateMethod

Abstract supertype for barycentric coordinate methods. The subtypes may serve as dispatch types, or may cache some information about the target polygon.

API

The following methods must be implemented for all subtypes:

  • barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, point::Point{2, T2})

  • barycentric_interpolate(method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, values::Vector{V}, point::Point{2, T2})::V

  • barycentric_interpolate(method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, interiors::Vector{<: Vector{<: Point{2, T1}}} values::Vector{V}, point::Point{2, T2})::V

The rest of the methods will be implemented in terms of these, and have efficient dispatches for broadcasting.

source


# GeometryOps.ClosedRingType.
julia
ClosedRing() <: GeometryCorrection

This correction ensures that a polygon's exterior and interior rings are closed.

It can be called on any geometry correction as usual.

See also GeometryCorrection.

source


# GeometryOps.DiffIntersectingPolygonsType.
julia
DiffIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygons included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be made nonintersecting through the difference operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area. See also GeometryCorrection, UnionIntersectingPolygons.

source


# GeometryOps.DouglasPeuckerType.
julia
DouglasPeucker <: SimplifyAlg
+    sub-geometries as defined above.

Result will be a Vector, or nested set of vectors, of type T where an optional argument with a default value of Float64.

source


# GeometryOps.embed_extentFunction.
julia
embed_extent(obj)

Recursively wrap the object with a GeoInterface.jl geometry, calculating and adding an Extents.Extent to all objects.

This can improve performance when extents need to be checked multiple times, such when needing to check if many points are in geometries, and using their extents as a quick filter for obviously exterior points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

source


Barycentric coordinates

# GeometryOps.barycentric_coordinatesFunction.
julia
barycentric_coordinates(method = MeanValue(), polygon, point)

Returns the barycentric coordinates of point in polygon using the barycentric coordinate method method.

source


# GeometryOps.barycentric_coordinates!Function.
julia
barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, polygon, point)

Loads the barycentric coordinates of point in polygon into λs using the barycentric coordinate method method.

λs must be of the length of the polygon plus its holes.

Tip

Use this method to avoid excess allocations when you need to calculate barycentric coordinates for many points.

source


# GeometryOps.barycentric_interpolateFunction.
julia
barycentric_interpolate(method = MeanValue(), polygon, values::AbstractVector{V}, point)

Returns the interpolated value at point within polygon using the barycentric coordinate method method. values are the per-point values for the polygon which are to be interpolated.

Returns an object of type V.

Warning

Barycentric interpolation is currently defined only for 2-dimensional polygons. If you pass a 3-D polygon in, the Z coordinate will be used as per-vertex value to be interpolated (the M coordinate in GIS parlance).

source


Other methods

# GeometryOps.AbstractBarycentricCoordinateMethodType.
julia
abstract type AbstractBarycentricCoordinateMethod

Abstract supertype for barycentric coordinate methods. The subtypes may serve as dispatch types, or may cache some information about the target polygon.

API

The following methods must be implemented for all subtypes:

  • barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, point::Point{2, T2})

  • barycentric_interpolate(method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, values::Vector{V}, point::Point{2, T2})::V

  • barycentric_interpolate(method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, interiors::Vector{<: Vector{<: Point{2, T1}}} values::Vector{V}, point::Point{2, T2})::V

The rest of the methods will be implemented in terms of these, and have efficient dispatches for broadcasting.

source


# GeometryOps.ClosedRingType.
julia
ClosedRing() <: GeometryCorrection

This correction ensures that a polygon's exterior and interior rings are closed.

It can be called on any geometry correction as usual.

See also GeometryCorrection.

source


# GeometryOps.DiffIntersectingPolygonsType.
julia
DiffIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygons included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be made nonintersecting through the difference operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area. See also GeometryCorrection, UnionIntersectingPolygons.

source


# GeometryOps.DouglasPeuckerType.
julia
DouglasPeucker <: SimplifyAlg
 
-DouglasPeucker(; number, ratio, tol)

Simplifies geometries by removing points below tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance a point will be from the line joining its neighboring points.

Note: user input tol is squared to avoid unnecessary computation in algorithm.

source


# GeometryOps.GEOSType.
julia
GEOS(; params...)

A struct which instructs the method it's passed to as an algorithm to use the appropriate GEOS function via LibGEOS.jl for the operation.

Dispatch is generally carried out using the names of the keyword arguments. For example, segmentize will only accept a GEOS struct with only a max_distance keyword, and no other.

It's generally a lot slower than the native Julia implementations, since it must convert to the LibGEOS implementation and back - so be warned!

source


# GeometryOps.GeodesicSegmentsType.
julia
GeodesicSegments(; max_distance::Real, equatorial_radius::Real=6378137, flattening::Real=1/298.257223563)

A method for segmentizing geometries by adding extra vertices to the geometry so that no segment is longer than a given distance. This method calculates the distance between points on the geodesic, and assumes input in lat/long coordinates.

Warning

Any input geometries must be in lon/lat coordinates! If not, the method may fail or error.

Arguments

  • max_distance::Real: The maximum distance, in meters, between vertices in the geometry.

  • equatorial_radius::Real=6378137: The equatorial radius of the Earth, in meters. Passed to Proj.geod_geodesic.

  • flattening::Real=1/298.257223563: The flattening of the Earth, which is the ratio of the difference between the equatorial and polar radii to the equatorial radius. Passed to Proj.geod_geodesic.

One can also omit the equatorial_radius and flattening keyword arguments, and pass a geodesic object directly to the eponymous keyword.

This method uses the Proj/GeographicLib API for geodesic calculations.

source


# GeometryOps.GeometryCorrectionType.
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source


# GeometryOps.LineOrientationType.
julia
Enum LineOrientation

Enum for the orientation of a line with respect to a curve. A line can be line_cross (crossing over the curve), line_hinge (crossing the endpoint of the curve), line_over (collinear with the curve), or line_out (not interacting with the curve).

source


# GeometryOps.LinearSegmentsType.
julia
LinearSegments(; max_distance::Real)

A method for segmentizing geometries by adding extra vertices to the geometry so that no segment is longer than a given distance.

Here, max_distance is a purely nondimensional quantity and will apply in the input space. This is to say, that if the polygon is provided in lat/lon coordinates then the max_distance will be in degrees of arc. If the polygon is provided in meters, then the max_distance will be in meters.

source


# GeometryOps.MeanValueType.
julia
MeanValue() <: AbstractBarycentricCoordinateMethod

This method calculates barycentric coordinates using the mean value method.

References

source


# GeometryOps.MonotoneChainMethodType.
julia
MonotoneChainMethod()

This is an algorithm for the convex_hull function.

Uses DelaunayTriangulation.jl to compute the convex hull. This is a pure Julia algorithm which provides an optimal Delaunay triangulation.

See also convex_hull

source


# GeometryOps.PointOrientationType.
julia
Enum PointOrientation

Enum for the orientation of a point with respect to a curve. A point can be point_in the curve, point_on the curve, or point_out of the curve.

source


# GeometryOps.RadialDistanceType.
julia
RadialDistance <: SimplifyAlg

Simplifies geometries by removing points less than tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance between points.

Note: user input tol is squared to avoid unnecessary computation in algorithm.

source


# GeometryOps.SimplifyAlgType.
julia
abstract type SimplifyAlg

Abstract type for simplification algorithms.

API

For now, the algorithm must hold the number, ratio and tol properties.

Simplification algorithm types can hook into the interface by implementing the _simplify(trait, alg, geom) methods for whichever traits are necessary.

source


# GeometryOps.TraitTargetType.
julia
TraitTarget{T}

This struct holds a trait parameter or a union of trait parameters.

It is primarily used for dispatch into methods which select trait levels, like apply, or as a parameter to target.

Constructors

julia
TraitTarget(GI.PointTrait())
+DouglasPeucker(; number, ratio, tol)

Simplifies geometries by removing points below tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance a point will be from the line joining its neighboring points.

Note: user input tol is squared to avoid unnecessary computation in algorithm.

source


# GeometryOps.GEOSType.
julia
GEOS(; params...)

A struct which instructs the method it's passed to as an algorithm to use the appropriate GEOS function via LibGEOS.jl for the operation.

Dispatch is generally carried out using the names of the keyword arguments. For example, segmentize will only accept a GEOS struct with only a max_distance keyword, and no other.

It's generally a lot slower than the native Julia implementations, since it must convert to the LibGEOS implementation and back - so be warned!

source


# GeometryOps.GeodesicSegmentsType.
julia
GeodesicSegments(; max_distance::Real, equatorial_radius::Real=6378137, flattening::Real=1/298.257223563)

A method for segmentizing geometries by adding extra vertices to the geometry so that no segment is longer than a given distance. This method calculates the distance between points on the geodesic, and assumes input in lat/long coordinates.

Warning

Any input geometries must be in lon/lat coordinates! If not, the method may fail or error.

Arguments

  • max_distance::Real: The maximum distance, in meters, between vertices in the geometry.

  • equatorial_radius::Real=6378137: The equatorial radius of the Earth, in meters. Passed to Proj.geod_geodesic.

  • flattening::Real=1/298.257223563: The flattening of the Earth, which is the ratio of the difference between the equatorial and polar radii to the equatorial radius. Passed to Proj.geod_geodesic.

One can also omit the equatorial_radius and flattening keyword arguments, and pass a geodesic object directly to the eponymous keyword.

This method uses the Proj/GeographicLib API for geodesic calculations.

source


# GeometryOps.GeometryCorrectionType.
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source


# GeometryOps.LineOrientationType.
julia
Enum LineOrientation

Enum for the orientation of a line with respect to a curve. A line can be line_cross (crossing over the curve), line_hinge (crossing the endpoint of the curve), line_over (collinear with the curve), or line_out (not interacting with the curve).

source


# GeometryOps.LinearSegmentsType.
julia
LinearSegments(; max_distance::Real)

A method for segmentizing geometries by adding extra vertices to the geometry so that no segment is longer than a given distance.

Here, max_distance is a purely nondimensional quantity and will apply in the input space. This is to say, that if the polygon is provided in lat/lon coordinates then the max_distance will be in degrees of arc. If the polygon is provided in meters, then the max_distance will be in meters.

source


# GeometryOps.MeanValueType.
julia
MeanValue() <: AbstractBarycentricCoordinateMethod

This method calculates barycentric coordinates using the mean value method.

References

source


# GeometryOps.MonotoneChainMethodType.
julia
MonotoneChainMethod()

This is an algorithm for the convex_hull function.

Uses DelaunayTriangulation.jl to compute the convex hull. This is a pure Julia algorithm which provides an optimal Delaunay triangulation.

See also convex_hull

source


# GeometryOps.PointOrientationType.
julia
Enum PointOrientation

Enum for the orientation of a point with respect to a curve. A point can be point_in the curve, point_on the curve, or point_out of the curve.

source


# GeometryOps.RadialDistanceType.
julia
RadialDistance <: SimplifyAlg

Simplifies geometries by removing points less than tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance between points.

Note: user input tol is squared to avoid unnecessary computation in algorithm.

source


# GeometryOps.SimplifyAlgType.
julia
abstract type SimplifyAlg

Abstract type for simplification algorithms.

API

For now, the algorithm must hold the number, ratio and tol properties.

Simplification algorithm types can hook into the interface by implementing the _simplify(trait, alg, geom) methods for whichever traits are necessary.

source


# GeometryOps.TraitTargetType.
julia
TraitTarget{T}

This struct holds a trait parameter or a union of trait parameters.

It is primarily used for dispatch into methods which select trait levels, like apply, or as a parameter to target.

Constructors

julia
TraitTarget(GI.PointTrait())
 TraitTarget(GI.LineStringTrait(), GI.LinearRingTrait()) # and other traits as you may like
 TraitTarget(TraitTarget(...))
 # There are also type based constructors available, but that's not advised.
 TraitTarget(GI.PointTrait)
 TraitTarget(Union{GI.LineStringTrait, GI.LinearRingTrait})
-# etc.

source


# GeometryOps.UnionIntersectingPolygonsType.
julia
UnionIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygon's included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be combined through the union operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area.

See also GeometryCorrection.

source


# GeometryOps.VisvalingamWhyattType.
julia
VisvalingamWhyatt <: SimplifyAlg
+# etc.

source


# GeometryOps.UnionIntersectingPolygonsType.
julia
UnionIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygon's included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be combined through the union operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area.

See also GeometryCorrection.

source


# GeometryOps.VisvalingamWhyattType.
julia
VisvalingamWhyatt <: SimplifyAlg
 
-VisvalingamWhyatt(; kw...)

Simplifies geometries by removing points below tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum area of a triangle made with a point and its neighboring points.

Note: user input tol is doubled to avoid unnecessary computation in algorithm.

source


# GeometryOps._detMethod.
julia
_det(s1::Point2{T1}, s2::Point2{T2}) where {T1 <: Real, T2 <: Real}

Returns the determinant of the matrix formed by hcat'ing two points s1 and s2.

Specifically, this is:

julia
s1[1] * s2[2] - s1[2] * s2[1]

source


# GeometryOps._equals_curvesMethod.
julia
_equals_curves(c1, c2, closed_type1, closed_type2)::Bool

Two curves are equal if they share the same set of point, representing the same geometry. Both curves must must be composed of the same set of points, however, they do not have to wind in the same direction, or start on the same point to be equivalent. Inputs: c1 first geometry c2 second geometry closed_type1::Bool true if c1 is closed by definition (polygon, linear ring) closed_type2::Bool true if c2 is closed by definition (polygon, linear ring)

source


# GeometryOps.anglesMethod.
julia
angles(geom, ::Type{T} = Float64)

Returns the angles of a geometry or collection of geometries. This is computed differently for different geometries:

- The angles of a point is an empty vector.
+VisvalingamWhyatt(; kw...)

Simplifies geometries by removing points below tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum area of a triangle made with a point and its neighboring points.

Note: user input tol is doubled to avoid unnecessary computation in algorithm.

source


# GeometryOps._detMethod.
julia
_det(s1::Point2{T1}, s2::Point2{T2}) where {T1 <: Real, T2 <: Real}

Returns the determinant of the matrix formed by hcat'ing two points s1 and s2.

Specifically, this is:

julia
s1[1] * s2[2] - s1[2] * s2[1]

source


# GeometryOps._equals_curvesMethod.
julia
_equals_curves(c1, c2, closed_type1, closed_type2)::Bool

Two curves are equal if they share the same set of point, representing the same geometry. Both curves must must be composed of the same set of points, however, they do not have to wind in the same direction, or start on the same point to be equivalent. Inputs: c1 first geometry c2 second geometry closed_type1::Bool true if c1 is closed by definition (polygon, linear ring) closed_type2::Bool true if c2 is closed by definition (polygon, linear ring)

source


# GeometryOps.anglesMethod.
julia
angles(geom, ::Type{T} = Float64)

Returns the angles of a geometry or collection of geometries. This is computed differently for different geometries:

- The angles of a point is an empty vector.
 - The angles of a single line segment is an empty vector.
 - The angles of a linestring or linearring is a vector of angles formed by the curve.
 - The angles of a polygon is a vector of vectors of angles formed by each ring.
 - The angles of a multi-geometry collection is a vector of the angles of each of the
-    sub-geometries as defined above.

Result will be a Vector, or nested set of vectors, of type T where an optional argument with a default value of Float64.

source


# GeometryOps.applyMethod.
julia
apply(f, target::Union{TraitTarget, GI.AbstractTrait}, obj; kw...)

Reconstruct a geometry, feature, feature collection, or nested vectors of either using the function f on the target trait.

f(target_geom) => x where x also has the target trait, or a trait that can be substituted. For example, swapping PolgonTrait to MultiPointTrait will fail if the outer object has MultiPolygonTrait, but should work if it has FeatureTrait.

Objects "shallower" than the target trait are always completely rebuilt, like a Vector of FeatureCollectionTrait of FeatureTrait when the target has PolygonTrait and is held in the features. These will always be GeoInterface geometries/feature/feature collections. But "deeper" objects may remain unchanged or be whatever GeoInterface compatible objects f returns.

The result is a functionally similar geometry with values depending on f.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

Example

Flipped point the order in any feature or geometry, or iterables of either:

julia
import GeoInterface as GI
+    sub-geometries as defined above.

Result will be a Vector, or nested set of vectors, of type T where an optional argument with a default value of Float64.

source


# GeometryOps.applyMethod.
julia
apply(f, target::Union{TraitTarget, GI.AbstractTrait}, obj; kw...)

Reconstruct a geometry, feature, feature collection, or nested vectors of either using the function f on the target trait.

f(target_geom) => x where x also has the target trait, or a trait that can be substituted. For example, swapping PolgonTrait to MultiPointTrait will fail if the outer object has MultiPolygonTrait, but should work if it has FeatureTrait.

Objects "shallower" than the target trait are always completely rebuilt, like a Vector of FeatureCollectionTrait of FeatureTrait when the target has PolygonTrait and is held in the features. These will always be GeoInterface geometries/feature/feature collections. But "deeper" objects may remain unchanged or be whatever GeoInterface compatible objects f returns.

The result is a functionally similar geometry with values depending on f.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

Example

Flipped point the order in any feature or geometry, or iterables of either:

julia
import GeoInterface as GI
 import GeometryOps as GO
 geom = GI.Polygon([GI.LinearRing([(1, 2), (3, 4), (5, 6), (1, 2)]),
                    GI.LinearRing([(3, 4), (5, 6), (6, 7), (3, 4)])])
 
 flipped_geom = GO.apply(GI.PointTrait, geom) do p
     (GI.y(p), GI.x(p))
-end

source


# GeometryOps.applyreduceMethod.
julia
applyreduce(f, op, target::Union{TraitTarget, GI.AbstractTrait}, obj; threaded)

Apply function f to all objects with the target trait, and reduce the result with an op like +.

The order and grouping of application of op is not guaranteed.

If threaded==true threads will be used over arrays and iterables, feature collections and nested geometries.

source


# GeometryOps.areaMethod.
julia
area(geom, [T = Float64])::T

Returns the area of a geometry or collection of geometries. This is computed slightly differently for different geometries:

- The area of a point/multipoint is always zero.
+end

source


# GeometryOps.applyreduceMethod.
julia
applyreduce(f, op, target::Union{TraitTarget, GI.AbstractTrait}, obj; threaded)

Apply function f to all objects with the target trait, and reduce the result with an op like +.

The order and grouping of application of op is not guaranteed.

If threaded==true threads will be used over arrays and iterables, feature collections and nested geometries.

source


# GeometryOps.areaMethod.
julia
area(geom, [T = Float64])::T

Returns the area of a geometry or collection of geometries. This is computed slightly differently for different geometries:

- The area of a point/multipoint is always zero.
 - The area of a curve/multicurve is always zero.
 - The area of a polygon is the absolute value of the signed area.
 - The area multi-polygon is the sum of the areas of all of the sub-polygons.
 - The area of a geometry collection, feature collection of array/iterable 
-    is the sum of the areas of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.barycentric_coordinates!Method.
julia
barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, polygon, point)

Loads the barycentric coordinates of point in polygon into λs using the barycentric coordinate method method.

λs must be of the length of the polygon plus its holes.

Tip

Use this method to avoid excess allocations when you need to calculate barycentric coordinates for many points.

source


# GeometryOps.barycentric_coordinatesMethod.
julia
barycentric_coordinates(method = MeanValue(), polygon, point)

Returns the barycentric coordinates of point in polygon using the barycentric coordinate method method.

source


# GeometryOps.barycentric_interpolateMethod.
julia
barycentric_interpolate(method = MeanValue(), polygon, values::AbstractVector{V}, point)

Returns the interpolated value at point within polygon using the barycentric coordinate method method. values are the per-point values for the polygon which are to be interpolated.

Returns an object of type V.

Warning

Barycentric interpolation is currently defined only for 2-dimensional polygons. If you pass a 3-D polygon in, the Z coordinate will be used as per-vertex value to be interpolated (the M coordinate in GIS parlance).

source


# GeometryOps.centroidMethod.
julia
centroid(geom, [T=Float64])::Tuple{T, T}

Returns the centroid of a given line segment, linear ring, polygon, or mutlipolygon.

source


# GeometryOps.centroid_and_areaMethod.
julia
centroid_and_area(geom, [T=Float64])::(::Tuple{T, T}, ::Real)

Returns the centroid and area of a given geometry.

source


# GeometryOps.centroid_and_lengthMethod.
julia
centroid_and_length(geom, [T=Float64])::(::Tuple{T, T}, ::Real)

Returns the centroid and length of a given line/ring. Note this is only valid for line strings and linear rings.

source


# GeometryOps.containsMethod.
julia
contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the second geometry is completely contained by the first geometry. The interiors of both geometries must intersect and the interior and boundary of the secondary (g2) must not intersect the exterior of the first (g1).

contains returns the exact opposite result of within.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+    is the sum of the areas of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.barycentric_coordinates!Method.
julia
barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, polygon, point)

Loads the barycentric coordinates of point in polygon into λs using the barycentric coordinate method method.

λs must be of the length of the polygon plus its holes.

Tip

Use this method to avoid excess allocations when you need to calculate barycentric coordinates for many points.

source


# GeometryOps.barycentric_coordinatesMethod.
julia
barycentric_coordinates(method = MeanValue(), polygon, point)

Returns the barycentric coordinates of point in polygon using the barycentric coordinate method method.

source


# GeometryOps.barycentric_interpolateMethod.
julia
barycentric_interpolate(method = MeanValue(), polygon, values::AbstractVector{V}, point)

Returns the interpolated value at point within polygon using the barycentric coordinate method method. values are the per-point values for the polygon which are to be interpolated.

Returns an object of type V.

Warning

Barycentric interpolation is currently defined only for 2-dimensional polygons. If you pass a 3-D polygon in, the Z coordinate will be used as per-vertex value to be interpolated (the M coordinate in GIS parlance).

source


# GeometryOps.centroidMethod.
julia
centroid(geom, [T=Float64])::Tuple{T, T}

Returns the centroid of a given line segment, linear ring, polygon, or mutlipolygon.

source


# GeometryOps.centroid_and_areaMethod.
julia
centroid_and_area(geom, [T=Float64])::(::Tuple{T, T}, ::Real)

Returns the centroid and area of a given geometry.

source


# GeometryOps.centroid_and_lengthMethod.
julia
centroid_and_length(geom, [T=Float64])::(::Tuple{T, T}, ::Real)

Returns the centroid and length of a given line/ring. Note this is only valid for line strings and linear rings.

source


# GeometryOps.containsMethod.
julia
contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the second geometry is completely contained by the first geometry. The interiors of both geometries must intersect and the interior and boundary of the secondary (g2) must not intersect the exterior of the first (g1).

contains returns the exact opposite result of within.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = GI.Point((1, 2))
 
 GO.contains(line, point)
 # output
-true

source


# GeometryOps.convex_hullFunction.
julia
convex_hull([method], geometries)

Compute the convex hull of the points in geometries. Returns a GI.Polygon representing the convex hull.

Note that the polygon returned is wound counterclockwise as in the Simple Features standard by default. If you choose GEOS, the winding order will be inverted.

Warning

This interface only computes the 2-dimensional convex hull!

For higher dimensional hulls, use the relevant package (Qhull.jl, Quickhull.jl, or similar).

source


# GeometryOps.coverageMethod.
julia
coverage(geom, xmin, xmax, ymin, ymax, [T = Float64])::T

Returns the area of intersection between given geometry and grid cell defined by its minimum and maximum x and y-values. This is computed differently for different geometries:

  • The signed area of a point is always zero.

  • The signed area of a curve is always zero.

  • The signed area of a polygon is calculated by tracing along its edges and switching to the cell edges if needed.

  • The coverage of a geometry collection, multi-geometry, feature collection of array/iterable is the sum of the coverages of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.coveredbyMethod.
julia
coveredby(g1, g2)::Bool

Return true if the first geometry is completely covered by the second geometry. The interior and boundary of the primary geometry (g1) must not intersect the exterior of the secondary geometry (g2).

Furthermore, coveredby returns the exact opposite result of covers. They are equivalent with the order of the arguments swapped.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


# GeometryOps.convex_hullFunction.
julia
convex_hull([method], geometries)

Compute the convex hull of the points in geometries. Returns a GI.Polygon representing the convex hull.

Note that the polygon returned is wound counterclockwise as in the Simple Features standard by default. If you choose GEOS, the winding order will be inverted.

Warning

This interface only computes the 2-dimensional convex hull!

For higher dimensional hulls, use the relevant package (Qhull.jl, Quickhull.jl, or similar).

source


# GeometryOps.coverageMethod.
julia
coverage(geom, xmin, xmax, ymin, ymax, [T = Float64])::T

Returns the area of intersection between given geometry and grid cell defined by its minimum and maximum x and y-values. This is computed differently for different geometries:

  • The signed area of a point is always zero.

  • The signed area of a curve is always zero.

  • The signed area of a polygon is calculated by tracing along its edges and switching to the cell edges if needed.

  • The coverage of a geometry collection, multi-geometry, feature collection of array/iterable is the sum of the coverages of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.coveredbyMethod.
julia
coveredby(g1, g2)::Bool

Return true if the first geometry is completely covered by the second geometry. The interior and boundary of the primary geometry (g1) must not intersect the exterior of the secondary geometry (g2).

Furthermore, coveredby returns the exact opposite result of covers. They are equivalent with the order of the arguments swapped.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 p1 = GI.Point(0.0, 0.0)
 p2 = GI.Point(1.0, 1.0)
 l1 = GI.Line([p1, p2])
 
 GO.coveredby(p1, l1)
 # output
-true

source


# GeometryOps.coversMethod.
julia
covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the first geometry is completely covers the second geometry, The exterior and boundary of the second geometry must not be outside of the interior and boundary of the first geometry. However, the interiors need not intersect.

covers returns the exact opposite result of coveredby.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


# GeometryOps.coversMethod.
julia
covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the first geometry is completely covers the second geometry, The exterior and boundary of the second geometry must not be outside of the interior and boundary of the first geometry. However, the interiors need not intersect.

covers returns the exact opposite result of coveredby.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 l1 = GI.LineString([(1.0, 1.0), (1.0, 2.0), (1.0, 3.0), (1.0, 4.0)])
 l2 = GI.LineString([(1.0, 1.0), (1.0, 2.0)])
 
 GO.covers(l1, l2)
 # output
-true

source


# GeometryOps.crossesMethod.
julia
 crosses(geom1, geom2)::Bool

Return true if the intersection results in a geometry whose dimension is one less than the maximum dimension of the two source geometries and the intersection set is interior to both source geometries.

TODO: broken

Examples

julia
import GeoInterface as GI, GeometryOps as GO
-# TODO: Add working example

source


# GeometryOps.cutMethod.
julia
cut(geom, line, [T::Type])

Return given geom cut by given line as a list of geometries of the same type as the input geom. Return the original geometry as only list element if none are found. Line must cut fully through given geometry or the original geometry will be returned.

Note: This currently doesn't work for degenerate cases there line crosses through vertices.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+true

source


# GeometryOps.crossesMethod.
julia
 crosses(geom1, geom2)::Bool

Return true if the intersection results in a geometry whose dimension is one less than the maximum dimension of the two source geometries and the intersection set is interior to both source geometries.

TODO: broken

Examples

julia
import GeoInterface as GI, GeometryOps as GO
+# TODO: Add working example

source


# GeometryOps.cutMethod.
julia
cut(geom, line, [T::Type])

Return given geom cut by given line as a list of geometries of the same type as the input geom. Return the original geometry as only list element if none are found. Line must cut fully through given geometry or the original geometry will be returned.

Note: This currently doesn't work for degenerate cases there line crosses through vertices.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 poly = GI.Polygon([[(0.0, 0.0), (10.0, 0.0), (10.0, 10.0), (0.0, 10.0), (0.0, 0.0)]])
 line = GI.Line([(5.0, -5.0), (5.0, 15.0)])
@@ -189,7 +189,7 @@ import{_ as n,c as e,a5 as a,j as s,o as t}from"./chunks/framework.B9oBnxE7.js";
 # output
 2-element Vector{Vector{Vector{Vector{Float64}}}}:
  [[[0.0, 0.0], [5.0, 0.0], [5.0, 10.0], [0.0, 10.0], [0.0, 0.0]]]
- [[[5.0, 0.0], [10.0, 0.0], [10.0, 10.0], [5.0, 10.0], [5.0, 0.0]]]

source


# GeometryOps.differenceMethod.
julia
difference(geom_a, geom_b, [T::Type]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the difference between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a taget type as a keyword argument and a list of target geometries found in the difference will be returned. The user can also provide a float type that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to false if you know that the multipolygons are valid, as it will avoid unneeded computation.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+ [[[5.0, 0.0], [10.0, 0.0], [10.0, 10.0], [5.0, 10.0], [5.0, 0.0]]]

source


# GeometryOps.differenceMethod.
julia
difference(geom_a, geom_b, [T::Type]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the difference between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a taget type as a keyword argument and a list of target geometries found in the difference will be returned. The user can also provide a float type that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to false if you know that the multipolygons are valid, as it will avoid unneeded computation.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 poly1 = GI.Polygon([[[0.0, 0.0], [5.0, 5.0], [10.0, 0.0], [5.0, -5.0], [0.0, 0.0]]])
 poly2 = GI.Polygon([[[3.0, 0.0], [8.0, 5.0], [13.0, 0.0], [8.0, -5.0], [3.0, 0.0]]])
@@ -198,33 +198,33 @@ import{_ as n,c as e,a5 as a,j as s,o as t}from"./chunks/framework.B9oBnxE7.js";
 
 # output
 1-element Vector{Vector{Vector{Vector{Float64}}}}:
- [[[6.5, 3.5], [5.0, 5.0], [0.0, 0.0], [5.0, -5.0], [6.5, -3.5], [3.0, 0.0], [6.5, 3.5]]]

source


# GeometryOps.disjointMethod.
julia
disjoint(geom1, geom2)::Bool

Return true if the first geometry is disjoint from the second geometry.

Return true if the first geometry is disjoint from the second geometry. The interiors and boundaries of both geometries must not intersect.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+ [[[6.5, 3.5], [5.0, 5.0], [0.0, 0.0], [5.0, -5.0], [6.5, -3.5], [3.0, 0.0], [6.5, 3.5]]]

source


# GeometryOps.disjointMethod.
julia
disjoint(geom1, geom2)::Bool

Return true if the first geometry is disjoint from the second geometry.

Return true if the first geometry is disjoint from the second geometry. The interiors and boundaries of both geometries must not intersect.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = (2, 2)
 GO.disjoint(point, line)
 
 # output
-true

source


# GeometryOps.distanceMethod.
julia
distance(point, geom, ::Type{T} = Float64)::T

Calculates the ditance from the geometry g1 to the point. The distance will always be positive or zero.

The method will differ based on the type of the geometry provided: - The distance from a point to a point is just the Euclidean distance between the points. - The distance from a point to a line is the minimum distance from the point to the closest point on the given line. - The distance from a point to a linestring is the minimum distance from the point to the closest segment of the linestring. - The distance from a point to a linear ring is the minimum distance from the point to the closest segment of the linear ring. - The distance from a point to a polygon is zero if the point is within the polygon and otherwise is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The distance from a point to a multigeometry or a geometry collection is the minimum distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.embed_extentMethod.
julia
embed_extent(obj)

Recursively wrap the object with a GeoInterface.jl geometry, calculating and adding an Extents.Extent to all objects.

This can improve performance when extents need to be checked multiple times, such when needing to check if many points are in geometries, and using their extents as a quick filter for obviously exterior points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

source


# GeometryOps.enforceMethod.
julia
enforce(alg::GO.GEOS, kw::Symbol, f)

Enforce the presence of a keyword argument in a GEOS algorithm, and return alg.params[kw].

Throws an error if the key is not present, and mentions f in the error message (since there isn't a good way to get the name of the function that called this method).

source


# GeometryOps.equalsMethod.
julia
equals(trait_a, geom_a, trait_b, geom_b)

Two geometries which are not of the same type cannot be equal so they always return false.

source


# GeometryOps.equalsMethod.
julia
equals(geom1, geom2)::Bool

Compare two Geometries return true if they are the same geometry.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source


# GeometryOps.distanceMethod.
julia
distance(point, geom, ::Type{T} = Float64)::T

Calculates the ditance from the geometry g1 to the point. The distance will always be positive or zero.

The method will differ based on the type of the geometry provided: - The distance from a point to a point is just the Euclidean distance between the points. - The distance from a point to a line is the minimum distance from the point to the closest point on the given line. - The distance from a point to a linestring is the minimum distance from the point to the closest segment of the linestring. - The distance from a point to a linear ring is the minimum distance from the point to the closest segment of the linear ring. - The distance from a point to a polygon is zero if the point is within the polygon and otherwise is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The distance from a point to a multigeometry or a geometry collection is the minimum distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.embed_extentMethod.
julia
embed_extent(obj)

Recursively wrap the object with a GeoInterface.jl geometry, calculating and adding an Extents.Extent to all objects.

This can improve performance when extents need to be checked multiple times, such when needing to check if many points are in geometries, and using their extents as a quick filter for obviously exterior points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

source


# GeometryOps.enforceMethod.
julia
enforce(alg::GO.GEOS, kw::Symbol, f)

Enforce the presence of a keyword argument in a GEOS algorithm, and return alg.params[kw].

Throws an error if the key is not present, and mentions f in the error message (since there isn't a good way to get the name of the function that called this method).

source


# GeometryOps.equalsMethod.
julia
equals(trait_a, geom_a, trait_b, geom_b)

Two geometries which are not of the same type cannot be equal so they always return false.

source


# GeometryOps.equalsMethod.
julia
equals(geom1, geom2)::Bool

Compare two Geometries return true if they are the same geometry.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 poly1 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 poly2 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 
 GO.equals(poly1, poly2)
 # output
-true

source


# GeometryOps.equalsMethod.
julia
equals(
+true

source


# GeometryOps.equalsMethod.
julia
equals(
     ::GI.LinearRingTrait, l1,
     ::GI.LinearRingTrait, l2,
-)::Bool

Two linear rings are equal if they share the same set of points going along the curve. Note that rings are closed by definition, so they can have, but don't need, a repeated last point to be equal.

source


# GeometryOps.equalsMethod.
julia
equals(
+)::Bool

Two linear rings are equal if they share the same set of points going along the curve. Note that rings are closed by definition, so they can have, but don't need, a repeated last point to be equal.

source


# GeometryOps.equalsMethod.
julia
equals(
     ::GI.LinearRingTrait, l1,
     ::Union{GI.LineTrait, GI.LineStringTrait}, l2,
-)::Bool

A linear ring and a line/linestring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source


# GeometryOps.equalsMethod.
julia
equals(::GI.MultiPointTrait, mp1, ::GI.MultiPointTrait, mp2)::Bool

Two multipoints are equal if they share the same set of points.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.MultiPointTrait, mp1, ::GI.PointTrait, p2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two multipolygons are equal if they share the same set of polygons.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.MultiPolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PointTrait, p1, ::GI.MultiPointTrait, mp2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PointTrait, p1, ::GI.PointTrait, p2)::Bool

Two points are the same if they have the same x and y (and z if 3D) coordinates.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PolygonTrait, geom_a, ::GI.MultiPolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two polygons are equal if they share the same exterior edge and holes.

source


# GeometryOps.equalsMethod.
julia
equals(
+)::Bool

A linear ring and a line/linestring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source


# GeometryOps.equalsMethod.
julia
equals(::GI.MultiPointTrait, mp1, ::GI.MultiPointTrait, mp2)::Bool

Two multipoints are equal if they share the same set of points.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.MultiPointTrait, mp1, ::GI.PointTrait, p2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two multipolygons are equal if they share the same set of polygons.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.MultiPolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PointTrait, p1, ::GI.MultiPointTrait, mp2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PointTrait, p1, ::GI.PointTrait, p2)::Bool

Two points are the same if they have the same x and y (and z if 3D) coordinates.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PolygonTrait, geom_a, ::GI.MultiPolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source


# GeometryOps.equalsMethod.
julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two polygons are equal if they share the same exterior edge and holes.

source


# GeometryOps.equalsMethod.
julia
equals(
     ::Union{GI.LineTrait, GI.LineStringTrait}, l1,
     ::GI.LinearRingTrait, l2,
-)::Bool

A line/linestring and a linear ring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source


# GeometryOps.equalsMethod.
julia
equals(
+)::Bool

A line/linestring and a linear ring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source


# GeometryOps.equalsMethod.
julia
equals(
     ::Union{GI.LineTrait, GI.LineStringTrait}, l1,
     ::Union{GI.LineTrait, GI.LineStringTrait}, l2,
-)::Bool

Two lines/linestrings are equal if they share the same set of points going along the curve. Note that lines/linestrings aren't closed by definition.

source


# GeometryOps.equalsMethod.
julia
equals(::T, geom_a, ::T, geom_b)::Bool

Two geometries of the same type, which don't have a equals function to dispatch off of should throw an error.

source


# GeometryOps.flattenMethod.
julia
flatten(target::Type{<:GI.AbstractTrait}, obj)
-flatten(f, target::Type{<:GI.AbstractTrait}, obj)

Lazily flatten any AbstractArray, iterator, FeatureCollectionTrait, FeatureTrait or AbstractGeometryTrait object obj, so that objects with the target trait are returned by the iterator.

If f is passed in it will be applied to the target geometries.

source


# GeometryOps.flipMethod.
julia
flip(obj)

Swap all of the x and y coordinates in obj, otherwise keeping the original structure (but not necessarily the original type).

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source


# GeometryOps.intersectionMethod.
julia
intersection(geom_a, geom_b, [T::Type]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the intersection between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a target type as a keyword argument and a list of target geometries found in the intersection will be returned. The user can also provide a float type that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to nothing if you know that the multipolygons are valid, as it will avoid unneeded computation.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+)::Bool

Two lines/linestrings are equal if they share the same set of points going along the curve. Note that lines/linestrings aren't closed by definition.

source


# GeometryOps.equalsMethod.
julia
equals(::T, geom_a, ::T, geom_b)::Bool

Two geometries of the same type, which don't have a equals function to dispatch off of should throw an error.

source


# GeometryOps.flattenMethod.
julia
flatten(target::Type{<:GI.AbstractTrait}, obj)
+flatten(f, target::Type{<:GI.AbstractTrait}, obj)

Lazily flatten any AbstractArray, iterator, FeatureCollectionTrait, FeatureTrait or AbstractGeometryTrait object obj, so that objects with the target trait are returned by the iterator.

If f is passed in it will be applied to the target geometries.

source


# GeometryOps.flipMethod.
julia
flip(obj)

Swap all of the x and y coordinates in obj, otherwise keeping the original structure (but not necessarily the original type).

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source


# GeometryOps.intersectionMethod.
julia
intersection(geom_a, geom_b, [T::Type]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the intersection between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a target type as a keyword argument and a list of target geometries found in the intersection will be returned. The user can also provide a float type that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to nothing if you know that the multipolygons are valid, as it will avoid unneeded computation.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 line1 = GI.Line([(124.584961,-12.768946), (126.738281,-17.224758)])
 line2 = GI.Line([(123.354492,-15.961329), (127.22168,-14.008696)])
@@ -233,7 +233,7 @@ import{_ as n,c as e,a5 as a,j as s,o as t}from"./chunks/framework.B9oBnxE7.js";
 
 # output
 1-element Vector{Vector{Float64}}:
- [125.58375366067548, -14.83572303404496]

source


# GeometryOps.intersection_pointsMethod.
julia
intersection_points(geom_a, geom_b, [T::Type])

Return a list of intersection tuple points between two geometries. If no intersection points exist, returns an empty list.

Example

jldoctest

+ [125.58375366067548, -14.83572303404496]

source


# GeometryOps.intersection_pointsMethod.
julia
intersection_points(geom_a, geom_b, [T::Type])

Return a list of intersection tuple points between two geometries. If no intersection points exist, returns an empty list.

Example

jldoctest

 line1 = GI.Line([(124.584961,-12.768946), (126.738281,-17.224758)]) line2 = GI.Line([(123.354492,-15.961329), (127.22168,-14.008696)]) inter_points = GO.intersection_points(line1, line2)
 
 **output**
@@ -241,7 +241,7 @@ import{_ as n,c as e,a5 as a,j as s,o as t}from"./chunks/framework.B9oBnxE7.js";
 1-element Vector{Tuple{Float64, Float64}}:  (125.58375366067548, -14.83572303404496)
 
 
-[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/v0.1.10/src/methods/clipping/intersection.jl#L177-L195)
+[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/v0.1.11/src/methods/clipping/intersection.jl#L177-L195)
 
 </div>
 <br>
@@ -259,57 +259,57 @@ import{_ as n,c as e,a5 as a,j as s,o as t}from"./chunks/framework.B9oBnxE7.js";
 GO.intersects(line1, line2)
 
 # output
-true

source


`,178)),s("div",h,[i[2]||(i[2]=a('# GeometryOps.isclockwiseMethod.
julia
isclockwise(line::Union{LineString, Vector{Position}})::Bool

Take a ring and return true if the line goes clockwise, or false if the line goes counter-clockwise. "Going clockwise" means, mathematically,

',8)),s("mjx-container",p,[(t(),e("svg",r,i[0]||(i[0]=[a('',1)]))),i[1]||(i[1]=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("munderover",null,[s("mo",{"data-mjx-texclass":"OP"},"∑"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mo",null,"="),s("mn",null,"2")]),s("mi",null,"n")]),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mi",null,"i")]),s("mo",null,"−"),s("msub",null,[s("mi",null,"x"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mo",null,"−"),s("mn",null,"1")])]),s("mo",{stretchy:"false"},")"),s("mo",null,"⋅"),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"y"),s("mi",null,"i")]),s("mo",null,"+"),s("msub",null,[s("mi",null,"y"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mo",null,"−"),s("mn",null,"1")])]),s("mo",{stretchy:"false"},")"),s("mo",{"data-mjx-texclass":"CLOSE"},")")]),s("mo",null,">"),s("mn",null,"0")])],-1))]),i[3]||(i[3]=a(`

Example

julia
julia> import GeoInterface as GI, GeometryOps as GO
+true

source


`,178)),s("div",h,[i[2]||(i[2]=a('# GeometryOps.isclockwiseMethod.
julia
isclockwise(line::Union{LineString, Vector{Position}})::Bool

Take a ring and return true if the line goes clockwise, or false if the line goes counter-clockwise. "Going clockwise" means, mathematically,

',8)),s("mjx-container",p,[(t(),e("svg",r,i[0]||(i[0]=[a('',1)]))),i[1]||(i[1]=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("munderover",null,[s("mo",{"data-mjx-texclass":"OP"},"∑"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mo",null,"="),s("mn",null,"2")]),s("mi",null,"n")]),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mi",null,"i")]),s("mo",null,"−"),s("msub",null,[s("mi",null,"x"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mo",null,"−"),s("mn",null,"1")])]),s("mo",{stretchy:"false"},")"),s("mo",null,"⋅"),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"y"),s("mi",null,"i")]),s("mo",null,"+"),s("msub",null,[s("mi",null,"y"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mo",null,"−"),s("mn",null,"1")])]),s("mo",{stretchy:"false"},")"),s("mo",{"data-mjx-texclass":"CLOSE"},")")]),s("mo",null,">"),s("mn",null,"0")])],-1))]),i[3]||(i[3]=a(`

Example

julia
julia> import GeoInterface as GI, GeometryOps as GO
 julia> ring = GI.LinearRing([(0, 0), (1, 1), (1, 0), (0, 0)]);
 julia> GO.isclockwise(ring)
 # output
-true

source

`,3))]),i[9]||(i[9]=a(`
# GeometryOps.isconcaveMethod.
julia
isconcave(poly::Polygon)::Bool

Take a polygon and return true or false as to whether it is concave or not.

Examples

julia
import GeoInterface as GI, GeometryOps as GO
+true

source

`,3))]),i[9]||(i[9]=a(`
# GeometryOps.isconcaveMethod.
julia
isconcave(poly::Polygon)::Bool

Take a polygon and return true or false as to whether it is concave or not.

Examples

julia
import GeoInterface as GI, GeometryOps as GO
 
 poly = GI.Polygon([[(0, 0), (0, 1), (1, 1), (1, 0), (0, 0)]])
 GO.isconcave(poly)
 
 # output
-false

source


# GeometryOps.overlapsMethod.
julia
overlaps(geom1, geom2)::Bool

Compare two Geometries of the same dimension and return true if their intersection set results in a geometry different from both but of the same dimension. This means one geometry cannot be within or contain the other and they cannot be equal

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+false

source


# GeometryOps.overlapsMethod.
julia
overlaps(geom1, geom2)::Bool

Compare two Geometries of the same dimension and return true if their intersection set results in a geometry different from both but of the same dimension. This means one geometry cannot be within or contain the other and they cannot be equal

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 poly1 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 poly2 = GI.Polygon([[(1,1), (1,6), (6,6), (6,1), (1,1)]])
 
 GO.overlaps(poly1, poly2)
 # output
-true

source


# GeometryOps.overlapsMethod.
julia
overlaps(::GI.AbstractTrait, geom1, ::GI.AbstractTrait, geom2)::Bool

For any non-specified pair, all have non-matching dimensions, return false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line)::Bool

If the lines overlap, meaning that they are collinear but each have one endpoint outside of the other line, return true. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
+true

source


# GeometryOps.overlapsMethod.
julia
overlaps(::GI.AbstractTrait, geom1, ::GI.AbstractTrait, geom2)::Bool

For any non-specified pair, all have non-matching dimensions, return false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line)::Bool

If the lines overlap, meaning that they are collinear but each have one endpoint outside of the other line, return true. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
     ::GI.MultiPointTrait, points1,
     ::GI.MultiPointTrait, points2,
-)::Bool

If the multipoints overlap, meaning some, but not all, of the points within the multipoints are shared, return true.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
+)::Bool

If the multipoints overlap, meaning some, but not all, of the points within the multipoints are shared, return true.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
     ::GI.MultiPolygonTrait, polys1,
     ::GI.MultiPolygonTrait, polys2,
-)::Bool

Return true if at least one pair of polygons from multipolygons overlap. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
+)::Bool

Return true if at least one pair of polygons from multipolygons overlap. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
     ::GI.MultiPolygonTrait, polys1,
     ::GI.PolygonTrait, poly2,
-)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
+)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
     ::GI.PolygonTrait, poly1,
     ::GI.MultiPolygonTrait, polys2,
-)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
+)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
     trait_a::GI.PolygonTrait, poly_a,
     trait_b::GI.PolygonTrait, poly_b,
-)::Bool

If the two polygons intersect with one another, but are not equal, return true. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
+)::Bool

If the two polygons intersect with one another, but are not equal, return true. Else false.

source


# GeometryOps.overlapsMethod.
julia
overlaps(
     ::Union{GI.LineStringTrait, GI.LinearRing}, line1,
     ::Union{GI.LineStringTrait, GI.LinearRing}, line2,
-)::Bool

If the curves overlap, meaning that at least one edge of each curve overlaps, return true. Else false.

source


# GeometryOps.polygon_to_lineMethod.
julia
polygon_to_line(poly::Polygon)

Converts a Polygon to LineString or MultiLineString

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+)::Bool

If the curves overlap, meaning that at least one edge of each curve overlaps, return true. Else false.

source


# GeometryOps.polygon_to_lineMethod.
julia
polygon_to_line(poly::Polygon)

Converts a Polygon to LineString or MultiLineString

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 poly = GI.Polygon([[(-2.275543, 53.464547), (-2.275543, 53.489271), (-2.215118, 53.489271), (-2.215118, 53.464547), (-2.275543, 53.464547)]])
 GO.polygon_to_line(poly)
 # output
-GeoInterface.Wrappers.LineString{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(-2.275543, 53.464547), (-2.275543, 53.489271), (-2.215118, 53.489271), (-2.215118, 53.464547), (-2.275543, 53.464547)], nothing, nothing)

source


# GeometryOps.polygonizeMethod.
julia
polygonize(A::AbstractMatrix{Bool}; kw...)
+GeoInterface.Wrappers.LineString{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(-2.275543, 53.464547), (-2.275543, 53.489271), (-2.215118, 53.489271), (-2.215118, 53.464547), (-2.275543, 53.464547)], nothing, nothing)

source


# GeometryOps.polygonizeMethod.
julia
polygonize(A::AbstractMatrix{Bool}; kw...)
 polygonize(f, A::AbstractMatrix; kw...)
 polygonize(xs, ys, A::AbstractMatrix{Bool}; kw...)
 polygonize(f, xs, ys, A::AbstractMatrix; kw...)

Polygonize an AbstractMatrix of values, currently to a single class of polygons.

Returns a MultiPolygon for Bool values and f return values, and a FeatureCollection of Features holding MultiPolygon for all other values.

Function f should return either true or false or a transformation of values into simpler groups, especially useful for floating point arrays.

If xs and ys are ranges, they are used as the pixel/cell center points. If they are Vector of Tuple they are used as the lower and upper bounds of each pixel/cell.

Keywords

  • minpoints: ignore polygons with less than minpoints points.

  • values: the values to turn into polygons. By default these are union(A), If function f is passed these refer to the return values of f, by default union(map(f, A). If values Bool, false is ignored and a single MultiPolygon is returned rather than a FeatureCollection.

Example

julia
using GeometryOps
 A = rand(100, 100)
-multipolygon = polygonize(>(0.5), A);

source


# GeometryOps.rebuildMethod.
julia
rebuild(geom, child_geoms)

Rebuild a geometry from child geometries.

By default geometries will be rebuilt as a GeoInterface.Wrappers geometry, but rebuild can have methods added to it to dispatch on geometries from other packages and specify how to rebuild them.

(Maybe it should go into GeoInterface.jl)

source


# GeometryOps.reconstructMethod.
julia
reconstruct(geom, components)

Reconstruct geom from an iterable of component objects that match its structure.

All objects in components must have the same GeoInterface.trait.

Usually used in combination with flatten.

source


# GeometryOps.segmentizeMethod.
julia
segmentize([method = LinearSegments()], geom; max_distance::Real, threaded)

Segmentize a geometry by adding extra vertices to the geometry so that no segment is longer than a given distance. This is useful for plotting geometries with a limited number of vertices, or for ensuring that a geometry is not too "coarse" for a given application.

Arguments

  • method::SegmentizeMethod = LinearSegments(): The method to use for segmentizing the geometry. At the moment, only LinearSegments and GeodesicSegments are available.

  • geom: The geometry to segmentize. Must be a LineString, LinearRing, or greater in complexity.

  • max_distance::Real: The maximum distance, in the input space, between vertices in the geometry. Only used if you don't explicitly pass a method.

Returns a geometry of similar type to the input geometry, but resampled.

source


# GeometryOps.signed_areaMethod.
julia
signed_area(geom, [T = Float64])::T

Returns the signed area of a single geometry, based on winding order. This is computed slightly differently for different geometries:

- The signed area of a point is always zero.
+multipolygon = polygonize(>(0.5), A);

source


# GeometryOps.rebuildMethod.
julia
rebuild(geom, child_geoms)

Rebuild a geometry from child geometries.

By default geometries will be rebuilt as a GeoInterface.Wrappers geometry, but rebuild can have methods added to it to dispatch on geometries from other packages and specify how to rebuild them.

(Maybe it should go into GeoInterface.jl)

source


# GeometryOps.reconstructMethod.
julia
reconstruct(geom, components)

Reconstruct geom from an iterable of component objects that match its structure.

All objects in components must have the same GeoInterface.trait.

Usually used in combination with flatten.

source


# GeometryOps.segmentizeMethod.
julia
segmentize([method = LinearSegments()], geom; max_distance::Real, threaded)

Segmentize a geometry by adding extra vertices to the geometry so that no segment is longer than a given distance. This is useful for plotting geometries with a limited number of vertices, or for ensuring that a geometry is not too "coarse" for a given application.

Arguments

  • method::SegmentizeMethod = LinearSegments(): The method to use for segmentizing the geometry. At the moment, only LinearSegments and GeodesicSegments are available.

  • geom: The geometry to segmentize. Must be a LineString, LinearRing, or greater in complexity.

  • max_distance::Real: The maximum distance, in the input space, between vertices in the geometry. Only used if you don't explicitly pass a method.

Returns a geometry of similar type to the input geometry, but resampled.

source


# GeometryOps.signed_areaMethod.
julia
signed_area(geom, [T = Float64])::T

Returns the signed area of a single geometry, based on winding order. This is computed slightly differently for different geometries:

- The signed area of a point is always zero.
 - The signed area of a curve is always zero.
 - The signed area of a polygon is computed with the shoelace formula and is
 positive if the polygon coordinates wind clockwise and negative if
 counterclockwise.
 - You cannot compute the signed area of a multipolygon as it doesn't have a
-meaning as each sub-polygon could have a different winding order.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.signed_distanceMethod.
julia
signed_distance(point, geom, ::Type{T} = Float64)::T

Calculates the signed distance from the geometry geom to the given point. Points within geom have a negative signed distance, and points outside of geom have a positive signed distance. - The signed distance from a point to a point, line, linestring, or linear ring is equal to the distance between the two. - The signed distance from a point to a polygon is negative if the point is within the polygon and is positive otherwise. The value of the distance is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The signed distance from a point to a multigeometry or a geometry collection is the minimum signed distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.simplifyMethod.
julia
simplify(obj; kw...)
+meaning as each sub-polygon could have a different winding order.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.signed_distanceMethod.
julia
signed_distance(point, geom, ::Type{T} = Float64)::T

Calculates the signed distance from the geometry geom to the given point. Points within geom have a negative signed distance, and points outside of geom have a positive signed distance. - The signed distance from a point to a point, line, linestring, or linear ring is equal to the distance between the two. - The signed distance from a point to a polygon is negative if the point is within the polygon and is positive otherwise. The value of the distance is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The signed distance from a point to a multigeometry or a geometry collection is the minimum signed distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source


# GeometryOps.simplifyMethod.
julia
simplify(obj; kw...)
 simplify(::SimplifyAlg, obj; kw...)

Simplify a geometry, feature, feature collection, or nested vectors or a table of these.

RadialDistance, DouglasPeucker, or VisvalingamWhyatt algorithms are available, listed in order of increasing quality but decreasing performance.

PoinTrait and MultiPointTrait are returned unchanged.

The default behaviour is simplify(DouglasPeucker(; kw...), obj). Pass in other SimplifyAlg to use other algorithms.

Keywords

  • prefilter_alg: SimplifyAlg algorithm used to pre-filter object before using primary filtering algorithm.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

Keywords for DouglasPeucker are allowed when no algorithm is specified:

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance a point will be from the line joining its neighboring points.

Example

Simplify a polygon to have six points:

julia
import GeoInterface as GI
 import GeometryOps as GO
 
@@ -339,9 +339,9 @@ import{_ as n,c as e,a5 as a,j as s,o as t}from"./chunks/framework.B9oBnxE7.js";
 GI.npoint(simple)
 
 # output
-6

source


`,37)),s("div",k,[i[6]||(i[6]=a('# GeometryOps.t_valueMethod.
julia
t_value(sᵢ, sᵢ₊₁, rᵢ, rᵢ₊₁)

Returns the "T-value" as described in Hormann's presentation [1] on how to calculate the mean-value coordinate.

Here, sᵢ is the vector from vertex vᵢ to the point, and rᵢ is the norm (length) of sᵢ. s must be Point and r must be real numbers.

',9)),s("mjx-container",o,[(t(),e("svg",d,i[4]||(i[4]=[a('',1)]))),i[5]||(i[5]=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"t"),s("mi",null,"ᵢ"),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",{"data-mjx-auto-op":"false"},"det")]),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mo",null,","),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₊")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₁")]),s("mo",{"data-mjx-texclass":"CLOSE"},")")])]),s("mrow",null,[s("mi",null,"r"),s("mi",null,"ᵢ"),s("mo",null,"∗"),s("mi",null,"r"),s("mi",null,"ᵢ"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₊")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₁")]),s("mo",null,"+"),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mo",null,"⋅"),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₊")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₁")])])])])],-1))]),i[7]||(i[7]=a(`

+6

source


`,37)),s("div",k,[i[6]||(i[6]=a('# GeometryOps.t_valueMethod.
julia
t_value(sᵢ, sᵢ₊₁, rᵢ, rᵢ₊₁)

Returns the "T-value" as described in Hormann's presentation [1] on how to calculate the mean-value coordinate.

Here, sᵢ is the vector from vertex vᵢ to the point, and rᵢ is the norm (length) of sᵢ. s must be Point and r must be real numbers.

',9)),s("mjx-container",o,[(t(),e("svg",d,i[4]||(i[4]=[a('',1)]))),i[5]||(i[5]=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"t"),s("mi",null,"ᵢ"),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",{"data-mjx-auto-op":"false"},"det")]),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mo",null,","),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₊")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₁")]),s("mo",{"data-mjx-texclass":"CLOSE"},")")])]),s("mrow",null,[s("mi",null,"r"),s("mi",null,"ᵢ"),s("mo",null,"∗"),s("mi",null,"r"),s("mi",null,"ᵢ"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₊")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₁")]),s("mo",null,"+"),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mo",null,"⋅"),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₊")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₁")])])])])],-1))]),i[7]||(i[7]=a(`

 
-[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/v0.1.10/src/methods/barycentric.jl#L289-L305)
+[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/v0.1.11/src/methods/barycentric.jl#L289-L305)
 
 </div>
 <br>
@@ -352,14 +352,14 @@ import{_ as n,c as e,a5 as a,j as s,o as t}from"./chunks/framework.B9oBnxE7.js";
 
 
 \`\`\`julia
-to_edges()

Convert any geometry or collection of geometries into a flat vector of Tuple{Tuple{Float64,Float64},Tuple{Float64,Float64}} edges.

source

`,3))]),i[10]||(i[10]=a(`
# GeometryOps.touchesMethod.
julia
touches(geom1, geom2)::Bool

Return true if the first geometry touches the second geometry. In other words, the two interiors cannot interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+to_edges()

Convert any geometry or collection of geometries into a flat vector of Tuple{Tuple{Float64,Float64},Tuple{Float64,Float64}} edges.

source

`,3))]),i[10]||(i[10]=a(`
# GeometryOps.touchesMethod.
julia
touches(geom1, geom2)::Bool

Return true if the first geometry touches the second geometry. In other words, the two interiors cannot interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 l1 = GI.Line([(0.0, 0.0), (1.0, 0.0)])
 l2 = GI.Line([(1.0, 1.0), (1.0, -1.0)])
 
 GO.touches(l1, l2)
 # output
-true

source


# GeometryOps.transformMethod.
julia
transform(f, obj)

Apply a function f to all the points in obj.

Points will be passed to f as an SVector to allow using CoordinateTransformations.jl and Rotations.jl without hassle.

SVector is also a valid GeoInterface.jl point, so will work in all GeoInterface.jl methods.

Example

julia
julia> import GeoInterface as GI
+true

source


# GeometryOps.transformMethod.
julia
transform(f, obj)

Apply a function f to all the points in obj.

Points will be passed to f as an SVector to allow using CoordinateTransformations.jl and Rotations.jl without hassle.

SVector is also a valid GeoInterface.jl point, so will work in all GeoInterface.jl methods.

Example

julia
julia> import GeoInterface as GI
 
 julia> import GeometryOps as GO
 
@@ -378,7 +378,7 @@ import{_ as n,c as e,a5 as a,j as s,o as t}from"./chunks/framework.B9oBnxE7.js";
 GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearR
 ing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}(StaticArraysCore.SVe
 ctor{2, Int64}[[2, 1], [4, 3], [6, 5], [2, 1]], nothing, nothing), GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}(StaticArraysCore.SVector{2, Int64
-}[[4, 3], [6, 5], [7, 6], [4, 3]], nothing, nothing)], nothing, nothing)

source


# GeometryOps.tuplesMethod.
julia
tuples(obj)

Convert all points in obj to Tuples, wherever the are nested.

Returns a similar object or collection of objects using GeoInterface.jl geometries wrapping Tuple points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source


# GeometryOps.unionMethod.
julia
union(geom_a, geom_b, [::Type{T}]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the union between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a taget type as a keyword argument and a list of target geometries found in the difference will be returned. The user can also provide a float type 'T' that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to false if you know that the multipolygons are valid, as it will avoid unneeded computation.

Calculates the union between two polygons.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+}[[4, 3], [6, 5], [7, 6], [4, 3]], nothing, nothing)], nothing, nothing)

source


# GeometryOps.tuplesMethod.
julia
tuples(obj)

Convert all points in obj to Tuples, wherever the are nested.

Returns a similar object or collection of objects using GeoInterface.jl geometries wrapping Tuple points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source


# GeometryOps.unionMethod.
julia
union(geom_a, geom_b, [::Type{T}]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the union between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a taget type as a keyword argument and a list of target geometries found in the difference will be returned. The user can also provide a float type 'T' that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to false if you know that the multipolygons are valid, as it will avoid unneeded computation.

Calculates the union between two polygons.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 p1 = GI.Polygon([[(0.0, 0.0), (5.0, 5.0), (10.0, 0.0), (5.0, -5.0), (0.0, 0.0)]])
 p2 = GI.Polygon([[(3.0, 0.0), (8.0, 5.0), (13.0, 0.0), (8.0, -5.0), (3.0, 0.0)]])
@@ -387,12 +387,12 @@ import{_ as n,c as e,a5 as a,j as s,o as t}from"./chunks/framework.B9oBnxE7.js";
 
 # output
 1-element Vector{Vector{Vector{Vector{Float64}}}}:
- [[[6.5, 3.5], [5.0, 5.0], [0.0, 0.0], [5.0, -5.0], [6.5, -3.5], [8.0, -5.0], [13.0, 0.0], [8.0, 5.0], [6.5, 3.5]]]

source


# GeometryOps.unwrapFunction.
julia
unwrap(target::Type{<:AbstractTrait}, obj)
-unwrap(f, target::Type{<:AbstractTrait}, obj)

Unwrap the object to vectors, down to the target trait.

If f is passed in it will be applied to the target geometries as they are found.

source


# GeometryOps.weighted_meanMethod.
julia
weighted_mean(weight::Real, x1, x2)

Returns the weighted mean of x1 and x2, where weight is the weight of x1.

Specifically, calculates x1 * weight + x2 * (1 - weight).

Note

The idea for this method is that you can override this for custom types, like Color types, in extension modules.

source


# GeometryOps.withinMethod.
julia
within(geom1, geom2)::Bool

Return true if the first geometry is completely within the second geometry. The interiors of both geometries must intersect and the interior and boundary of the primary geometry (geom1) must not intersect the exterior of the secondary geometry (geom2).

Furthermore, within returns the exact opposite result of contains.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+ [[[6.5, 3.5], [5.0, 5.0], [0.0, 0.0], [5.0, -5.0], [6.5, -3.5], [8.0, -5.0], [13.0, 0.0], [8.0, 5.0], [6.5, 3.5]]]

source


# GeometryOps.unwrapFunction.
julia
unwrap(target::Type{<:AbstractTrait}, obj)
+unwrap(f, target::Type{<:AbstractTrait}, obj)

Unwrap the object to vectors, down to the target trait.

If f is passed in it will be applied to the target geometries as they are found.

source


# GeometryOps.weighted_meanMethod.
julia
weighted_mean(weight::Real, x1, x2)

Returns the weighted mean of x1 and x2, where weight is the weight of x1.

Specifically, calculates x1 * weight + x2 * (1 - weight).

Note

The idea for this method is that you can override this for custom types, like Color types, in extension modules.

source


# GeometryOps.withinMethod.
julia
within(geom1, geom2)::Bool

Return true if the first geometry is completely within the second geometry. The interiors of both geometries must intersect and the interior and boundary of the primary geometry (geom1) must not intersect the exterior of the secondary geometry (geom2).

Furthermore, within returns the exact opposite result of contains.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = (1, 2)
 GO.within(point, line)
 
 # output
-true

source



  1. K. Hormann and N. Sukumar. Generalized Barycentric Coordinates in Computer Graphics and Computational Mechanics. Taylor & Fancis, CRC Press, 2017. ↩︎

`,17))])}const C=n(l,[["render",g]]);export{b as __pageData,C as default}; +true

source



  1. K. Hormann and N. Sukumar. Generalized Barycentric Coordinates in Computer Graphics and Computational Mechanics. Taylor & Fancis, CRC Press, 2017. ↩︎

`,17))])}const C=n(l,[["render",g]]);export{b as __pageData,C as default}; diff --git a/dev/assets/app.CO0RGWk8.js b/dev/assets/app.Cs1GFKXm.js similarity index 90% rename from dev/assets/app.CO0RGWk8.js rename to dev/assets/app.Cs1GFKXm.js index 2f41230ee..3d3c9bdd4 100644 --- a/dev/assets/app.CO0RGWk8.js +++ b/dev/assets/app.Cs1GFKXm.js @@ -1 +1 @@ -import{R as p}from"./chunks/theme.C-Lfz_wz.js";import{R as o,a6 as u,a7 as c,a8 as l,a9 as f,aa as d,ab as m,ac as h,ad as g,ae as A,af as v,d as P,u as R,v as w,s as y,ag as C,ah as b,ai as E,a4 as S}from"./chunks/framework.B9oBnxE7.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(p),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=R();return w(()=>{y(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&C(),b(),E(),s.setup&&s.setup(),()=>S(s.Layout)}});async function D(){globalThis.__VITEPRESS__=!0;const e=j(),a=_();a.provide(c,e);const t=l(e.route);return a.provide(f,t),a.component("Content",d),a.component("ClientOnly",m),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:h}),{app:a,router:e,data:t}}function _(){return g(T)}function j(){let e=o,a;return A(t=>{let n=v(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&D().then(({app:e,router:a,data:t})=>{a.go().then(()=>{u(a.route,t.site),e.mount("#app")})});export{D as createApp}; +import{R as p}from"./chunks/theme.DZANPkyA.js";import{R as o,a6 as u,a7 as c,a8 as l,a9 as f,aa as d,ab as m,ac as h,ad as g,ae as A,af as v,d as P,u as R,v as w,s as y,ag as C,ah as b,ai as E,a4 as S}from"./chunks/framework.B0Ss3dHN.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(p),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=R();return w(()=>{y(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&C(),b(),E(),s.setup&&s.setup(),()=>S(s.Layout)}});async function D(){globalThis.__VITEPRESS__=!0;const e=j(),a=_();a.provide(c,e);const t=l(e.route);return a.provide(f,t),a.component("Content",d),a.component("ClientOnly",m),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:h}),{app:a,router:e,data:t}}function _(){return g(T)}function j(){let e=o,a;return A(t=>{let n=v(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&D().then(({app:e,router:a,data:t})=>{a.go().then(()=>{u(a.route,t.site),e.mount("#app")})});export{D as createApp}; diff --git a/dev/assets/psyuqzd.CULn5saZ.png b/dev/assets/bavdnxo.CULn5saZ.png similarity index 100% rename from dev/assets/psyuqzd.CULn5saZ.png rename to dev/assets/bavdnxo.CULn5saZ.png diff --git a/dev/assets/call_notes.md.CwmDWxxT.lean.js b/dev/assets/call_notes.md.bQDaS4ka.js similarity index 98% rename from dev/assets/call_notes.md.CwmDWxxT.lean.js rename to dev/assets/call_notes.md.bQDaS4ka.js index d9e1d2945..5261c9648 100644 --- a/dev/assets/call_notes.md.CwmDWxxT.lean.js +++ b/dev/assets/call_notes.md.bQDaS4ka.js @@ -1 +1 @@ -import{_ as i,c as l,a5 as t,o}from"./chunks/framework.B9oBnxE7.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"call_notes.md","filePath":"call_notes.md","lastUpdated":null}'),a={name:"call_notes.md"};function r(n,e,s,p,c,d){return o(),l("div",null,e[0]||(e[0]=[t('

20th April, 2024

See GeometryOps#114.

29th Feb, 2024

To do

Done

',8)]))}const f=i(a,[["render",r]]);export{u as __pageData,f as default}; +import{_ as i,c as l,a5 as t,o}from"./chunks/framework.B0Ss3dHN.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"call_notes.md","filePath":"call_notes.md","lastUpdated":null}'),a={name:"call_notes.md"};function r(n,e,s,p,c,d){return o(),l("div",null,e[0]||(e[0]=[t('

20th April, 2024

See GeometryOps#114.

29th Feb, 2024

To do

Done

',8)]))}const f=i(a,[["render",r]]);export{u as __pageData,f as default}; diff --git a/dev/assets/call_notes.md.CwmDWxxT.js b/dev/assets/call_notes.md.bQDaS4ka.lean.js similarity index 98% rename from dev/assets/call_notes.md.CwmDWxxT.js rename to dev/assets/call_notes.md.bQDaS4ka.lean.js index d9e1d2945..5261c9648 100644 --- a/dev/assets/call_notes.md.CwmDWxxT.js +++ b/dev/assets/call_notes.md.bQDaS4ka.lean.js @@ -1 +1 @@ -import{_ as i,c as l,a5 as t,o}from"./chunks/framework.B9oBnxE7.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"call_notes.md","filePath":"call_notes.md","lastUpdated":null}'),a={name:"call_notes.md"};function r(n,e,s,p,c,d){return o(),l("div",null,e[0]||(e[0]=[t('

20th April, 2024

See GeometryOps#114.

29th Feb, 2024

To do

Done

',8)]))}const f=i(a,[["render",r]]);export{u as __pageData,f as default}; +import{_ as i,c as l,a5 as t,o}from"./chunks/framework.B0Ss3dHN.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"call_notes.md","filePath":"call_notes.md","lastUpdated":null}'),a={name:"call_notes.md"};function r(n,e,s,p,c,d){return o(),l("div",null,e[0]||(e[0]=[t('

20th April, 2024

See GeometryOps#114.

29th Feb, 2024

To do

Done

',8)]))}const f=i(a,[["render",r]]);export{u as __pageData,f as default}; diff --git a/dev/assets/tluyrwo.-VpeHhXX.png b/dev/assets/cavlctn.-VpeHhXX.png similarity index 100% rename from dev/assets/tluyrwo.-VpeHhXX.png rename to dev/assets/cavlctn.-VpeHhXX.png diff --git a/dev/assets/nhikwcj.Dab1-ETk.png b/dev/assets/ccrysmn.Dab1-ETk.png similarity index 100% rename from dev/assets/nhikwcj.Dab1-ETk.png rename to dev/assets/ccrysmn.Dab1-ETk.png diff --git a/dev/assets/chunks/@localSearchIndexroot.CeRkZQsH.js b/dev/assets/chunks/@localSearchIndexroot.CeRkZQsH.js deleted file mode 100644 index 8828e9fe8..000000000 --- a/dev/assets/chunks/@localSearchIndexroot.CeRkZQsH.js +++ /dev/null @@ -1 +0,0 @@ -const e='{"documentCount":179,"nextId":179,"documentIds":{"0":"/GeometryOps.jl/dev/api#Full-GeometryOps-API-documentation","1":"/GeometryOps.jl/dev/api#apply-and-associated-functions","2":"/GeometryOps.jl/dev/api#General-geometry-methods","3":"/GeometryOps.jl/dev/api#OGC-methods","4":"/GeometryOps.jl/dev/api#Other-general-methods","5":"/GeometryOps.jl/dev/api#Barycentric-coordinates","6":"/GeometryOps.jl/dev/api#Other-methods","7":"/GeometryOps.jl/dev/call_notes#20th-April,-2024","8":"/GeometryOps.jl/dev/call_notes#29th-Feb,-2024","9":"/GeometryOps.jl/dev/call_notes#To-do","10":"/GeometryOps.jl/dev/call_notes#done","11":"/GeometryOps.jl/dev/experiments/accurate_accumulators#Accurate-accumulation","12":"/GeometryOps.jl/dev/experiments/predicates#predicates","13":"/GeometryOps.jl/dev/experiments/predicates#orient","14":"/GeometryOps.jl/dev/experiments/predicates#dashboard","15":"/GeometryOps.jl/dev/experiments/predicates#Testing-robust-vs-regular-predicates","16":"/GeometryOps.jl/dev/experiments/predicates#incircle","17":"/GeometryOps.jl/dev/explanations/paradigms#paradigms","18":"/GeometryOps.jl/dev/explanations/paradigms#apply","19":"/GeometryOps.jl/dev/explanations/paradigms#applyreduce","20":"/GeometryOps.jl/dev/explanations/paradigms#fix-and-prepare","21":"/GeometryOps.jl/dev/explanations/peculiarities#peculiarities","22":"/GeometryOps.jl/dev/explanations/peculiarities#What-does-apply-return-and-why?","23":"/GeometryOps.jl/dev/explanations/peculiarities#Why-do-you-want-me-to-provide-a-target-in-set-operations?","24":"/GeometryOps.jl/dev/explanations/peculiarities#_True-and-_False-(or-BoolsAsTypes)","25":"/GeometryOps.jl/dev/#what-is-geometryops-jl","26":"/GeometryOps.jl/dev/#how-to-navigate-the-docs","27":"/GeometryOps.jl/dev/introduction#introduction","28":"/GeometryOps.jl/dev/introduction#Main-concepts","29":"/GeometryOps.jl/dev/introduction#The-apply-paradigm","30":"/GeometryOps.jl/dev/introduction#What\'s-this-GeoInterface.Wrapper-thing?","31":"/GeometryOps.jl/dev/source/GeometryOps#geometryops-jl","32":"/GeometryOps.jl/dev/source/methods/angles#angles","33":"/GeometryOps.jl/dev/source/methods/angles#What-is-angles?","34":"/GeometryOps.jl/dev/source/methods/angles#implementation","35":"/GeometryOps.jl/dev/source/methods/area#Area-and-signed-area","36":"/GeometryOps.jl/dev/source/methods/area#What-is-area?-What-is-signed-area?","37":"/GeometryOps.jl/dev/source/methods/area#implementation","38":"/GeometryOps.jl/dev/source/methods/barycentric#Barycentric-coordinates","39":"/GeometryOps.jl/dev/source/methods/barycentric#example","40":"/GeometryOps.jl/dev/source/methods/barycentric#Barycentric-coordinate-API","41":"/GeometryOps.jl/dev/source/methods/buffer#buffer","42":"/GeometryOps.jl/dev/source/methods/centroid#centroid","43":"/GeometryOps.jl/dev/source/methods/centroid#What-is-the-centroid?","44":"/GeometryOps.jl/dev/source/methods/centroid#implementation","45":"/GeometryOps.jl/dev/source/methods/clipping/clipping_processor#Polygon-clipping-helpers","46":"/GeometryOps.jl/dev/source/methods/clipping/coverage#What-is-coverage?","47":"/GeometryOps.jl/dev/source/methods/clipping/coverage#implementation","48":"/GeometryOps.jl/dev/source/methods/clipping/cut#Polygon-cutting","49":"/GeometryOps.jl/dev/source/methods/clipping/cut#What-is-cut?","50":"/GeometryOps.jl/dev/source/methods/clipping/cut#implementation","51":"/GeometryOps.jl/dev/source/methods/clipping/difference#Difference-Polygon-Clipping","52":"/GeometryOps.jl/dev/source/methods/clipping/difference#Helper-functions-for-Differences-with-Greiner-and-Hormann-Polygon-Clipping","53":"/GeometryOps.jl/dev/source/methods/clipping/intersection#Geometry-Intersection","54":"/GeometryOps.jl/dev/source/methods/clipping/intersection#Helper-functions-for-Intersections-with-Greiner-and-Hormann-Polygon-Clipping","55":"/GeometryOps.jl/dev/source/methods/clipping/predicates#If-we-want-to-inject-adaptivity,-we-would-do-something-like:","56":"/GeometryOps.jl/dev/source/methods/clipping/union#Union-Polygon-Clipping","57":"/GeometryOps.jl/dev/source/methods/clipping/union#Helper-functions-for-Unions-with-Greiner-and-Hormann-Polygon-Clipping","58":"/GeometryOps.jl/dev/source/methods/convex_hull#Convex-hull","59":"/GeometryOps.jl/dev/source/methods/convex_hull#example","60":"/GeometryOps.jl/dev/source/methods/convex_hull#Simple-hull","61":"/GeometryOps.jl/dev/source/methods/convex_hull#Convex-hull-of-the-USA","62":"/GeometryOps.jl/dev/source/methods/convex_hull#Investigating-the-winding-order","63":"/GeometryOps.jl/dev/source/methods/convex_hull#implementation","64":"/GeometryOps.jl/dev/source/methods/distance#Distance-and-signed-distance","65":"/GeometryOps.jl/dev/source/methods/distance#What-is-distance?-What-is-signed-distance?","66":"/GeometryOps.jl/dev/source/methods/distance#implementation","67":"/GeometryOps.jl/dev/source/methods/equals#equals","68":"/GeometryOps.jl/dev/source/methods/equals#What-is-equals?","69":"/GeometryOps.jl/dev/source/methods/equals#implementation","70":"/GeometryOps.jl/dev/source/methods/geom_relations/contains#contains","71":"/GeometryOps.jl/dev/source/methods/geom_relations/contains#What-is-contains?","72":"/GeometryOps.jl/dev/source/methods/geom_relations/contains#implementation","73":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#coveredby","74":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#What-is-coveredby?","75":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#implementation","76":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Convert-features-to-geometries","77":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Points-coveredby-geometries","78":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Lines-coveredby-geometries","79":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Rings-covered-by-geometries","80":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Polygons-covered-by-geometries","81":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Geometries-coveredby-multi-geometry/geometry-collections","82":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Multi-geometry/geometry-collections-coveredby-geometries","83":"/GeometryOps.jl/dev/source/methods/geom_relations/crosses#Crossing-checks","84":"/GeometryOps.jl/dev/source/methods/geom_relations/covers#covers","85":"/GeometryOps.jl/dev/source/methods/geom_relations/covers#What-is-covers?","86":"/GeometryOps.jl/dev/source/methods/geom_relations/covers#implementation","87":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#disjoint","88":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#What-is-disjoint?","89":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#implementation","90":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Convert-features-to-geometries","91":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Point-disjoint-geometries","92":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Lines-disjoint-geometries","93":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Rings-disjoint-geometries","94":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Polygon-disjoint-geometries","95":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Geometries-disjoint-multi-geometry/geometry-collections","96":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Multi-geometry/geometry-collections-coveredby-geometries","97":"/GeometryOps.jl/dev/source/methods/geom_relations/geom_geom_processors#Line-curve-interaction","98":"/GeometryOps.jl/dev/source/methods/geom_relations/intersects#Intersection-checks","99":"/GeometryOps.jl/dev/source/methods/geom_relations/intersects#What-is-intersects?","100":"/GeometryOps.jl/dev/source/methods/geom_relations/intersects#implementation","101":"/GeometryOps.jl/dev/source/methods/geom_relations/overlaps#overlaps","102":"/GeometryOps.jl/dev/source/methods/geom_relations/overlaps#What-is-overlaps?","103":"/GeometryOps.jl/dev/source/methods/geom_relations/overlaps#implementation","104":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#touches","105":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#What-is-touches?","106":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#implementation","107":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Convert-features-to-geometries","108":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Point-touches-geometries","109":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Lines-touching-geometries","110":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Rings-touch-geometries","111":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Polygons-touch-geometries","112":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Geometries-touch-multi-geometry/geometry-collections","113":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Multi-geometry/geometry-collections-cross-geometries","114":"/GeometryOps.jl/dev/source/methods/geom_relations/within#within","115":"/GeometryOps.jl/dev/source/methods/geom_relations/within#What-is-within?","116":"/GeometryOps.jl/dev/source/methods/geom_relations/within#implementation","117":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Convert-features-to-geometries","118":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Points-within-geometries","119":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Lines-within-geometries","120":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Rings-covered-by-geometries","121":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Polygons-within-geometries","122":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Geometries-within-multi-geometry/geometry-collections","123":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Multi-geometry/geometry-collections-within-geometries","124":"/GeometryOps.jl/dev/source/methods/orientation#orientation","125":"/GeometryOps.jl/dev/source/methods/orientation#isclockwise","126":"/GeometryOps.jl/dev/source/methods/orientation#isconcave","127":"/GeometryOps.jl/dev/source/not_implemented_yet#Not-implemented-yet","128":"/GeometryOps.jl/dev/source/methods/polygonize#Polygonizing-raster-data","129":"/GeometryOps.jl/dev/source/primitives#Primitive-functions","130":"/GeometryOps.jl/dev/source/primitives#docstrings","131":"/GeometryOps.jl/dev/source/primitives#functions","132":"/GeometryOps.jl/dev/source/primitives#types","133":"/GeometryOps.jl/dev/source/primitives#implementation","134":"/GeometryOps.jl/dev/source/primitives#What-is-apply?","135":"/GeometryOps.jl/dev/source/primitives#embedding","136":"/GeometryOps.jl/dev/source/primitives#threading","137":"/GeometryOps.jl/dev/source/transformations/correction/closed_ring#Closed-Rings","138":"/GeometryOps.jl/dev/source/transformations/correction/closed_ring#example","139":"/GeometryOps.jl/dev/source/transformations/correction/closed_ring#implementation","140":"/GeometryOps.jl/dev/source/transformations/correction/geometry_correction#Geometry-Corrections","141":"/GeometryOps.jl/dev/source/transformations/correction/geometry_correction#interface","142":"/GeometryOps.jl/dev/source/transformations/correction/geometry_correction#Available-corrections","143":"/GeometryOps.jl/dev/source/transformations/correction/intersecting_polygons#Intersecting-Polygons","144":"/GeometryOps.jl/dev/source/transformations/correction/intersecting_polygons#example","145":"/GeometryOps.jl/dev/source/transformations/correction/intersecting_polygons#implementation","146":"/GeometryOps.jl/dev/source/transformations/flip#Coordinate-flipping","147":"/GeometryOps.jl/dev/source/transformations/reproject#Geometry-reprojection","148":"/GeometryOps.jl/dev/source/transformations/reproject#Method-error-handling","149":"/GeometryOps.jl/dev/source/transformations/extent#Extent-embedding","150":"/GeometryOps.jl/dev/source/transformations/segmentize#segmentize","151":"/GeometryOps.jl/dev/source/transformations/segmentize#examples","152":"/GeometryOps.jl/dev/source/transformations/segmentize#benchmark","153":"/GeometryOps.jl/dev/source/transformations/segmentize#implementation","154":"/GeometryOps.jl/dev/source/transformations/simplify#Geometry-simplification","155":"/GeometryOps.jl/dev/source/transformations/simplify#examples","156":"/GeometryOps.jl/dev/source/transformations/simplify#benchmark","157":"/GeometryOps.jl/dev/source/transformations/simplify#Simplify-with-RadialDistance-Algorithm","158":"/GeometryOps.jl/dev/source/transformations/simplify#Simplify-with-DouglasPeucker-Algorithm","159":"/GeometryOps.jl/dev/source/transformations/simplify#Simplify-with-VisvalingamWhyatt-Algorithm","160":"/GeometryOps.jl/dev/source/transformations/simplify#Shared-utils","161":"/GeometryOps.jl/dev/source/transformations/transform#Pointwise-transformation","162":"/GeometryOps.jl/dev/source/transformations/tuples#Tuple-conversion","163":"/GeometryOps.jl/dev/source/types#types","164":"/GeometryOps.jl/dev/source/types#TraitTarget","165":"/GeometryOps.jl/dev/source/types#BoolsAsTypes","166":"/GeometryOps.jl/dev/source/types#GEOS","167":"/GeometryOps.jl/dev/source/utils#Utility-functions","168":"/GeometryOps.jl/dev/tutorials/geodesic_paths#Geodesic-paths","169":"/GeometryOps.jl/dev/tutorials/creating_geometry#Creating-Geometry","170":"/GeometryOps.jl/dev/tutorials/creating_geometry#creating-geometry","171":"/GeometryOps.jl/dev/tutorials/creating_geometry#plot-geometry","172":"/GeometryOps.jl/dev/tutorials/creating_geometry#geom-crs","173":"/GeometryOps.jl/dev/tutorials/creating_geometry#attributes","174":"/GeometryOps.jl/dev/tutorials/creating_geometry#save-geometry","175":"/GeometryOps.jl/dev/tutorials/spatial_joins#Spatial-joins","176":"/GeometryOps.jl/dev/tutorials/spatial_joins#Simple-example","177":"/GeometryOps.jl/dev/tutorials/spatial_joins#Real-world-example","178":"/GeometryOps.jl/dev/tutorials/spatial_joins#Enabling-custom-predicates"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[4,1,91],"1":[4,4,248],"2":[3,4,1],"3":[2,7,208],"4":[3,7,258],"5":[2,4,84],"6":[2,4,1086],"7":[3,1,55],"8":[3,1,1],"9":[2,3,107],"10":[1,3,17],"11":[2,1,74],"12":[1,1,5],"13":[1,1,128],"14":[1,2,116],"15":[5,2,72],"16":[1,1,1],"17":[1,1,53],"18":[1,1,109],"19":[1,2,35],"20":[3,1,79],"21":[1,1,1],"22":[7,1,71],"23":[13,1,101],"24":[6,1,66],"25":[5,1,72],"26":[5,1,61],"27":[1,1,72],"28":[2,1,1],"29":[3,3,50],"30":[8,3,18],"31":[2,1,120],"32":[1,1,3],"33":[4,1,57],"34":[1,1,268],"35":[4,1,4],"36":[5,4,100],"37":[1,4,246],"38":[2,1,65],"39":[1,2,211],"40":[3,2,414],"41":[1,1,110],"42":[1,1,6],"43":[5,1,91],"44":[1,1,199],"45":[3,1,610],"46":[4,1,70],"47":[1,1,327],"48":[2,1,3],"49":[4,2,57],"50":[1,2,200],"51":[3,1,214],"52":[10,1,190],"53":[2,1,250],"54":[10,1,480],"55":[11,1,25],"56":[3,1,236],"57":[10,1,284],"58":[2,1,56],"59":[1,2,1],"60":[2,3,32],"61":[5,2,40],"62":[4,2,100],"63":[1,2,166],"64":[4,1,4],"65":[5,4,128],"66":[1,4,260],"67":[1,1,3],"68":[4,1,68],"69":[1,1,265],"70":[1,1,3],"71":[4,1,79],"72":[1,1,79],"73":[1,1,3],"74":[4,1,81],"75":[1,1,128],"76":[4,1,11],"77":[3,1,56],"78":[3,1,46],"79":[4,1,48],"80":[4,1,40],"81":[5,1,40],"82":[5,1,44],"83":[2,1,149],"84":[1,1,3],"85":[4,1,67],"86":[1,1,78],"87":[1,1,3],"88":[4,1,68],"89":[1,1,110],"90":[4,1,10],"91":[3,1,57],"92":[3,1,58],"93":[3,1,47],"94":[3,1,33],"95":[5,1,39],"96":[5,1,44],"97":[3,1,432],"98":[2,1,3],"99":[4,2,80],"100":[1,2,76],"101":[1,1,3],"102":[4,1,82],"103":[1,1,244],"104":[1,1,3],"105":[4,1,70],"106":[1,1,125],"107":[4,1,11],"108":[3,1,69],"109":[3,1,52],"110":[3,1,61],"111":[3,1,40],"112":[5,1,39],"113":[5,1,42],"114":[1,1,3],"115":[4,1,72],"116":[1,1,129],"117":[4,1,11],"118":[3,1,63],"119":[3,1,53],"120":[4,1,53],"121":[3,1,38],"122":[5,1,39],"123":[5,1,42],"124":[1,1,4],"125":[1,1,21],"126":[1,1,206],"127":[3,1,47],"128":[3,1,511],"129":[2,1,113],"130":[1,2,1],"131":[1,3,106],"132":[1,2,12],"133":[1,2,33],"134":[4,2,114],"135":[2,2,36],"136":[1,2,540],"137":[2,1,54],"138":[1,2,87],"139":[1,2,83],"140":[2,1,41],"141":[1,2,112],"142":[2,2,109],"143":[2,1,77],"144":[1,2,70],"145":[1,2,135],"146":[2,1,56],"147":[2,1,132],"148":[3,2,77],"149":[2,1,71],"150":[1,1,76],"151":[1,1,147],"152":[1,1,268],"153":[1,1,188],"154":[2,1,44],"155":[1,2,67],"156":[1,2,391],"157":[4,1,75],"158":[4,1,186],"159":[4,1,85],"160":[2,1,149],"161":[2,1,111],"162":[2,1,58],"163":[1,1,38],"164":[1,1,74],"165":[1,1,82],"166":[1,1,147],"167":[2,1,142],"168":[2,1,52],"169":[2,1,60],"170":[4,2,287],"171":[13,2,280],"172":[9,2,199],"173":[7,2,63],"174":[4,2,140],"175":[2,1,138],"176":[2,2,137],"177":[3,2,117],"178":[3,2,68]},"averageFieldLength":[2.8603351955307263,1.4692737430167602,108.26815642458102],"storedFields":{"0":{"title":"Full GeometryOps API documentation","titles":[]},"1":{"title":"apply and associated functions","titles":["Full GeometryOps API documentation"]},"2":{"title":"General geometry methods","titles":["Full GeometryOps API documentation"]},"3":{"title":"OGC methods","titles":["Full GeometryOps API documentation","General geometry methods"]},"4":{"title":"Other general methods","titles":["Full GeometryOps API documentation","General geometry methods"]},"5":{"title":"Barycentric coordinates","titles":["Full GeometryOps API documentation"]},"6":{"title":"Other methods","titles":["Full GeometryOps API documentation"]},"7":{"title":"20th April, 2024","titles":[]},"8":{"title":"29th Feb, 2024","titles":[]},"9":{"title":"To do","titles":["29th Feb, 2024"]},"10":{"title":"Done","titles":["29th Feb, 2024"]},"11":{"title":"Accurate accumulation","titles":[]},"12":{"title":"Predicates","titles":[]},"13":{"title":"Orient","titles":["Predicates"]},"14":{"title":"Dashboard","titles":["Predicates","Orient"]},"15":{"title":"Testing robust vs regular predicates","titles":["Predicates","Orient"]},"16":{"title":"Incircle","titles":["Predicates"]},"17":{"title":"Paradigms","titles":[]},"18":{"title":"apply","titles":["Paradigms"]},"19":{"title":"applyreduce","titles":["Paradigms","apply"]},"20":{"title":"fix and prepare","titles":["Paradigms"]},"21":{"title":"Peculiarities","titles":[]},"22":{"title":"What does apply return and why?","titles":["Peculiarities"]},"23":{"title":"Why do you want me to provide a target in set operations?","titles":["Peculiarities"]},"24":{"title":"_True and _False (or BoolsAsTypes)","titles":["Peculiarities"]},"25":{"title":"What is GeometryOps.jl?","titles":[]},"26":{"title":"How to navigate the docs","titles":[]},"27":{"title":"Introduction","titles":[]},"28":{"title":"Main concepts","titles":["Introduction"]},"29":{"title":"The apply paradigm","titles":["Introduction","Main concepts"]},"30":{"title":"What's this GeoInterface.Wrapper thing?","titles":["Introduction","Main concepts"]},"31":{"title":"GeometryOps.jl","titles":[]},"32":{"title":"Angles","titles":[]},"33":{"title":"What is angles?","titles":["Angles"]},"34":{"title":"Implementation","titles":["Angles"]},"35":{"title":"Area and signed area","titles":[]},"36":{"title":"What is area? What is signed area?","titles":["Area and signed area"]},"37":{"title":"Implementation","titles":["Area and signed area"]},"38":{"title":"Barycentric coordinates","titles":[]},"39":{"title":"Example","titles":["Barycentric coordinates"]},"40":{"title":"Barycentric-coordinate API","titles":["Barycentric coordinates"]},"41":{"title":"Buffer","titles":[]},"42":{"title":"Centroid","titles":[]},"43":{"title":"What is the centroid?","titles":["Centroid"]},"44":{"title":"Implementation","titles":["Centroid"]},"45":{"title":"Polygon clipping helpers","titles":[]},"46":{"title":"What is coverage?","titles":[]},"47":{"title":"Implementation","titles":[]},"48":{"title":"Polygon cutting","titles":[]},"49":{"title":"What is cut?","titles":["Polygon cutting"]},"50":{"title":"Implementation","titles":["Polygon cutting"]},"51":{"title":"Difference Polygon Clipping","titles":[]},"52":{"title":"Helper functions for Differences with Greiner and Hormann Polygon Clipping","titles":[]},"53":{"title":"Geometry Intersection","titles":[]},"54":{"title":"Helper functions for Intersections with Greiner and Hormann Polygon Clipping","titles":[]},"55":{"title":"If we want to inject adaptivity, we would do something like:","titles":[]},"56":{"title":"Union Polygon Clipping","titles":[]},"57":{"title":"Helper functions for Unions with Greiner and Hormann Polygon Clipping","titles":[]},"58":{"title":"Convex hull","titles":[]},"59":{"title":"Example","titles":["Convex hull"]},"60":{"title":"Simple hull","titles":["Convex hull","Example"]},"61":{"title":"Convex hull of the USA","titles":["Convex hull"]},"62":{"title":"Investigating the winding order","titles":["Convex hull"]},"63":{"title":"Implementation","titles":["Convex hull"]},"64":{"title":"Distance and signed distance","titles":[]},"65":{"title":"What is distance? What is signed distance?","titles":["Distance and signed distance"]},"66":{"title":"Implementation","titles":["Distance and signed distance"]},"67":{"title":"Equals","titles":[]},"68":{"title":"What is equals?","titles":["Equals"]},"69":{"title":"Implementation","titles":["Equals"]},"70":{"title":"Contains","titles":[]},"71":{"title":"What is contains?","titles":["Contains"]},"72":{"title":"Implementation","titles":["Contains"]},"73":{"title":"CoveredBy","titles":[]},"74":{"title":"What is coveredby?","titles":["CoveredBy"]},"75":{"title":"Implementation","titles":["CoveredBy"]},"76":{"title":"Convert features to geometries","titles":[]},"77":{"title":"Points coveredby geometries","titles":[]},"78":{"title":"Lines coveredby geometries","titles":[]},"79":{"title":"Rings covered by geometries","titles":[]},"80":{"title":"Polygons covered by geometries","titles":[]},"81":{"title":"Geometries coveredby multi-geometry/geometry collections","titles":[]},"82":{"title":"Multi-geometry/geometry collections coveredby geometries","titles":[]},"83":{"title":"Crossing checks","titles":[]},"84":{"title":"Covers","titles":[]},"85":{"title":"What is covers?","titles":["Covers"]},"86":{"title":"Implementation","titles":["Covers"]},"87":{"title":"Disjoint","titles":[]},"88":{"title":"What is disjoint?","titles":["Disjoint"]},"89":{"title":"Implementation","titles":["Disjoint"]},"90":{"title":"Convert features to geometries","titles":[]},"91":{"title":"Point disjoint geometries","titles":[]},"92":{"title":"Lines disjoint geometries","titles":[]},"93":{"title":"Rings disjoint geometries","titles":[]},"94":{"title":"Polygon disjoint geometries","titles":[]},"95":{"title":"Geometries disjoint multi-geometry/geometry collections","titles":[]},"96":{"title":"Multi-geometry/geometry collections coveredby geometries","titles":[]},"97":{"title":"Line-curve interaction","titles":[]},"98":{"title":"Intersection checks","titles":[]},"99":{"title":"What is intersects?","titles":["Intersection checks"]},"100":{"title":"Implementation","titles":["Intersection checks"]},"101":{"title":"Overlaps","titles":[]},"102":{"title":"What is overlaps?","titles":["Overlaps"]},"103":{"title":"Implementation","titles":["Overlaps"]},"104":{"title":"Touches","titles":[]},"105":{"title":"What is touches?","titles":["Touches"]},"106":{"title":"Implementation","titles":["Touches"]},"107":{"title":"Convert features to geometries","titles":[]},"108":{"title":"Point touches geometries","titles":[]},"109":{"title":"Lines touching geometries","titles":[]},"110":{"title":"Rings touch geometries","titles":[]},"111":{"title":"Polygons touch geometries","titles":[]},"112":{"title":"Geometries touch multi-geometry/geometry collections","titles":[]},"113":{"title":"Multi-geometry/geometry collections cross geometries","titles":[]},"114":{"title":"Within","titles":[]},"115":{"title":"What is within?","titles":["Within"]},"116":{"title":"Implementation","titles":["Within"]},"117":{"title":"Convert features to geometries","titles":[]},"118":{"title":"Points within geometries","titles":[]},"119":{"title":"Lines within geometries","titles":[]},"120":{"title":"Rings covered by geometries","titles":[]},"121":{"title":"Polygons within geometries","titles":[]},"122":{"title":"Geometries within multi-geometry/geometry collections","titles":[]},"123":{"title":"Multi-geometry/geometry collections within geometries","titles":[]},"124":{"title":"Orientation","titles":[]},"125":{"title":"isclockwise","titles":["Orientation"]},"126":{"title":"isconcave","titles":["Orientation"]},"127":{"title":"Not implemented yet","titles":[]},"128":{"title":"Polygonizing raster data","titles":[]},"129":{"title":"Primitive functions","titles":[]},"130":{"title":"Docstrings","titles":["Primitive functions"]},"131":{"title":"Functions","titles":["Primitive functions","Docstrings"]},"132":{"title":"Types","titles":["Primitive functions"]},"133":{"title":"Implementation","titles":["Primitive functions"]},"134":{"title":"What is apply?","titles":["Primitive functions"]},"135":{"title":"Embedding:","titles":["Primitive functions"]},"136":{"title":"Threading","titles":["Primitive functions"]},"137":{"title":"Closed Rings","titles":[]},"138":{"title":"Example","titles":["Closed Rings"]},"139":{"title":"Implementation","titles":["Closed Rings"]},"140":{"title":"Geometry Corrections","titles":[]},"141":{"title":"Interface","titles":["Geometry Corrections"]},"142":{"title":"Available corrections","titles":["Geometry Corrections"]},"143":{"title":"Intersecting Polygons","titles":[]},"144":{"title":"Example","titles":["Intersecting Polygons"]},"145":{"title":"Implementation","titles":["Intersecting Polygons"]},"146":{"title":"Coordinate flipping","titles":[]},"147":{"title":"Geometry reprojection","titles":[]},"148":{"title":"Method error handling","titles":["Geometry reprojection"]},"149":{"title":"Extent embedding","titles":[]},"150":{"title":"Segmentize","titles":[]},"151":{"title":"Examples","titles":["Segmentize"]},"152":{"title":"Benchmark","titles":["Segmentize"]},"153":{"title":"Implementation","titles":["Segmentize"]},"154":{"title":"Geometry simplification","titles":[]},"155":{"title":"Examples","titles":["Geometry simplification"]},"156":{"title":"Benchmark","titles":["Geometry simplification"]},"157":{"title":"Simplify with RadialDistance Algorithm","titles":[]},"158":{"title":"Simplify with DouglasPeucker Algorithm","titles":[]},"159":{"title":"Simplify with VisvalingamWhyatt Algorithm","titles":[]},"160":{"title":"Shared utils","titles":[]},"161":{"title":"Pointwise transformation","titles":[]},"162":{"title":"Tuple conversion","titles":[]},"163":{"title":"Types","titles":[]},"164":{"title":"TraitTarget","titles":["Types"]},"165":{"title":"BoolsAsTypes","titles":["Types"]},"166":{"title":"GEOS","titles":["Types"]},"167":{"title":"Utility functions","titles":[]},"168":{"title":"Geodesic paths","titles":[]},"169":{"title":"Creating Geometry","titles":[]},"170":{"title":"Creating and plotting geometries","titles":["Creating Geometry"]},"171":{"title":"Plot geometries on a map using GeoMakie and coordinate reference system (CRS)","titles":["Creating Geometry"]},"172":{"title":"Create geospatial geometries with embedded coordinate reference system information","titles":["Creating Geometry"]},"173":{"title":"Creating a table with attributes and geometry","titles":["Creating Geometry"]},"174":{"title":"Saving your geospatial data","titles":["Creating Geometry"]},"175":{"title":"Spatial joins","titles":[]},"176":{"title":"Simple example","titles":["Spatial joins"]},"177":{"title":"Real-world example","titles":["Spatial joins"]},"178":{"title":"Enabling custom predicates","titles":["Spatial joins"]}},"dirtCount":0,"index":[["⋮",{"2":{"171":1}}],["θ",{"2":{"170":7,"171":3,"172":5}}],["☁",{"2":{"170":1}}],["✈",{"2":{"170":1}}],["÷",{"2":{"136":2}}],["ϵ",{"2":{"54":5}}],["∘",{"2":{"54":1,"103":2,"128":2,"141":1,"156":2,"178":2}}],["⊻",{"2":{"45":1,"52":2}}],["≥",{"2":{"45":1,"97":2,"145":1,"158":1}}],["α≈1",{"2":{"54":1}}],["α≈0",{"2":{"54":1}}],["α2",{"2":{"45":4,"54":2}}],["α",{"2":{"45":3,"54":28,"97":7}}],["α1",{"2":{"45":4,"54":2}}],["β2",{"2":{"45":4,"54":2}}],["β",{"2":{"45":4,"54":28,"97":7}}],["β1",{"2":{"45":4,"54":2}}],["≤",{"2":{"45":5,"47":14,"97":6,"158":1,"160":1,"167":4}}],["^",{"2":{"171":1}}],["^3",{"2":{"171":1}}],["^n",{"2":{"126":1}}],["^2",{"2":{"44":2,"66":2}}],["^hormannpresentation",{"2":{"40":2}}],["∑λ",{"2":{"40":2}}],["∑i=2n",{"2":{"6":1}}],["`$",{"2":{"166":1}}],["`libgeos",{"2":{"166":1}}],["`linearring`",{"2":{"153":1}}],["`linearsegments`",{"2":{"153":1}}],["`linestring`",{"2":{"153":1}}],["`linestringtrait`",{"2":{"141":1}}],["`line2`",{"2":{"126":1}}],["`line1`",{"2":{"126":1}}],["`line",{"2":{"53":4}}],["`equatorial",{"2":{"152":2}}],["`extents",{"2":{"149":1}}],["`inf`",{"2":{"147":1}}],["`intersects`",{"2":{"100":1}}],["`intersectingpolygons`",{"2":{"51":1,"53":1,"56":1}}],["`prefilter",{"2":{"156":1}}],["`proj",{"2":{"147":1,"152":2}}],["`polgontrait`",{"2":{"136":1}}],["`polygontrait`",{"2":{"136":1,"141":1}}],["`polygonize`",{"2":{"128":2}}],["`polygon`",{"2":{"40":3}}],["`polys`",{"2":{"52":1}}],["`poly",{"2":{"52":3,"54":1,"57":1}}],["`pointrait`",{"2":{"156":1}}],["`pointtrait`",{"2":{"136":3,"141":1}}],["`point",{"2":{"97":3}}],["`point`",{"2":{"40":4,"66":1}}],["`point2f`",{"2":{"39":1}}],["`obj`",{"2":{"136":1,"161":1,"162":1}}],["`op`",{"2":{"136":2}}],["`+`",{"2":{"136":1}}],["`alg",{"2":{"166":1}}],["`alg`",{"2":{"160":1}}],["`always",{"2":{"147":1}}],["`application",{"2":{"141":1}}],["`apply`",{"2":{"136":1,"164":1}}],["`abstractgeometrytrait`",{"2":{"136":1}}],["`abstractarray`",{"2":{"136":1}}],["`abstractmatrix`",{"2":{"128":1}}],["`calc",{"2":{"133":1}}],["`crs`",{"2":{"133":1}}],["`components`",{"2":{"136":1}}],["`collect`",{"2":{"136":1}}],["`covers`",{"2":{"75":1,"86":1}}],["`coveredby`",{"2":{"75":1,"86":1}}],["`contains`",{"2":{"72":1,"116":1}}],["`convex",{"2":{"63":2}}],["`union",{"2":{"128":2}}],["`unionintersectingpolygons`",{"2":{"145":1}}],["`unionintersectingpolygons",{"2":{"51":1,"52":2,"53":1,"54":2,"56":1,"57":2}}],["`ys`",{"2":{"128":1}}],["`flattening`",{"2":{"152":1}}],["`flattening",{"2":{"152":1}}],["`flatten`",{"2":{"136":1}}],["`f",{"2":{"136":1}}],["`featurecollectiontrait`",{"2":{"136":2}}],["`featurecollection`",{"2":{"128":2}}],["`featuretrait`",{"2":{"136":3}}],["`feature`s",{"2":{"128":1}}],["`f`",{"2":{"128":5,"136":6,"161":2,"166":1}}],["`false`",{"2":{"126":1,"128":1,"133":4,"147":1}}],["`fix",{"2":{"51":2,"52":2,"53":2,"54":2,"56":2,"57":2}}],["`douglaspeucker`",{"2":{"156":1}}],["`d`",{"2":{"147":1}}],["`difference`",{"2":{"145":1}}],["`disjoint`",{"2":{"100":1}}],["`delaunaytriangulation",{"2":{"63":1}}],["`within`",{"2":{"72":1,"116":1}}],["`weight`",{"2":{"40":1}}],["`geos`",{"2":{"166":3}}],["`geodesic`",{"2":{"152":1}}],["`geodesicsegments`",{"2":{"151":1,"152":1,"153":1}}],["`geointerface`",{"2":{"141":1}}],["`geointerface",{"2":{"136":2,"147":2}}],["`geom`",{"2":{"66":3,"136":1,"153":1}}],["`geometrycorrection`",{"2":{"139":1,"141":1,"145":2}}],["`geometry`",{"2":{"136":1,"147":2}}],["`geometrybasics",{"2":{"40":3}}],["`geometries`",{"2":{"63":1}}],["`g1`",{"2":{"66":1}}],["`gi",{"2":{"63":1,"128":1}}],["`tuple",{"2":{"167":1}}],["`tuple`s",{"2":{"162":1}}],["`tuple`",{"2":{"128":1,"162":1}}],["`time`",{"2":{"147":1}}],["`transform`",{"2":{"147":1}}],["`true`",{"2":{"75":1,"83":1,"89":2,"106":1,"116":1,"126":2,"128":1,"133":2,"147":1}}],["`threaded==true`",{"2":{"136":1}}],["`threaded`",{"2":{"133":1}}],["`tol`",{"2":{"156":2,"157":3,"158":2,"159":3,"160":4}}],["`to",{"2":{"54":1}}],["`target",{"2":{"147":3}}],["`target`",{"2":{"53":1,"136":4,"164":1}}],["`tables",{"2":{"136":1}}],["`taget`",{"2":{"51":1,"56":1}}],["`method",{"2":{"153":1}}],["`method`",{"2":{"40":3,"153":1}}],["`max",{"2":{"152":4,"153":2,"166":1}}],["`makie",{"2":{"128":1}}],["`multipointtrait`",{"2":{"136":1,"156":1}}],["`multipolygontrait`",{"2":{"136":1}}],["`multipolygon`",{"2":{"128":3}}],["`multipolygon",{"2":{"52":3,"54":3,"57":2}}],["`multipoly",{"2":{"52":7,"54":3,"57":3}}],["`minpoints`",{"2":{"128":2}}],["`number`",{"2":{"156":2,"160":3}}],["`namedtuple`",{"2":{"136":1}}],["`nothing`",{"2":{"45":1,"133":1}}],["`next",{"2":{"45":1}}],["`bool`",{"2":{"128":2}}],["`buffer`",{"2":{"41":1}}],["`barycentric",{"2":{"40":3}}],["`radialdistance`",{"2":{"156":1}}],["`ratio`",{"2":{"156":2,"160":3}}],["`reproject`",{"2":{"148":1}}],["`rebuild`",{"2":{"136":1}}],["`r`",{"2":{"40":1}}],["`rᵢ`",{"2":{"40":1}}],["`segmentize`",{"2":{"166":1}}],["`svector`",{"2":{"161":3}}],["`simplifyalg`",{"2":{"156":2}}],["`simplify",{"2":{"156":1}}],["`simplify`",{"2":{"156":2}}],["`source",{"2":{"147":3}}],["`s`",{"2":{"40":1}}],["`sᵢ`",{"2":{"40":2}}],["`s2`",{"2":{"40":1}}],["`s1`",{"2":{"40":1}}],["`hcat`",{"2":{"40":1}}],["`x`",{"2":{"136":1}}],["`xs`",{"2":{"128":1}}],["`x1",{"2":{"40":1}}],["`x1`",{"2":{"40":2}}],["`x2`",{"2":{"40":1}}],["`visvalingamwhyatt`",{"2":{"156":1}}],["`vector",{"2":{"147":1}}],["`vector`",{"2":{"128":1,"136":1}}],["`vᵢ`",{"2":{"40":1}}],["`v`",{"2":{"40":1}}],["`values`",{"2":{"40":1,"128":1}}],["`λs`",{"2":{"40":2}}],["`",{"2":{"40":2,"51":1,"52":2,"53":1,"54":3,"56":1,"57":2,"128":3,"136":1,"141":2,"147":2,"153":1,"156":3,"166":2,"167":1}}],["```jldoctest",{"2":{"50":1,"51":1,"53":1,"54":1,"56":1,"69":1,"72":1,"75":1,"86":1,"89":1,"100":1,"103":1,"106":1,"116":1,"126":1,"156":1}}],["```julia",{"2":{"6":2,"40":1,"83":1,"126":1,"136":1,"161":2,"164":1}}],["```math",{"2":{"40":1,"126":1}}],["```",{"2":{"11":1,"40":3,"50":1,"51":1,"53":1,"56":1,"69":1,"72":1,"75":1,"86":1,"89":1,"100":1,"103":1,"106":1,"116":1,"126":3,"128":11,"136":1,"156":1,"161":2,"167":1}}],["λ₁",{"2":{"40":2}}],["λn",{"2":{"38":1}}],["λ3",{"2":{"38":1}}],["λ2",{"2":{"38":2}}],["λ1",{"2":{"38":2}}],["λs",{"2":{"5":3,"6":4,"40":27}}],["π",{"2":{"34":1,"156":1}}],["δbay",{"2":{"54":3}}],["δbax",{"2":{"54":3}}],["δby",{"2":{"54":5}}],["δbx",{"2":{"54":5}}],["δb",{"2":{"54":2}}],["δay",{"2":{"54":5}}],["δax",{"2":{"54":5}}],["δa",{"2":{"54":2}}],["δintrs",{"2":{"45":2}}],["δy2",{"2":{"126":2}}],["δy1",{"2":{"126":2}}],["δyl",{"2":{"103":4}}],["δy",{"2":{"34":8,"47":3,"97":7}}],["δys",{"2":{"34":1}}],["δx2",{"2":{"126":2}}],["δx1",{"2":{"126":2}}],["δxl",{"2":{"103":4}}],["δx",{"2":{"34":9,"47":3,"97":7}}],["∈",{"2":{"14":1}}],["~",{"2":{"14":3}}],["$ratio",{"2":{"160":1}}],["$rectangle",{"2":{"152":2}}],["$number",{"2":{"160":1}}],["$name",{"2":{"31":2}}],["$min",{"2":{"160":1}}],["$douglas",{"2":{"156":1,"158":1}}],["$simplify",{"2":{"156":1,"157":1,"159":1}}],["$lg",{"2":{"152":1}}],["$lin",{"2":{"152":2}}],["$geom",{"2":{"156":8}}],["$geo",{"2":{"152":1}}],["$apply",{"2":{"136":1,"146":1,"147":1,"156":1}}],["$calc",{"2":{"133":1}}],["$crs",{"2":{"133":1,"149":1}}],["$tol",{"2":{"160":1}}],["$threaded",{"2":{"133":1}}],["$t",{"2":{"69":1,"136":4}}],["$target",{"2":{"52":1,"54":1,"57":1,"136":3}}],["$trait",{"2":{"50":1,"52":2,"54":2,"57":2}}],["$",{"2":{"13":4,"14":1,"40":4,"45":2,"128":3,"141":4,"153":1,"156":12,"166":1}}],["|=",{"2":{"97":4,"103":1}}],["||",{"2":{"34":2,"45":13,"47":8,"50":1,"53":1,"54":5,"56":1,"69":18,"83":2,"97":8,"103":1,"108":1,"128":7,"158":1,"160":3}}],["|",{"2":{"11":4,"97":1}}],["|>",{"2":{"11":8,"13":2,"136":1,"151":1,"152":1,"156":3,"177":2}}],["↩︎",{"2":{"6":1}}],["ᵢᵢᵢ₊₁ᵢᵢ₊₁ᵢᵢ₊₁tᵢ=det",{"2":{"6":1}}],["⋅",{"2":{"6":1,"40":1}}],["qy",{"2":{"13":2,"14":2}}],["qx",{"2":{"13":2,"14":2}}],["q",{"2":{"13":13,"14":12,"45":4}}],["qhull",{"2":{"6":1,"63":1}}],["queue",{"2":{"158":41}}],["questions",{"2":{"54":1}}],["quite",{"2":{"138":1,"177":1}}],["quickhull",{"2":{"6":1,"58":1,"63":2}}],["quick",{"2":{"4":1,"6":1,"40":1,"149":1,"155":1}}],["quality",{"2":{"6":1,"156":1}}],["quantity",{"2":{"6":1,"152":1}}],["quot",{"2":{"1":4,"6":10,"20":2,"45":8,"65":2,"66":2,"69":2,"85":4,"97":10,"134":2,"136":8,"150":6,"170":2,"176":2}}],["zone",{"2":{"171":1}}],["zoom",{"2":{"14":1}}],["zs",{"2":{"128":5}}],["zip",{"2":{"13":1,"14":1,"170":4,"171":1,"172":1}}],["zeros",{"2":{"40":1,"47":1}}],["zero",{"2":{"4":6,"6":8,"37":11,"44":3,"45":4,"47":11,"54":22,"65":1,"66":3,"126":1,"136":1,"158":4}}],["z",{"2":{"4":1,"5":1,"6":2,"40":3,"69":3,"128":3,"146":1,"161":1,"162":1}}],["0e6",{"2":{"171":6}}],["0example",{"2":{"6":1}}],["097075198097933",{"2":{"172":1}}],["09707519809793252",{"2":{"172":2}}],["091887951911644",{"2":{"172":3}}],["0999933334666654",{"2":{"170":1}}],["09801605542096",{"2":{"170":1}}],["098016055420953",{"2":{"170":3}}],["09297443860091348",{"2":{"170":4}}],["09",{"2":{"39":1}}],["08506974233813636",{"2":{"172":2}}],["08",{"2":{"39":1}}],["062749678615475",{"2":{"172":1}}],["06274967861547665",{"2":{"172":2}}],["06592462566760626",{"2":{"170":1}}],["0650624499034016",{"2":{"170":4}}],["06",{"2":{"39":1}}],["02017324484778",{"2":{"172":1}}],["020173244847778715",{"2":{"172":2}}],["027886421973952302",{"2":{"170":4}}],["02",{"2":{"39":3}}],["04500741774392",{"2":{"172":1}}],["045007417743918",{"2":{"172":2}}],["049999166670833324",{"2":{"170":1}}],["0438052480035",{"2":{"170":1}}],["043805248003498",{"2":{"170":3}}],["04",{"2":{"39":6}}],["07518688541961",{"2":{"172":1}}],["075186885419612",{"2":{"172":2}}],["071",{"2":{"151":2,"152":2}}],["07",{"2":{"39":6,"151":6,"152":6}}],["009176636029576",{"2":{"172":1}}],["0091766360295773",{"2":{"172":2}}],["003135308800957",{"2":{"172":1}}],["0031353088009582475",{"2":{"172":2}}],["0035114210915891397",{"2":{"170":4}}],["006784125578492062",{"2":{"172":2}}],["0020133807972559925",{"2":{"172":2}}],["00839489109211",{"2":{"172":3}}],["008696",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["005465967083412071",{"2":{"170":4}}],["00111595449914",{"2":{"170":1}}],["001115954499138",{"2":{"170":3}}],["0010075412835199304",{"2":{"170":4}}],["001",{"2":{"156":1}}],["00085222666982",{"2":{"172":3}}],["000577332369005",{"2":{"172":1}}],["0005773323690041465",{"2":{"172":2}}],["000510363870095e6",{"2":{"171":2}}],["00025191811248184703",{"2":{"172":2}}],["000215611503127e6",{"2":{"171":2}}],["0007260527263e6",{"2":{"171":2}}],["000342160541625e6",{"2":{"171":2}}],["000124843834609e6",{"2":{"171":2}}],["000063948817746e6",{"2":{"171":2}}],["000026987852369e6",{"2":{"171":2}}],["000008144045314",{"2":{"172":1}}],["000007998400139e6",{"2":{"171":2}}],["000000999950001e6",{"2":{"171":2}}],["00001e6",{"2":{"171":1}}],["0004397316773170068",{"2":{"170":4}}],["000",{"2":{"156":1,"168":1}}],["00",{"2":{"39":2}}],["053798628882221644",{"2":{"172":2}}],["05877989361332",{"2":{"170":1}}],["058779893613323",{"2":{"170":3}}],["05416726609360478",{"2":{"170":4}}],["05",{"2":{"39":1}}],["052704767595",{"2":{"15":1}}],["037564867762832",{"2":{"172":1}}],["03756486776283019",{"2":{"172":2}}],["031245035570328428",{"2":{"172":2}}],["033518309870985",{"2":{"172":3}}],["03503632062070827",{"2":{"170":4}}],["03",{"2":{"39":4}}],["01458815628695",{"2":{"172":3}}],["016044338630866517",{"2":{"172":2}}],["01592650896568995",{"2":{"170":1}}],["01597247419241532",{"2":{"170":4}}],["01908693278165",{"2":{"170":1}}],["019086932781654",{"2":{"170":3}}],["01098781325325",{"2":{"170":1}}],["010987813253244",{"2":{"170":3}}],["011814947665167774",{"2":{"170":4}}],["01362848005",{"2":{"15":1}}],["01",{"2":{"14":1,"39":1,"151":1,"152":1,"170":1,"171":1,"172":1}}],["0^",{"2":{"13":2,"14":2}}],["0+2",{"2":{"13":2,"14":2}}],["0",{"2":{"3":35,"4":12,"6":190,"11":1,"13":5,"14":8,"15":32,"33":20,"34":3,"36":9,"37":4,"39":155,"40":2,"43":6,"44":6,"45":49,"46":13,"47":5,"49":22,"50":49,"51":42,"53":2,"54":21,"56":46,"57":2,"61":1,"65":20,"66":2,"68":13,"69":18,"71":16,"74":6,"75":6,"83":9,"85":6,"86":12,"88":15,"97":37,"102":13,"103":9,"105":12,"106":11,"115":16,"126":21,"128":7,"138":24,"144":64,"145":4,"151":16,"152":13,"153":1,"156":11,"158":7,"160":4,"167":2,"170":129,"171":2,"172":46,"176":13}}],[">=",{"2":{"40":6,"83":4,"103":1,"160":1}}],[">",{"2":{"1":1,"6":6,"11":2,"13":1,"15":2,"34":1,"40":1,"45":17,"47":3,"50":5,"51":1,"52":1,"54":2,"56":1,"57":3,"65":1,"69":1,"83":8,"97":10,"103":2,"126":4,"128":12,"136":5,"141":1,"145":3,"153":2,"156":1,"158":12,"160":3,"161":1,"167":1,"177":1}}],["914930257661865",{"2":{"172":1}}],["96875496442967",{"2":{"172":1}}],["961329",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["983955661369134",{"2":{"172":1}}],["9833",{"2":{"15":1}}],["9877550012664",{"2":{"170":1}}],["9840085315131",{"2":{"170":1}}],["98271048511609",{"2":{"170":1}}],["98661575256801",{"2":{"170":1}}],["99321587442151",{"2":{"172":1}}],["99375130197483",{"2":{"170":1}}],["997986619202745",{"2":{"172":1}}],["997750168744936",{"2":{"170":1}}],["997247091122496",{"2":{"170":1}}],["99600053330489",{"2":{"170":1}}],["991002699676024",{"2":{"170":1}}],["990022362600165",{"2":{"170":1}}],["99292997455441",{"2":{"170":1}}],["99533829767195",{"2":{"170":1}}],["99865616402829",{"2":{"170":1}}],["999999967681458e6",{"2":{"171":2}}],["999997707902938e6",{"2":{"171":2}}],["999987539891298e6",{"2":{"171":2}}],["999963474314044e6",{"2":{"171":2}}],["999919535736425e6",{"2":{"171":2}}],["999974634566875",{"2":{"170":1}}],["999849768598615e6",{"2":{"171":2}}],["999748081887518",{"2":{"172":1}}],["999748243174828e6",{"2":{"171":2}}],["999750002083324",{"2":{"170":1}}],["999609061508909e6",{"2":{"171":2}}],["999426363321033e6",{"2":{"171":2}}],["999194331880103e6",{"2":{"171":2}}],["99900003333289",{"2":{"170":1}}],["999565375483215",{"2":{"170":1}}],["9im",{"2":{"97":2,"175":1}}],["97976366505997",{"2":{"170":1}}],["9783069507679",{"2":{"170":1}}],["97",{"2":{"39":1}}],["946201371117777",{"2":{"172":1}}],["94",{"2":{"39":1}}],["92",{"2":{"39":1}}],["95770326033",{"2":{"15":1}}],["95",{"2":{"13":1,"14":1,"168":1}}],["900",{"2":{"152":1}}],["90063612163",{"2":{"11":2}}],["90",{"2":{"33":9,"39":1}}],["909318372607",{"2":{"11":3}}],["9",{"2":{"1":1,"6":1,"97":2,"126":12,"151":1,"161":1}}],["873633668827033",{"2":{"172":1}}],["8135804051007",{"2":{"170":1}}],["813580405100698",{"2":{"170":3}}],["897070",{"2":{"168":1}}],["88",{"2":{"39":1}}],["86641841658641",{"2":{"170":1}}],["866418416586406",{"2":{"170":3}}],["86",{"2":{"39":1}}],["868447876892",{"2":{"15":2}}],["84",{"2":{"39":1}}],["821068835162155",{"2":{"172":1}}],["82",{"2":{"39":1}}],["800",{"2":{"39":1}}],["80000",{"2":{"15":5}}],["80",{"2":{"39":1}}],["80869813739",{"2":{"15":2}}],["856614689791036e",{"2":{"15":2}}],["83572303404496",{"2":{"6":2,"53":1,"54":1}}],["8",{"2":{"1":3,"6":9,"13":1,"14":1,"51":2,"56":4,"97":1,"128":3,"151":1,"161":3,"172":2}}],["karnataka",{"2":{"177":1}}],["kbn",{"2":{"11":2}}],["kinds",{"2":{"23":1}}],["kind",{"2":{"9":1,"128":1}}],["k",{"2":{"6":1,"14":6,"40":1,"45":5,"97":5,"170":5,"172":5}}],["kernel",{"2":{"153":4}}],["keepat",{"2":{"56":1,"145":2}}],["keep",{"2":{"45":3,"128":1,"145":14,"151":1,"176":1}}],["keeping",{"2":{"6":1,"136":1,"146":1}}],["keys",{"2":{"128":4}}],["key",{"2":{"6":1,"128":4,"166":5}}],["keyword",{"2":{"6":8,"23":1,"51":1,"53":1,"56":1,"133":6,"136":1,"149":2,"152":2,"166":4,"171":1,"172":1}}],["keywords",{"2":{"1":2,"4":1,"6":10,"97":2,"128":1,"133":1,"136":1,"146":2,"147":3,"149":1,"156":8,"157":1,"158":1,"159":1,"160":1,"162":2}}],["known",{"2":{"47":2}}],["know",{"2":{"6":3,"34":2,"45":1,"47":1,"51":1,"53":1,"54":2,"56":1,"57":1,"136":1,"176":1}}],["kwargs",{"2":{"41":3,"47":1,"50":1,"51":3,"52":3,"53":4,"54":5,"56":3,"57":5,"141":2,"148":1,"152":1}}],["kwdef",{"2":{"31":1,"45":1,"152":1,"157":1,"158":1,"159":1}}],["kw",{"2":{"1":1,"6":11,"97":10,"128":20,"136":21,"146":3,"156":15,"159":1,"161":3,"162":3,"166":6}}],["json",{"2":{"174":3}}],["jstep",{"2":{"69":3}}],["jstart",{"2":{"69":7}}],["joined",{"2":{"176":4}}],["joins",{"0":{"175":1},"1":{"176":1,"177":1,"178":1},"2":{"175":3}}],["joinpath",{"2":{"156":2}}],["join",{"2":{"136":2,"175":4,"176":5,"178":1}}],["joining",{"2":{"6":2,"156":1,"175":1}}],["jpn",{"2":{"177":2}}],["jp",{"2":{"69":2}}],["jhole",{"2":{"69":2}}],["jh",{"2":{"57":5}}],["j+1",{"2":{"45":1,"128":1,"160":1}}],["j",{"2":{"45":24,"69":8,"83":9,"97":12,"126":2,"128":8,"160":2}}],["jet",{"2":{"39":1}}],["just",{"2":{"4":1,"6":1,"44":1,"45":2,"54":4,"57":1,"62":1,"66":2,"128":1,"134":1,"136":3,"152":1,"175":1}}],["julialand",{"2":{"171":2}}],["julialines",{"2":{"36":1}}],["julialinearsegments",{"2":{"6":1}}],["juliahole",{"2":{"170":1}}],["juliaplot",{"2":{"171":2}}],["juliap1",{"2":{"170":1}}],["juliapoly",{"2":{"171":1}}],["juliapolygon3",{"2":{"171":1}}],["juliapolygon1",{"2":{"170":1}}],["juliapolygonize",{"2":{"6":1}}],["juliapolygon",{"2":{"6":1}}],["juliapoints",{"2":{"176":1}}],["juliapoint",{"2":{"170":1}}],["juliaxoffset",{"2":{"170":3,"172":1}}],["juliax",{"2":{"170":2}}],["juliaxrange",{"2":{"65":1}}],["julia$apply",{"2":{"162":1}}],["julia$threaded",{"2":{"149":1}}],["julia6",{"2":{"156":1}}],["julia```jldoctest",{"2":{"167":1}}],["julia```julia",{"2":{"128":1}}],["julia```",{"2":{"83":1,"164":1}}],["julia1",{"2":{"51":1,"53":1,"54":1,"56":1}}],["julia2",{"2":{"50":1}}],["juliabase",{"2":{"40":1,"66":4,"136":1,"166":1}}],["juliabarycentric",{"2":{"5":3,"6":3}}],["juliafig",{"2":{"170":1,"171":1}}],["juliafalse",{"2":{"126":1}}],["juliafunction",{"2":{"34":2,"40":3,"41":2,"44":1,"45":11,"47":2,"50":1,"52":1,"54":2,"57":1,"63":1,"66":8,"97":6,"103":2,"108":1,"127":1,"136":5,"148":1,"152":1,"160":2}}],["juliafor",{"2":{"31":1,"136":2}}],["juliaflexijoins",{"2":{"178":1}}],["juliaflipped",{"2":{"129":1}}],["juliaflip",{"2":{"6":1}}],["juliaflatten",{"2":{"6":1,"131":1}}],["juliagi",{"2":{"11":2}}],["juliago",{"2":{"11":1,"33":1,"36":1,"46":1,"68":1,"71":1,"74":1,"85":1,"88":1,"99":1,"102":1,"105":1,"115":1,"175":1}}],["juliageopoly1",{"2":{"172":1}}],["juliageointerface",{"2":{"167":1}}],["juliageometry",{"2":{"63":1}}],["juliageo",{"2":{"6":2}}],["juliageodesicsegments",{"2":{"6":1}}],["juliageos",{"2":{"6":1}}],["juliaweighted",{"2":{"6":1}}],["juliawithin",{"2":{"3":1,"6":1}}],["juliaunwrap",{"2":{"6":1,"136":6}}],["juliaunion",{"2":{"6":1}}],["juliaunionintersectingpolygons",{"2":{"6":1,"142":1}}],["juliausing",{"2":{"6":1,"13":1,"14":1,"39":1,"151":2,"152":1,"155":1,"156":1,"173":1}}],["juliascatter",{"2":{"176":1}}],["juliasource",{"2":{"171":2}}],["juliasimplify",{"2":{"6":1,"156":3}}],["juliasigned",{"2":{"4":2,"6":2}}],["juliasegmentize",{"2":{"6":1}}],["julias1",{"2":{"6":1}}],["juliavisvalingamwhyatt",{"2":{"6":1}}],["juliaring3",{"2":{"171":1}}],["juliaring1",{"2":{"170":1}}],["juliar",{"2":{"170":2,"171":1,"172":1}}],["juliareconstruct",{"2":{"6":1,"131":1}}],["juliarebuild",{"2":{"6":1,"131":1}}],["juliareproject",{"2":{"1":1}}],["juliaradialdistance",{"2":{"6":1}}],["juliamy",{"2":{"178":1}}],["juliamultipoly",{"2":{"156":1}}],["juliamodule",{"2":{"31":1}}],["juliamonotonechainmethod",{"2":{"6":1}}],["juliameanvalue",{"2":{"6":1}}],["juliadf",{"2":{"173":1}}],["juliadestination",{"2":{"171":1}}],["juliadouglaspeucker",{"2":{"6":1}}],["juliadifference",{"2":{"6":1}}],["juliadiffintersectingpolygons",{"2":{"6":1,"142":1}}],["juliadistance",{"2":{"4":1,"6":1}}],["juliadisjoint",{"2":{"3":1,"6":1}}],["juliaexport",{"2":{"32":1,"35":1,"38":1,"42":1,"48":1,"51":1,"53":1,"56":1,"64":1,"67":1,"70":1,"73":1,"84":1,"87":1,"98":1,"101":1,"104":1,"114":1,"124":1,"128":1,"129":1,"137":1,"140":1,"143":1,"147":1,"150":1,"156":1,"163":1}}],["juliaend",{"2":{"66":1}}],["juliaenforce",{"2":{"6":1}}],["juliaenum",{"2":{"6":2}}],["juliaembed",{"2":{"4":1,"6":1}}],["juliaequals",{"2":{"4":15,"6":15,"45":1}}],["juliaaccuratearithmetic",{"2":{"11":2}}],["juliaabstract",{"2":{"6":3,"141":1,"142":1,"152":1,"165":1}}],["juliaangles",{"2":{"4":1,"6":1}}],["juliaarea",{"2":{"4":1,"6":1}}],["juliaapplyreduce",{"2":{"1":1,"6":1}}],["juliaapply",{"2":{"1":1,"6":1,"18":1}}],["juliacent",{"2":{"43":1}}],["juliacentroid",{"2":{"4":1,"6":3}}],["juliacut",{"2":{"6":1}}],["juliaclosedring",{"2":{"6":1,"142":1}}],["juliaconst",{"2":{"34":1,"37":1,"40":1,"45":1,"47":2,"66":1,"75":1,"89":1,"106":1,"116":1,"133":1}}],["juliaconvex",{"2":{"6":1,"63":1}}],["juliacontains",{"2":{"3":1,"6":1}}],["juliacoverage",{"2":{"6":1}}],["juliacovers",{"2":{"3":1,"6":1}}],["juliacoveredby",{"2":{"3":1,"6":1}}],["juliatrue",{"2":{"69":1,"72":1,"75":1,"86":1,"89":1,"100":1,"103":1,"106":1,"116":1,"126":1}}],["juliatraittarget",{"2":{"6":2,"164":1}}],["juliatransform",{"2":{"1":1,"6":1}}],["juliatuples",{"2":{"6":1}}],["juliat",{"2":{"6":1}}],["juliatouches",{"2":{"3":1,"6":1}}],["juliaoverlaps",{"2":{"3":9,"6":9}}],["juliainnerjoin",{"2":{"177":1}}],["juliaintersection",{"2":{"6":2}}],["juliaintersects",{"2":{"3":1}}],["juliaisconcave",{"2":{"6":1}}],["juliaisclockwise",{"2":{"6":1}}],["juliaimport",{"2":{"1":1,"3":9,"4":1,"6":18,"11":1,"33":1,"36":1,"43":1,"46":1,"49":1,"60":1,"61":1,"62":1,"65":1,"68":1,"71":1,"74":1,"85":1,"88":1,"99":1,"102":1,"105":1,"115":1,"138":2,"144":2,"151":1,"168":1,"174":4,"176":1,"177":1}}],["julia",{"2":{"3":1,"6":5,"9":1,"15":1,"25":1,"27":1,"31":1,"34":4,"37":10,"40":8,"44":19,"45":60,"47":18,"50":10,"51":6,"52":1,"53":5,"54":29,"56":6,"57":4,"58":1,"63":5,"65":1,"66":4,"69":15,"72":1,"76":1,"77":5,"78":1,"79":1,"80":2,"81":1,"82":1,"83":3,"86":1,"90":1,"91":3,"92":1,"93":1,"94":1,"95":1,"96":1,"97":50,"100":1,"103":7,"107":1,"108":3,"109":1,"110":1,"111":1,"112":1,"113":1,"117":1,"118":3,"119":1,"120":1,"121":2,"122":1,"123":1,"126":9,"127":2,"128":40,"136":64,"139":5,"141":1,"145":3,"146":1,"147":1,"149":1,"152":1,"153":2,"156":1,"157":2,"158":15,"159":3,"161":1,"162":1,"163":1,"164":1,"166":4,"167":1,"169":2,"171":2,"174":2,"175":1,"176":1}}],["julia>",{"2":{"1":5,"6":7,"126":3,"161":7}}],["juliajulia>",{"2":{"1":2,"6":3}}],["jl`",{"2":{"63":1,"147":1,"166":1}}],["jldoctest",{"2":{"6":1}}],["jl",{"0":{"25":1,"31":1},"2":{"1":10,"4":1,"6":16,"10":2,"11":1,"22":2,"25":2,"27":2,"31":42,"34":1,"37":1,"40":1,"41":3,"44":1,"45":1,"47":1,"50":1,"52":1,"54":1,"55":1,"57":1,"58":3,"63":6,"66":1,"69":1,"72":1,"82":1,"83":1,"86":1,"96":1,"97":1,"100":1,"103":1,"113":1,"123":1,"126":2,"127":1,"128":1,"131":1,"136":3,"139":1,"142":1,"145":1,"146":1,"147":4,"148":3,"149":2,"150":1,"152":3,"153":2,"156":2,"160":1,"161":6,"162":2,"165":1,"166":2,"167":1,"171":1,"175":1}}],["+5000000",{"2":{"171":1}}],["+proj=natearth2",{"2":{"171":2}}],["+=",{"2":{"37":2,"40":11,"44":6,"45":17,"47":10,"50":1,"69":1,"83":1,"97":5,"126":1,"145":2,"158":4,"167":3}}],["+",{"2":{"1":1,"6":2,"13":1,"14":1,"34":4,"37":1,"40":20,"44":10,"45":15,"47":7,"50":1,"54":10,"66":3,"69":2,"83":2,"97":6,"126":6,"128":2,"145":3,"153":2,"158":3,"159":2,"160":2,"170":6,"171":1,"172":4}}],["yticklabelsvisible",{"2":{"171":1}}],["york",{"2":{"177":1}}],["yoffset",{"2":{"170":7,"172":2}}],["your",{"0":{"174":1},"2":{"18":1,"41":1,"128":1,"129":1,"148":1,"152":1,"173":1,"174":1,"178":2}}],["you",{"0":{"23":1},"2":{"1":1,"4":1,"5":2,"6":11,"9":1,"11":1,"17":1,"18":5,"23":1,"29":2,"34":1,"37":1,"40":8,"41":1,"44":1,"51":1,"53":1,"56":1,"62":1,"63":1,"129":1,"138":1,"144":1,"148":1,"151":1,"152":1,"153":1,"161":1,"164":1,"171":1,"173":2,"174":3,"176":2,"177":3,"178":4}}],["y=y",{"2":{"167":1}}],["yvec",{"2":{"128":4}}],["ybounds",{"2":{"128":4}}],["yhalf",{"2":{"128":2}}],["ylast",{"2":{"66":3}}],["yfirst",{"2":{"66":5}}],["y0",{"2":{"66":5}}],["yw",{"2":{"47":4}}],["ye",{"2":{"47":4}}],["yet",{"0":{"127":1},"2":{"31":1,"40":1,"50":1,"52":1,"54":1,"57":1,"69":1,"127":1,"128":1,"141":2,"177":1}}],["y2",{"2":{"44":2,"47":18,"66":7,"83":10,"97":5,"103":4,"128":5,"153":6,"167":2}}],["y1",{"2":{"44":2,"47":22,"66":7,"83":11,"97":6,"103":5,"128":5,"153":7,"167":2}}],["yind+1",{"2":{"128":1}}],["yind",{"2":{"128":2}}],["yinterior",{"2":{"44":2}}],["yield",{"2":{"54":1,"152":1}}],["yi+yi−1",{"2":{"6":1}}],["ycentroid",{"2":{"44":13}}],["yrange",{"2":{"39":3,"65":3}}],["yautolimits",{"2":{"39":2}}],["yp2",{"2":{"34":4}}],["ys",{"2":{"6":3,"128":30}}],["ymax",{"2":{"6":1,"46":2,"47":48}}],["ymin",{"2":{"6":1,"46":2,"47":49}}],["y",{"2":{"1":2,"4":1,"6":4,"13":9,"14":10,"34":8,"37":2,"39":8,"43":1,"44":10,"45":6,"46":1,"47":8,"52":6,"54":8,"65":2,"66":7,"69":3,"83":21,"97":16,"103":7,"126":10,"129":2,"136":1,"146":4,"147":1,"153":2,"160":1,"161":2,"162":2,"167":7,"170":8,"171":2,"172":2,"175":1}}],["75",{"2":{"65":2,"71":1,"88":1,"115":1}}],["78",{"2":{"39":1}}],["749907",{"2":{"168":1}}],["74",{"2":{"39":1}}],["72",{"2":{"39":1}}],["726711609794",{"2":{"15":1}}],["76",{"2":{"39":1}}],["76085",{"2":{"15":1}}],["768946",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["70440582002419",{"2":{"170":1}}],["704405820024185",{"2":{"170":3}}],["704377648755",{"2":{"15":2}}],["700",{"2":{"14":1}}],["700454",{"2":{"6":1,"155":1,"156":1}}],["701141",{"2":{"6":1,"155":1,"156":1}}],["70",{"2":{"6":20,"39":1,"155":20,"156":20,"170":20}}],["738281",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["7",{"2":{"1":5,"6":5,"97":1,"136":1,"151":4,"152":4,"161":4,"172":1}}],["65533525026046",{"2":{"170":1}}],["655335250260467",{"2":{"170":3}}],["659942",{"2":{"6":1,"155":1,"156":1}}],["6area",{"2":{"44":2}}],["66",{"2":{"39":1}}],["668869",{"2":{"6":1,"155":1,"156":1}}],["64744840486518",{"2":{"172":3}}],["64",{"2":{"39":1,"151":2,"152":2}}],["646209",{"2":{"6":1,"155":1,"156":1}}],["629",{"2":{"171":1}}],["62",{"2":{"39":1}}],["624923",{"2":{"6":1,"155":1,"156":1}}],["61366192682",{"2":{"15":1}}],["614624",{"2":{"6":1,"155":1,"156":1}}],["605000000000004",{"2":{"151":2}}],["60",{"2":{"39":1,"151":2}}],["60000",{"2":{"15":3}}],["609817",{"2":{"6":1,"155":1,"156":1}}],["603637",{"2":{"6":2,"155":2,"156":2}}],["68",{"2":{"39":1}}],["682601",{"2":{"6":1,"155":1,"156":1}}],["683975",{"2":{"6":1,"155":1,"156":1}}],["69159119078359",{"2":{"172":3}}],["694274",{"2":{"6":1,"155":1,"156":1}}],["697021",{"2":{"6":1,"155":1,"156":1}}],["639343",{"2":{"6":1,"155":1,"156":1}}],["6",{"2":{"1":12,"3":4,"6":23,"51":3,"56":3,"97":1,"103":4,"136":3,"156":1,"161":9,"172":2}}],["51695367760999",{"2":{"172":1}}],["516953677609987",{"2":{"172":2}}],["51030066635026",{"2":{"170":4}}],["5e6",{"2":{"171":2}}],["55715336218991",{"2":{"172":1}}],["557153362189904",{"2":{"172":2}}],["55",{"2":{"170":3}}],["55494217175954",{"2":{"170":4}}],["57",{"2":{"151":4,"152":4}}],["57725",{"2":{"15":2}}],["5x",{"2":{"136":1}}],["563198",{"2":{"54":1}}],["56",{"2":{"39":1}}],["54",{"2":{"39":1,"170":19}}],["50",{"2":{"39":1,"151":4,"152":4,"170":3}}],["500000",{"2":{"171":1}}],["50000",{"2":{"15":1}}],["500",{"2":{"14":1,"171":1}}],["5d",{"2":{"25":1,"27":1}}],["52",{"2":{"39":1,"168":1}}],["52521",{"2":{"15":1}}],["52709",{"2":{"15":2}}],["594711",{"2":{"6":1,"155":1,"156":1}}],["590591",{"2":{"6":1,"155":1,"156":1}}],["595397",{"2":{"6":1,"155":1,"156":1}}],["535",{"2":{"151":4}}],["5355",{"2":{"151":2}}],["53333",{"2":{"15":4}}],["53",{"2":{"6":10,"151":2,"167":10}}],["58",{"2":{"39":1}}],["58059",{"2":{"15":2}}],["587158",{"2":{"6":2,"155":2,"156":2}}],["58375366067548",{"2":{"6":2,"53":1,"54":1}}],["584961",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["5",{"2":{"1":29,"3":4,"4":8,"6":84,"13":1,"39":1,"49":5,"50":8,"51":16,"56":18,"65":8,"69":8,"97":1,"103":4,"128":1,"136":2,"151":1,"152":1,"161":27,"170":32,"171":25,"178":1}}],["4983491639274692e6",{"2":{"171":2}}],["4986507085647392e6",{"2":{"171":2}}],["497205585568957e6",{"2":{"171":2}}],["4976022389592e6",{"2":{"171":2}}],["4957639801366436e6",{"2":{"171":2}}],["4940253560034204e6",{"2":{"171":2}}],["4946113281484335e6",{"2":{"171":2}}],["491990928929295e6",{"2":{"171":2}}],["4904357734399722e6",{"2":{"171":2}}],["4926709788709967e6",{"2":{"171":2}}],["4962554647802354e6",{"2":{"171":2}}],["499984780817334e6",{"2":{"171":2}}],["4997392479570867e6",{"2":{"171":2}}],["4991939151049731e6",{"2":{"171":2}}],["4994001399837343e6",{"2":{"171":2}}],["4998500087497458e6",{"2":{"171":2}}],["49",{"2":{"128":1}}],["43541888381864",{"2":{"172":3}}],["4326",{"2":{"171":2,"172":3}}],["43787",{"2":{"15":1}}],["439295815226",{"2":{"15":1}}],["434306",{"2":{"6":1,"155":1,"156":1}}],["4896621210021754e6",{"2":{"171":2}}],["489271",{"2":{"6":4,"167":4}}],["4870405593989636e6",{"2":{"171":2}}],["4879072738504685e6",{"2":{"171":2}}],["484003",{"2":{"126":4}}],["482551",{"2":{"126":4}}],["48268",{"2":{"15":1}}],["48",{"2":{"39":1}}],["48001",{"2":{"15":1}}],["45",{"2":{"39":2,"126":12,"170":2}}],["450",{"2":{"13":1}}],["458369",{"2":{"6":2,"155":2,"156":2}}],["42004014766201",{"2":{"170":1}}],["420040147662014",{"2":{"170":3}}],["4219350464667047e",{"2":{"170":4}}],["42",{"2":{"13":1,"14":1,"39":3}}],["426283",{"2":{"6":1,"155":1,"156":1}}],["400",{"2":{"39":3}}],["40000",{"2":{"15":1}}],["40",{"2":{"14":1,"39":3}}],["406224",{"2":{"6":1,"155":1,"156":1}}],["404504",{"2":{"6":1,"155":1,"156":1}}],["41544701408748197",{"2":{"170":1}}],["41",{"2":{"39":1,"172":20}}],["41878",{"2":{"15":1}}],["414248",{"2":{"6":1,"155":1,"156":1}}],["419406",{"2":{"6":1,"155":1,"156":1}}],["4493927459900552",{"2":{"170":1}}],["44121252392",{"2":{"15":1}}],["44",{"2":{"14":1,"39":2}}],["442901",{"2":{"6":1,"155":1,"156":1}}],["446339",{"2":{"6":1,"155":1,"156":1}}],["477985",{"2":{"126":4}}],["47",{"2":{"39":3}}],["473835",{"2":{"6":1,"155":1,"156":1}}],["472117",{"2":{"6":2,"155":2,"156":2}}],["46525251631344455",{"2":{"170":1}}],["465816",{"2":{"6":1,"155":1,"156":1}}],["46",{"2":{"39":3}}],["468107",{"2":{"6":1,"155":1,"156":1}}],["464547",{"2":{"6":6,"167":6}}],["4",{"2":{"1":11,"3":4,"6":15,"9":2,"13":2,"14":1,"33":1,"47":1,"72":1,"86":1,"89":1,"97":2,"116":1,"126":1,"136":3,"151":1,"158":1,"161":8,"168":1,"171":20,"174":2}}],["358421",{"2":{"168":1}}],["3585",{"2":{"151":1}}],["35",{"2":{"39":3}}],["354492",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["38042741557976",{"2":{"170":1}}],["380427415579764",{"2":{"170":3}}],["38",{"2":{"39":3}}],["3655999675063154",{"2":{"170":1}}],["36",{"2":{"39":2}}],["360",{"2":{"34":1}}],["36022",{"2":{"15":1}}],["327284472232776",{"2":{"172":3}}],["32610",{"2":{"171":3}}],["32",{"2":{"39":3}}],["377956",{"2":{"168":1}}],["37",{"2":{"39":5}}],["3497142366876638",{"2":{"170":1}}],["34",{"2":{"39":3}}],["31571636123306385",{"2":{"170":1}}],["31",{"2":{"39":2}}],["30151010318639",{"2":{"170":4}}],["30527612515520186",{"2":{"170":4}}],["300",{"2":{"65":1}}],["30",{"2":{"14":2,"39":3,"170":2}}],["3376428491230612",{"2":{"170":4}}],["3390",{"2":{"97":1}}],["33333333333",{"2":{"15":1}}],["333333333336",{"2":{"15":3}}],["33",{"2":{"6":20,"155":20,"156":20}}],["3d",{"2":{"4":1,"6":1,"40":2,"69":1,"136":1,"150":1}}],["3",{"2":{"1":13,"3":4,"5":1,"6":29,"14":2,"40":13,"43":6,"45":1,"51":6,"56":5,"68":1,"72":1,"86":1,"89":1,"97":2,"102":1,"116":1,"128":7,"136":3,"144":16,"151":4,"156":3,"158":2,"160":1,"161":11,"171":1,"172":1,"176":1}}],["39945867303846",{"2":{"172":3}}],["3995734698458635",{"2":{"170":1}}],["399918",{"2":{"6":2,"155":2,"156":2}}],["394759",{"2":{"6":1,"155":1,"156":1}}],["392466",{"2":{"6":1,"155":1,"156":1}}],["395332",{"2":{"6":1,"155":1,"156":1}}],["39",{"0":{"30":1},"2":{"0":1,"3":1,"4":5,"6":21,"7":1,"9":2,"17":2,"18":1,"19":1,"23":1,"29":1,"34":1,"36":1,"37":1,"38":1,"39":3,"40":2,"43":6,"44":3,"45":28,"47":1,"49":1,"50":1,"52":1,"53":4,"54":1,"57":2,"62":2,"66":4,"69":7,"74":1,"85":2,"91":2,"97":19,"103":1,"105":2,"108":2,"128":3,"129":2,"131":3,"132":1,"136":5,"142":6,"143":1,"151":6,"152":1,"154":1,"156":2,"164":2,"165":3,"166":6,"169":1,"170":6,"171":6,"172":4,"173":4,"174":5,"175":1,"177":1,"178":2}}],["2pi",{"2":{"170":1,"171":1,"172":1}}],["2nd",{"2":{"54":6}}],["2335447787454",{"2":{"172":1}}],["233544778745394",{"2":{"172":2}}],["23",{"2":{"39":3,"97":1}}],["23699059147",{"2":{"15":1}}],["28",{"2":{"39":2}}],["28083",{"2":{"15":2}}],["2658011835867806",{"2":{"170":1}}],["26745668457025",{"2":{"170":1}}],["267456684570245",{"2":{"170":3}}],["26",{"2":{"39":5,"97":2}}],["24989584635339165",{"2":{"170":1}}],["24279488312757858",{"2":{"170":4}}],["24",{"2":{"39":7,"97":1,"172":9}}],["274364",{"2":{"51":1,"53":1,"56":1}}],["274363",{"2":{"51":1,"53":1,"56":1}}],["27",{"2":{"39":2}}],["275543",{"2":{"6":6,"167":6}}],["2d",{"2":{"25":1,"27":1,"150":1}}],["2^",{"2":{"14":1}}],["2158594260436434",{"2":{"170":1}}],["215118",{"2":{"6":4,"167":4}}],["21664550952386064",{"2":{"170":4}}],["21",{"2":{"39":4,"97":2,"172":40}}],["21427",{"2":{"11":5}}],["295828190107045",{"2":{"172":1}}],["29582819010705",{"2":{"172":2}}],["299820032397223",{"2":{"170":1}}],["29",{"2":{"39":3,"168":1}}],["29th",{"0":{"8":1},"1":{"9":1,"10":1}}],["298",{"2":{"6":2,"152":2}}],["20340",{"2":{"174":1}}],["20682326747054",{"2":{"172":1}}],["206823267470536",{"2":{"172":2}}],["20093817218219",{"2":{"170":1}}],["200938172182195",{"2":{"170":3}}],["2018",{"2":{"97":1}}],["2017",{"2":{"6":1,"40":1}}],["20",{"2":{"39":3,"97":2,"170":60,"172":1}}],["2024",{"0":{"7":1,"8":1},"1":{"9":1,"10":1}}],["20th",{"0":{"7":1}}],["25",{"2":{"39":3,"71":1,"97":1,"115":1,"172":12}}],["258",{"2":{"11":1}}],["25px",{"2":{"6":2}}],["257223563`",{"2":{"152":1}}],["257223563",{"2":{"6":2,"152":1}}],["22",{"2":{"39":3,"97":1}}],["22168",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["224758",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["2",{"2":{"1":19,"3":9,"5":1,"6":50,"13":1,"14":1,"15":3,"25":2,"27":2,"34":3,"37":1,"39":6,"40":32,"43":2,"44":4,"45":10,"46":6,"47":7,"49":1,"50":2,"54":2,"56":1,"60":1,"61":1,"62":3,"63":1,"65":1,"66":3,"69":4,"72":2,"83":2,"86":2,"88":2,"89":3,"97":11,"116":2,"126":2,"128":23,"136":5,"145":1,"153":1,"156":5,"158":7,"159":7,"160":5,"161":18,"167":11,"168":1,"170":7,"171":6,"172":10,"173":1}}],["1st",{"2":{"54":6}}],["198232937815632",{"2":{"172":1}}],["19823293781563178",{"2":{"172":2}}],["1999466709331708",{"2":{"170":1}}],["1998",{"2":{"51":1,"53":1,"56":1}}],["19",{"2":{"39":2,"97":2}}],["11591614996189725",{"2":{"170":1}}],["11966707868197",{"2":{"170":1}}],["119667078681967",{"2":{"170":3}}],["110m",{"2":{"171":2}}],["110",{"2":{"61":1,"171":1}}],["11",{"2":{"15":2,"39":2,"97":1}}],["1145",{"2":{"51":1,"53":1,"56":1}}],["114",{"2":{"7":1}}],["16589608273778408",{"2":{"170":1}}],["165644",{"2":{"126":2}}],["16692537029320365",{"2":{"170":4}}],["166644",{"2":{"126":2}}],["163434",{"2":{"126":2}}],["169356",{"2":{"126":2}}],["164434",{"2":{"126":2}}],["16111",{"2":{"15":1}}],["16",{"2":{"13":1,"14":1,"39":2,"97":2}}],["180",{"2":{"34":1,"126":1}}],["18593721105",{"2":{"15":1}}],["18",{"2":{"13":1,"14":1,"39":3,"97":2}}],["1em",{"2":{"6":2}}],["1px",{"2":{"6":2}}],["13309630561615",{"2":{"172":3}}],["13401805979",{"2":{"15":2}}],["13",{"2":{"6":3,"39":1,"51":1,"56":2,"97":1}}],["10n",{"2":{"171":1}}],["10832215707812454",{"2":{"170":4}}],["10^9",{"2":{"13":1}}],["1000000",{"2":{"171":1}}],["1000",{"2":{"13":2,"151":2,"171":1,"176":2}}],["100",{"2":{"6":2,"14":3,"60":1,"62":1,"128":2,"168":1}}],["10",{"2":{"6":14,"11":1,"36":1,"39":5,"49":4,"50":10,"51":2,"53":1,"56":2,"68":2,"97":3,"102":2,"152":1,"156":4,"170":1}}],["14182952335953",{"2":{"172":1}}],["14182952335952814",{"2":{"172":2}}],["14404531208901e",{"2":{"172":2}}],["1499775010124783",{"2":{"170":1}}],["1464721641710074",{"2":{"170":4}}],["14",{"2":{"3":1,"6":5,"39":2,"53":2,"54":2,"97":1,"99":1,"100":1,"151":2,"152":2}}],["15488729606723",{"2":{"172":3}}],["15",{"2":{"3":1,"6":4,"39":1,"49":1,"50":1,"53":1,"54":1,"97":1,"99":1,"100":1}}],["17893116483784577",{"2":{"172":2}}],["17289902010158",{"2":{"170":1}}],["172899020101585",{"2":{"170":3}}],["170356",{"2":{"126":2}}],["17",{"2":{"3":1,"6":3,"39":3,"53":1,"54":1,"97":2,"99":1,"100":1}}],["125",{"2":{"6":2,"53":1,"54":1}}],["127",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1,"171":1}}],["123",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["12636633117296836",{"2":{"172":2}}],["126",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["12",{"2":{"3":1,"6":3,"39":2,"53":1,"54":1,"97":1,"99":1,"100":1,"177":1}}],["124",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["1",{"2":{"1":8,"3":38,"6":63,"13":1,"14":4,"15":1,"33":4,"34":15,"36":7,"38":2,"39":11,"40":16,"43":4,"44":7,"45":72,"46":9,"47":15,"49":1,"50":10,"52":3,"54":9,"56":4,"57":11,"62":6,"65":7,"66":6,"69":16,"71":2,"72":6,"74":2,"75":2,"83":12,"85":2,"86":8,"88":2,"89":5,"97":38,"103":6,"105":4,"106":5,"108":1,"115":2,"116":6,"126":16,"128":27,"136":10,"138":12,"139":2,"145":9,"152":1,"153":4,"156":8,"158":15,"159":3,"160":15,"161":6,"167":9,"170":8,"171":44,"172":12,"173":1,"176":8,"177":3}}],["bx",{"2":{"126":2}}],["b2y",{"2":{"54":4}}],["b2x",{"2":{"54":4}}],["b2",{"2":{"54":47,"66":3,"103":6}}],["b``",{"2":{"52":1}}],["b`",{"2":{"52":3,"54":4,"57":4}}],["bigger",{"2":{"45":1}}],["bit",{"2":{"25":1,"27":1,"160":8,"170":2}}],["b1y",{"2":{"54":7}}],["b1x",{"2":{"54":7}}],["b1",{"2":{"45":8,"54":63,"103":6}}],["building",{"2":{"170":1}}],["build",{"2":{"45":13,"50":1,"51":1,"53":1,"56":1,"131":3,"132":1,"151":2,"159":1,"160":1}}],["built",{"2":{"17":1,"20":1}}],["buffers",{"2":{"128":1}}],["buffered",{"2":{"41":2}}],["buffering",{"2":{"40":1,"41":1}}],["buffer",{"0":{"41":1},"2":{"31":2,"41":5,"44":2,"45":1,"127":1}}],["but",{"2":{"1":2,"3":5,"4":3,"6":15,"18":1,"22":1,"25":1,"27":1,"34":1,"36":1,"37":1,"47":1,"54":2,"57":2,"62":2,"63":2,"69":4,"74":2,"97":1,"102":1,"103":5,"105":1,"106":1,"109":2,"110":1,"115":1,"126":1,"127":1,"128":1,"131":1,"134":1,"136":16,"146":1,"147":1,"153":1,"156":1,"164":1,"166":2,"171":2,"172":2,"174":1,"175":1,"176":1,"177":2}}],["b>",{"2":{"6":4}}],["bloat",{"2":{"172":1}}],["block",{"2":{"170":1}}],["blob",{"2":{"6":2,"156":1}}],["blue",{"2":{"14":1,"49":1,"68":2,"71":2,"88":2,"102":2,"115":2,"176":2}}],["black",{"2":{"6":2,"49":1,"171":1}}],["breaks",{"2":{"145":1}}],["break",{"2":{"45":3,"47":1,"52":2,"69":4,"97":11,"103":1,"128":6,"145":2}}],["brevity",{"2":{"40":1}}],["br>",{"2":{"6":2}}],["broadcasting",{"2":{"6":1,"40":1}}],["broken",{"2":{"3":1,"6":1,"83":1}}],["balancing",{"2":{"136":2}}],["barrier",{"2":{"136":1}}],["barycentric",{"0":{"5":1,"38":1,"40":1},"1":{"39":1,"40":1},"2":{"0":6,"5":10,"6":17,"9":1,"31":1,"38":9,"39":4,"40":52}}],["basicsgeoms",{"2":{"136":1}}],["basic",{"2":{"128":1}}],["base",{"2":{"31":4,"40":15,"41":1,"45":2,"128":6,"136":5,"148":1,"152":2,"153":1,"164":1,"166":3}}],["based",{"2":{"4":2,"6":3,"19":1,"34":2,"37":2,"39":2,"44":1,"47":1,"66":2,"69":1,"75":1,"89":1,"97":2,"103":1,"106":1,"116":1,"164":1,"174":1,"175":1,"176":1}}],["backs",{"2":{"50":4}}],["backwards",{"2":{"45":1,"52":1,"54":1,"57":1}}],["backing",{"2":{"45":1}}],["backend",{"2":{"41":2,"166":1}}],["back",{"2":{"6":1,"18":1,"22":1,"23":1,"50":4,"166":1}}],["b",{"2":{"3":2,"4":7,"6":13,"45":206,"47":9,"51":26,"52":18,"53":26,"54":77,"55":3,"56":27,"57":39,"69":29,"97":2,"103":22,"173":1}}],["box",{"2":{"46":2,"47":3,"176":1}}],["bounce",{"2":{"45":8,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1}}],["bouncings",{"2":{"45":1}}],["bouncing",{"2":{"45":13,"52":3,"54":4,"57":4}}],["bound",{"2":{"55":1}}],["bounding",{"2":{"45":1,"46":2,"47":3}}],["boundscheck",{"2":{"40":14}}],["bounds",{"2":{"6":1,"128":4}}],["boundaries",{"2":{"3":2,"6":2,"85":2,"88":1,"89":1,"97":2,"99":1,"100":1,"128":1}}],["boundary",{"2":{"3":7,"6":7,"65":1,"71":1,"72":1,"74":1,"75":3,"78":4,"83":9,"86":2,"89":2,"91":1,"92":6,"93":3,"97":18,"105":2,"106":4,"108":3,"109":5,"110":3,"111":3,"115":1,"116":3}}],["bold",{"2":{"41":1,"148":1,"152":1}}],["border",{"2":{"6":8}}],["both",{"2":{"3":5,"6":6,"45":2,"54":4,"56":1,"57":1,"62":2,"65":1,"69":3,"72":1,"83":4,"89":1,"97":2,"103":1,"110":1,"116":1,"151":1,"153":1}}],["booltype",{"2":{"136":3,"153":1,"165":3}}],["booleans",{"2":{"45":1,"97":2}}],["boolean",{"2":{"24":2,"45":1,"52":1,"54":1,"57":1,"136":1,"165":1,"175":1}}],["boolsastypes",{"0":{"24":1,"165":1},"2":{"153":2,"165":6}}],["bools",{"2":{"10":1}}],["bool",{"2":{"3":17,"4":14,"6":40,"45":3,"69":17,"72":1,"75":1,"83":13,"86":2,"89":1,"97":2,"100":1,"103":10,"106":2,"116":1,"126":7,"128":6,"153":2,"165":2,"167":5}}],["bypred",{"2":{"178":1}}],["by",{"0":{"79":1,"80":1,"120":1},"2":{"1":3,"3":2,"4":8,"6":31,"7":1,"17":1,"18":2,"19":1,"22":1,"24":1,"25":1,"26":1,"27":1,"33":1,"34":6,"36":1,"37":1,"40":4,"41":1,"43":5,"44":4,"45":14,"46":1,"47":6,"49":1,"50":6,"51":1,"53":1,"54":5,"56":4,"57":3,"63":2,"66":5,"69":8,"72":1,"74":1,"75":1,"79":2,"80":2,"81":1,"82":2,"85":1,"96":2,"97":10,"126":2,"128":4,"131":2,"136":7,"142":2,"143":1,"145":3,"146":1,"147":2,"148":1,"150":1,"152":3,"153":1,"154":1,"156":1,"157":1,"158":3,"159":1,"161":1,"170":1,"171":1,"172":1,"174":1,"175":2,"176":1,"177":2,"178":1}}],["berlin",{"2":{"177":1}}],["bearing",{"2":{"126":4}}],["beauty",{"2":{"9":1}}],["better",{"2":{"83":1,"136":2,"156":1}}],["between",{"2":{"4":4,"6":18,"23":1,"34":2,"40":13,"45":1,"47":18,"51":1,"52":4,"53":1,"54":11,"56":2,"57":4,"66":8,"69":1,"97":4,"103":4,"128":1,"152":3,"153":1,"157":2,"158":2,"159":1,"171":1,"175":2,"176":1}}],["been",{"2":{"52":1,"128":1,"129":2,"165":1}}],["because",{"2":{"45":1,"63":1,"129":1,"163":1}}],["become",{"2":{"22":1}}],["being",{"2":{"34":1,"54":1,"97":1,"103":1,"143":1}}],["behind",{"2":{"25":1,"26":1,"27":1,"39":1,"129":1}}],["behaviour",{"2":{"6":1,"18":1,"23":1,"156":1}}],["best",{"2":{"19":1,"136":2,"156":1}}],["beware",{"2":{"18":1}}],["benchmarking",{"2":{"152":1,"156":1}}],["benchmarkgroup",{"2":{"152":2,"156":3}}],["benchmark",{"0":{"152":1,"156":1},"2":{"152":1,"156":1}}],["benchmarktools",{"2":{"13":1,"152":1,"156":1}}],["benchmarks",{"2":{"9":2}}],["beginning",{"2":{"47":1,"170":1}}],["begin+1",{"2":{"40":5}}],["begin",{"2":{"9":1,"40":7,"136":2,"157":1,"174":1}}],["before",{"2":{"6":4,"40":1,"51":1,"53":1,"54":1,"56":1,"156":1,"171":1}}],["below",{"2":{"6":2,"17":1,"41":1,"141":1,"158":1,"159":1,"160":1,"174":1}}],["be",{"2":{"1":7,"3":3,"4":11,"5":4,"6":66,"7":1,"9":1,"13":2,"20":3,"23":2,"24":1,"25":3,"26":1,"27":3,"34":8,"37":7,"38":2,"39":1,"40":10,"41":2,"43":1,"44":3,"45":14,"46":1,"47":2,"50":1,"51":7,"52":4,"53":7,"54":12,"56":6,"57":5,"63":6,"65":2,"66":4,"69":15,"75":6,"85":2,"86":1,"89":6,"97":21,"103":2,"106":6,"116":6,"118":1,"119":1,"120":1,"121":1,"126":2,"128":1,"131":2,"134":2,"135":2,"136":12,"138":1,"139":1,"140":1,"141":3,"142":4,"143":2,"145":2,"147":3,"148":1,"149":1,"150":1,"152":8,"153":2,"156":10,"158":1,"160":3,"161":1,"165":1,"166":2,"170":2,"172":1,"175":4}}],["human",{"2":{"174":1}}],["hull`",{"2":{"63":2}}],["hulls",{"2":{"6":1,"58":1,"63":1}}],["hull",{"0":{"58":1,"60":1,"61":1},"1":{"59":1,"60":1,"61":1,"62":1,"63":1},"2":{"0":1,"6":8,"31":2,"58":2,"60":4,"61":1,"62":10,"63":15}}],["hypot",{"2":{"153":1}}],["h2",{"2":{"97":6}}],["h1",{"2":{"97":11}}],["hm",{"2":{"39":2}}],["h",{"2":{"34":2,"45":2,"57":8}}],["href=",{"2":{"6":2}}],["https",{"2":{"6":2,"51":1,"53":1,"54":1,"56":1,"63":1,"97":2,"158":1}}],["high",{"2":{"174":1}}],["highest",{"2":{"172":1}}],["higher",{"2":{"6":1,"63":1}}],["hit",{"2":{"45":1,"136":5}}],["hits",{"2":{"18":1}}],["hidedecorations",{"2":{"39":2}}],["hinter",{"2":{"31":3,"41":1,"148":1,"152":1}}],["hint",{"2":{"31":3,"41":1,"152":1}}],["hinge=2",{"2":{"53":1}}],["hinge`",{"2":{"53":1}}],["hinge",{"2":{"6":1,"45":1,"54":13,"97":15}}],["hist",{"2":{"13":1}}],["histogram",{"2":{"13":1}}],["hcat",{"2":{"6":1}}],["heavily",{"2":{"136":1}}],["heatmap",{"2":{"13":5,"14":6,"39":2,"65":2,"128":1}}],["help",{"2":{"165":1}}],["helpers",{"0":{"45":1},"2":{"83":1,"103":1}}],["helper",{"0":{"52":1,"54":1,"57":1},"2":{"44":1,"45":1,"50":1}}],["helps",{"2":{"30":1}}],["held",{"2":{"1":1,"6":1,"136":1}}],["here",{"2":{"6":2,"9":1,"13":1,"14":1,"20":1,"40":1,"54":1,"63":2,"83":1,"128":2,"136":5,"138":1,"152":1,"171":2,"175":2,"176":3}}],["hours",{"2":{"177":1}}],["hood",{"2":{"174":1}}],["hook",{"2":{"6":1,"156":1}}],["home",{"2":{"171":1}}],["horizontal",{"2":{"47":1,"54":1,"128":1,"156":1}}],["hormann",{"0":{"52":1,"54":1,"57":1},"2":{"6":2,"40":2,"45":3,"50":2,"51":1,"53":1,"56":1}}],["how",{"0":{"26":1},"2":{"6":2,"26":2,"36":1,"40":1,"45":1,"54":1,"69":1,"128":2,"131":1,"136":1,"146":1,"156":1,"171":1,"174":1,"175":2,"176":2,"177":1,"178":1}}],["however",{"2":{"3":1,"6":2,"34":1,"40":1,"44":1,"45":1,"54":1,"62":1,"65":1,"69":1,"71":1,"86":1,"143":1}}],["hole",{"2":{"34":1,"37":3,"39":2,"40":9,"44":4,"45":60,"47":3,"51":6,"53":2,"57":15,"66":3,"78":1,"79":1,"80":1,"97":33,"128":5,"139":2,"170":1}}],["holes=",{"2":{"45":1}}],["holes",{"2":{"4":3,"5":1,"6":4,"9":2,"34":2,"36":1,"40":2,"44":1,"45":19,"50":4,"51":2,"53":2,"56":6,"57":29,"66":3,"69":3,"94":1,"97":11,"118":1,"128":17,"139":2,"170":4}}],["holding",{"2":{"6":1,"128":1,"136":2}}],["holds",{"2":{"6":1,"45":1,"154":1,"164":2}}],["hold",{"2":{"6":1,"128":1,"156":1,"165":1,"174":1}}],["halign",{"2":{"156":1}}],["half",{"2":{"46":2}}],["hail",{"2":{"139":1}}],["handling",{"0":{"148":1},"2":{"129":1}}],["handler",{"2":{"41":1,"148":1}}],["handle",{"2":{"31":1,"126":1,"134":2,"136":1,"171":1}}],["handled",{"2":{"18":1}}],["hao",{"2":{"97":1}}],["had",{"2":{"51":1,"53":1,"69":1,"151":1,"165":1}}],["happens",{"2":{"45":1}}],["happen",{"2":{"24":1}}],["have",{"2":{"3":3,"4":9,"6":17,"19":1,"23":1,"34":2,"37":3,"40":6,"41":1,"45":4,"54":1,"63":2,"65":1,"66":2,"69":10,"97":5,"102":1,"103":3,"105":1,"106":1,"127":1,"128":1,"129":2,"131":2,"135":1,"136":4,"156":1,"158":1,"165":1,"166":1,"170":1,"171":1,"175":1,"176":1,"177":3}}],["haskey",{"2":{"166":1}}],["hash",{"2":{"128":1}}],["hasn",{"2":{"128":1}}],["hassle",{"2":{"1":1,"6":1,"161":1}}],["has",{"2":{"1":4,"6":4,"33":1,"36":2,"40":2,"45":2,"52":2,"54":1,"57":1,"65":1,"66":1,"69":11,"108":1,"126":1,"136":4,"137":1,"151":2,"160":1,"171":1}}],["xticklabelsvisible",{"2":{"171":1}}],["xticklabelrotation",{"2":{"13":2}}],["xoffset",{"2":{"170":4,"172":1}}],["x=x",{"2":{"167":1}}],["x`",{"2":{"136":1}}],["xvec",{"2":{"128":4}}],["xbounds",{"2":{"128":4}}],["xhalf",{"2":{"128":2}}],["xlast",{"2":{"66":3}}],["xfirst",{"2":{"66":5}}],["x0",{"2":{"66":5}}],["xn",{"2":{"47":4}}],["xind+1",{"2":{"128":1}}],["xind",{"2":{"128":2}}],["xinterior",{"2":{"44":2}}],["xi−xi−1",{"2":{"6":1}}],["xcentroid",{"2":{"44":13}}],["xrange",{"2":{"39":3,"65":2}}],["xautolimits",{"2":{"39":2}}],["xp2",{"2":{"34":5}}],["x2",{"2":{"6":3,"40":4,"44":2,"47":18,"66":8,"83":10,"97":5,"103":4,"128":5,"153":6,"167":2}}],["x26",{"2":{"6":4,"34":2,"37":6,"40":1,"41":4,"45":58,"47":36,"51":4,"52":4,"54":24,"57":2,"66":3,"69":14,"81":2,"82":2,"83":48,"95":2,"96":2,"97":170,"103":22,"108":2,"112":2,"113":2,"122":2,"123":2,"126":4,"128":12,"141":2,"145":6,"148":2,"152":2,"158":10,"159":2,"167":4,"175":1}}],["x1",{"2":{"6":4,"40":3,"44":2,"47":22,"66":8,"83":11,"97":6,"103":5,"128":5,"153":7,"167":2}}],["xs",{"2":{"6":3,"47":4,"128":30,"167":4}}],["xmax",{"2":{"6":1,"46":2,"47":48}}],["xmin",{"2":{"6":1,"46":2,"47":49}}],["x3c",{"2":{"5":1,"6":36,"31":1,"34":4,"37":2,"40":66,"45":17,"47":11,"50":3,"51":1,"53":1,"54":6,"56":1,"65":1,"66":13,"69":2,"83":33,"97":13,"103":10,"126":1,"128":4,"131":2,"136":20,"139":2,"142":3,"145":5,"152":2,"157":2,"158":6,"159":3,"160":9,"164":4,"165":2,"178":1}}],["xy`",{"2":{"147":1}}],["xy",{"2":{"1":4,"40":1,"147":3}}],["x",{"2":{"1":4,"4":1,"6":6,"7":1,"9":5,"11":6,"13":11,"14":10,"15":4,"34":9,"37":2,"39":8,"43":1,"44":10,"45":21,"46":1,"47":8,"50":6,"52":9,"54":18,"57":9,"65":2,"66":7,"69":3,"83":21,"97":16,"103":7,"126":11,"128":2,"129":2,"136":17,"141":2,"146":4,"147":1,"149":2,"153":2,"156":2,"158":2,"160":1,"161":2,"162":2,"165":4,"167":33,"170":6,"171":2,"172":2,"175":1,"177":2}}],["=>",{"2":{"136":2}}],["=float64",{"2":{"44":3,"53":1,"56":1}}],["=false",{"2":{"34":1}}],["===",{"2":{"83":8,"126":4}}],["==",{"2":{"9":1,"19":1,"34":4,"37":2,"40":9,"41":2,"44":1,"45":34,"47":30,"52":1,"54":20,"56":2,"57":1,"61":1,"65":1,"69":16,"97":44,"103":2,"126":3,"128":18,"136":1,"139":1,"141":1,"145":1,"148":1,"152":2,"156":1,"160":3}}],["=",{"2":{"1":5,"3":17,"4":7,"5":2,"6":62,"11":1,"13":19,"14":33,"15":18,"31":4,"33":4,"34":56,"36":6,"37":25,"39":35,"40":110,"41":3,"43":6,"44":36,"45":324,"46":6,"47":96,"49":7,"50":29,"51":21,"52":30,"53":18,"54":143,"56":21,"57":78,"60":6,"61":4,"62":14,"63":4,"65":15,"66":52,"68":7,"69":40,"71":7,"72":3,"74":4,"75":23,"76":3,"77":7,"78":14,"79":14,"80":4,"81":2,"82":2,"83":57,"85":5,"86":3,"88":7,"89":18,"90":3,"91":11,"92":17,"93":9,"94":3,"95":2,"96":2,"97":189,"99":3,"100":3,"102":7,"103":40,"105":3,"106":22,"107":3,"108":9,"109":14,"110":10,"111":6,"112":2,"113":2,"115":7,"116":22,"117":3,"118":11,"119":14,"120":14,"121":4,"122":2,"123":2,"126":32,"128":110,"129":1,"133":4,"136":93,"138":2,"139":4,"141":9,"144":3,"145":30,"148":2,"149":1,"151":16,"152":21,"153":18,"154":2,"155":5,"156":60,"157":11,"158":49,"159":7,"160":43,"161":2,"162":1,"164":6,"165":2,"166":3,"167":44,"168":7,"170":45,"171":19,"172":13,"173":3,"174":4,"176":12,"177":6,"178":2}}],["utm",{"2":{"171":1}}],["utility",{"0":{"167":1},"2":{"40":1,"136":2}}],["utils",{"0":{"160":1},"2":{"31":1}}],["u2",{"2":{"97":4}}],["u1",{"2":{"97":4}}],["update",{"2":{"45":6,"128":10}}],["updated",{"2":{"45":6,"136":3}}],["updates",{"2":{"40":1}}],["up",{"2":{"45":2,"54":1,"97":1,"110":1,"134":1,"144":1,"158":2,"170":2}}],["upper",{"2":{"6":1,"128":1,"176":1}}],["uv",{"2":{"40":1}}],["u>",{"2":{"6":2}}],["u>geometryops",{"2":{"6":2}}],["usage",{"2":{"177":1}}],["usa",{"0":{"61":1},"2":{"61":4,"156":15,"177":3}}],["us",{"2":{"37":1,"63":1,"171":1,"177":1}}],["usually",{"2":{"6":1,"26":2,"58":1,"131":1,"136":1,"174":1}}],["usual",{"2":{"6":1,"139":1,"142":1}}],["usecases",{"2":{"25":1,"27":1}}],["uses",{"2":{"6":2,"58":1,"63":1,"97":1,"147":1,"152":1,"156":1,"174":1}}],["users",{"2":{"31":1,"129":1,"143":1}}],["user",{"2":{"6":12,"23":1,"44":1,"51":3,"53":3,"56":3,"157":1,"158":1,"159":1,"175":1}}],["useful",{"2":{"6":10,"40":1,"128":1,"150":1,"153":1,"156":2,"166":1}}],["used",{"2":{"1":1,"5":1,"6":8,"34":1,"37":1,"38":1,"40":1,"44":2,"45":7,"47":1,"50":1,"54":1,"65":1,"66":1,"69":1,"103":1,"128":2,"131":1,"136":3,"137":1,"153":1,"156":1,"158":2,"163":2,"164":1,"171":1,"174":1,"175":2,"176":1}}],["use",{"2":{"1":2,"4":1,"5":1,"6":10,"11":1,"20":1,"23":1,"26":1,"40":1,"45":1,"57":1,"63":2,"83":2,"103":1,"127":1,"128":1,"133":1,"136":7,"139":1,"146":1,"151":1,"153":1,"156":1,"158":2,"166":3,"170":1,"174":1,"175":2,"178":2}}],["using",{"0":{"171":1},"2":{"1":4,"4":1,"5":3,"6":12,"11":4,"13":4,"14":1,"15":1,"31":6,"33":1,"34":1,"36":2,"37":2,"39":4,"40":7,"41":3,"43":2,"44":1,"45":5,"46":2,"47":1,"49":2,"50":1,"52":3,"54":4,"55":1,"57":3,"60":1,"61":2,"62":1,"63":2,"65":2,"66":2,"68":2,"69":1,"71":2,"72":1,"74":2,"75":1,"82":1,"83":1,"85":2,"86":1,"88":2,"89":1,"96":1,"97":1,"99":2,"100":1,"102":2,"103":1,"105":2,"106":1,"113":1,"115":2,"116":1,"123":1,"126":1,"127":1,"128":5,"129":2,"134":1,"136":4,"139":1,"142":1,"145":1,"146":1,"147":1,"148":3,"149":2,"151":1,"152":5,"153":1,"156":3,"158":1,"160":1,"161":4,"162":2,"166":2,"167":1,"168":1,"169":4,"170":1,"172":1,"173":2,"175":1,"176":4,"177":2}}],["until",{"2":{"128":3,"134":1,"158":1,"166":1}}],["unprocessed",{"2":{"45":1}}],["unknown",{"2":{"45":4,"47":15}}],["unknown=3",{"2":{"45":1}}],["unmatched",{"2":{"45":9,"47":26}}],["understand",{"2":{"163":1}}],["under",{"2":{"37":2,"174":1}}],["undergrad",{"2":{"9":1}}],["undef",{"2":{"34":2,"45":1,"157":1,"158":1,"160":2,"167":2}}],["unless",{"2":{"22":1,"45":1,"52":2,"54":2,"57":2}}],["unlike",{"2":{"18":1,"163":1}}],["unstable",{"2":{"13":1,"136":1,"165":1}}],["unneeded",{"2":{"6":3,"45":1,"51":2,"53":2,"56":2}}],["unnecessary",{"2":{"6":3,"128":1,"157":1,"158":1,"159":1}}],["universal",{"2":{"171":1}}],["united",{"2":{"156":1}}],["unify",{"2":{"25":1,"27":1}}],["unique",{"2":{"6":2,"54":3,"142":2,"145":2}}],["unioning",{"2":{"57":1}}],["unionintersectingpolygons",{"2":{"0":1,"6":8,"51":1,"52":2,"53":1,"54":2,"56":1,"57":2,"142":2,"143":2,"144":1,"145":4}}],["unions",{"0":{"57":1},"2":{"18":1,"164":1}}],["union",{"0":{"56":1},"2":{"0":1,"1":2,"3":2,"4":4,"6":22,"11":3,"23":2,"31":1,"34":2,"37":1,"40":1,"44":4,"45":7,"47":1,"53":2,"56":18,"57":30,"66":1,"69":8,"77":2,"78":4,"79":1,"81":2,"82":1,"91":2,"92":6,"95":2,"96":1,"103":4,"108":2,"109":4,"110":1,"112":2,"113":1,"118":2,"119":4,"120":1,"122":2,"123":1,"126":1,"128":5,"129":1,"134":3,"136":6,"142":1,"143":1,"145":9,"153":4,"156":2,"157":3,"158":3,"159":3,"164":4,"167":1}}],["unchanged",{"2":{"1":1,"6":2,"136":1,"156":1}}],["unwrap",{"2":{"0":1,"6":3,"131":1,"136":16}}],["nselected",{"2":{"160":3}}],["nmax",{"2":{"160":2}}],["nice",{"2":{"158":1}}],["null",{"2":{"152":1}}],["numeric",{"2":{"11":1}}],["numbers",{"2":{"6":1,"7":1,"38":2,"40":1,"152":1}}],["number=6",{"2":{"6":1,"155":1,"156":1}}],["number",{"2":{"6":11,"40":1,"45":2,"50":1,"58":1,"62":1,"65":1,"69":2,"97":2,"150":1,"151":1,"153":1,"156":2,"157":4,"158":7,"159":4,"160":12}}],["n+1",{"2":{"138":1}}],["nfeature",{"2":{"136":2}}],["nkeys",{"2":{"128":8}}],["nc",{"2":{"97":13}}],["ncoord",{"2":{"69":2}}],["nl",{"2":{"97":11}}],["nhole",{"2":{"45":2,"51":2,"53":2,"56":2,"57":1,"69":2}}],["nbpts",{"2":{"45":2}}],["nbsp",{"2":{"1":4,"3":9,"4":8,"5":3,"6":89,"131":3,"141":1,"142":4}}],["ngeom",{"2":{"44":1,"136":3,"167":1}}],["nt",{"2":{"166":2}}],["ntasks",{"2":{"136":6}}],["nthreads",{"2":{"136":3}}],["nthe",{"2":{"41":1,"148":1,"152":1}}],["ntuple",{"2":{"40":3,"153":1}}],["n2",{"2":{"40":8,"69":10}}],["n1",{"2":{"40":8,"69":9}}],["np2",{"2":{"83":4}}],["npolygon",{"2":{"52":1,"69":3,"145":2}}],["npoints",{"2":{"34":6,"45":5,"97":3,"152":6,"158":7}}],["npoint",{"2":{"6":1,"34":2,"36":1,"37":1,"47":2,"62":2,"66":1,"69":6,"83":6,"97":6,"108":1,"126":2,"139":1,"152":3,"153":1,"156":14,"160":1,"167":13}}],["npts",{"2":{"45":6,"158":3}}],["np",{"2":{"37":2,"66":5}}],["n",{"2":{"6":1,"9":1,"38":2,"40":36,"41":2,"45":51,"50":10,"56":4,"57":4,"97":11,"108":2,"126":6,"128":5,"138":1,"145":25,"148":2,"152":2,"153":3,"156":2,"160":7,"167":32}}],["naive",{"2":{"55":1}}],["napts",{"2":{"45":3}}],["navigate",{"0":{"26":1}}],["natearth2",{"2":{"171":1}}],["natural",{"2":{"156":1,"171":2,"175":1}}],["naturalearth",{"2":{"11":2,"61":2,"156":3,"171":1}}],["nature",{"2":{"128":1}}],["native",{"2":{"6":1,"127":1,"166":4,"174":1}}],["nan",{"2":{"9":1}}],["named",{"2":{"136":1}}],["namedtuple",{"2":{"22":2,"136":2,"166":2}}],["name",{"2":{"6":1,"31":2,"156":1,"166":1,"173":1,"174":2,"177":1}}],["names",{"2":{"6":1,"31":3,"136":6,"166":1}}],["nodestatus",{"2":{"128":6}}],["nodes",{"2":{"45":1,"128":4}}],["node",{"2":{"45":26,"128":17}}],["north",{"2":{"47":12}}],["nor",{"2":{"41":1,"148":1,"152":1}}],["normalized",{"2":{"40":1}}],["normalize",{"2":{"40":1}}],["norm",{"2":{"6":1,"40":22}}],["now",{"2":{"6":1,"13":1,"25":1,"27":1,"36":1,"39":2,"40":4,"41":1,"45":1,"50":1,"57":1,"58":1,"66":1,"126":1,"128":2,"144":1,"150":1,"151":3,"152":1,"156":1,"170":5,"171":6,"172":2,"173":1,"174":3,"176":2}}],["no",{"2":{"6":6,"34":1,"40":2,"45":4,"51":1,"52":1,"53":1,"54":14,"56":1,"69":2,"75":3,"89":3,"97":2,"106":2,"108":1,"110":1,"111":2,"116":2,"118":1,"119":3,"120":3,"121":1,"127":1,"128":2,"129":1,"136":3,"150":1,"152":2,"153":1,"156":1,"166":1,"174":1}}],["nonzero",{"2":{"153":1}}],["none",{"2":{"6":4,"45":1,"50":1,"51":1,"53":1,"56":1,"57":1,"83":4,"88":1}}],["nondimensional",{"2":{"6":1,"152":1}}],["nonintersecting",{"2":{"6":1,"23":1,"142":1,"145":1}}],["non",{"2":{"3":2,"6":2,"22":1,"38":2,"45":15,"51":2,"52":1,"53":1,"54":4,"56":1,"57":2,"65":1,"103":2,"110":1,"134":1,"165":1}}],["note",{"2":{"4":4,"6":11,"19":1,"29":1,"34":1,"37":2,"40":1,"43":2,"44":2,"45":3,"47":1,"50":2,"52":3,"54":5,"57":3,"63":1,"66":1,"69":5,"97":1,"102":1,"103":1,"147":1,"153":1,"157":1,"158":2,"159":1,"165":1,"171":2,"172":1}}],["not",{"0":{"127":1},"2":{"1":2,"3":8,"4":1,"6":18,"18":1,"19":1,"22":1,"24":1,"31":1,"34":4,"37":1,"40":4,"41":1,"43":1,"45":18,"50":1,"53":1,"54":7,"57":3,"62":1,"68":2,"69":4,"71":2,"72":1,"74":2,"75":2,"85":1,"86":2,"89":3,"91":5,"92":3,"93":2,"94":2,"97":5,"102":1,"103":2,"106":1,"115":2,"116":2,"118":1,"126":4,"127":1,"128":2,"134":1,"135":1,"136":11,"138":2,"141":2,"144":3,"146":1,"147":1,"148":1,"150":1,"152":2,"153":1,"163":1,"164":1,"165":1,"166":2,"171":1,"172":1,"175":1}}],["nothing`",{"2":{"52":2,"54":2,"57":2}}],["nothing",{"2":{"1":34,"4":1,"6":42,"15":3,"45":4,"50":1,"52":2,"53":1,"54":2,"57":2,"69":1,"97":1,"126":9,"128":3,"136":8,"138":24,"141":1,"144":60,"148":1,"153":1,"156":2,"157":6,"158":6,"159":6,"160":1,"161":32,"167":7,"170":252,"171":16,"172":20}}],["ne",{"2":{"171":2}}],["net",{"2":{"141":2}}],["ness",{"2":{"136":1}}],["nesting",{"2":{"134":2}}],["nestedloopfast",{"2":{"178":1}}],["nested",{"2":{"1":2,"4":1,"6":5,"18":1,"34":1,"134":2,"136":4,"156":1,"162":1}}],["never",{"2":{"134":1,"157":1}}],["neumann",{"2":{"128":1}}],["neither",{"2":{"57":1}}],["neighborhood",{"2":{"128":2}}],["neighbor",{"2":{"45":27}}],["neighboring",{"2":{"6":6,"45":1,"156":1,"157":1,"158":1,"159":2}}],["nearly",{"2":{"174":1}}],["nearest",{"2":{"45":1,"54":2}}],["neatly",{"2":{"17":1}}],["nedge",{"2":{"45":2,"167":13}}],["nextnode",{"2":{"128":27}}],["nextnodes",{"2":{"128":6}}],["next",{"2":{"44":1,"45":81,"47":3,"50":4,"97":14,"128":3,"145":13,"158":5}}],["necessarily",{"2":{"6":1,"126":1,"146":1}}],["necessary",{"2":{"6":1,"134":1,"156":1}}],["newfeature",{"2":{"136":2}}],["newnodes",{"2":{"128":2}}],["new",{"2":{"6":1,"41":1,"45":58,"47":9,"51":3,"52":1,"57":16,"97":2,"128":4,"135":1,"136":19,"141":2,"142":1,"143":1,"145":19,"153":8,"157":1,"158":2,"159":1,"172":1,"173":1,"177":1}}],["negative",{"2":{"4":3,"6":3,"36":2,"37":1,"38":2,"65":2,"66":3}}],["needs",{"2":{"44":1}}],["needing",{"2":{"4":1,"6":1,"17":1,"149":1}}],["need",{"2":{"1":1,"3":1,"4":2,"5":1,"6":5,"40":2,"43":1,"45":2,"52":1,"62":1,"69":4,"85":1,"86":1,"97":1,"128":2,"129":1,"136":1,"149":1,"160":1,"161":1,"171":1,"172":2,"178":2}}],["needed",{"2":{"1":2,"6":4,"34":1,"40":1,"45":4,"47":1,"51":1,"53":1,"56":1,"66":2,"97":5,"128":1,"136":2,"141":1,"147":3,"172":1}}],["gdal",{"2":{"174":1}}],["gml",{"2":{"174":1}}],["gpkg",{"2":{"174":3}}],["global",{"2":{"171":1}}],["gft",{"2":{"169":1,"171":2}}],["gadm",{"2":{"177":4}}],["ga",{"2":{"168":2,"171":3}}],["gaps",{"2":{"128":1}}],["gc",{"2":{"141":6}}],["g",{"2":{"34":3,"37":3,"41":1,"44":3,"47":3,"66":6,"134":1,"136":6,"156":2,"167":2,"174":1}}],["gb",{"2":{"31":1,"136":10}}],["guarantee",{"2":{"19":1,"30":1}}],["guaranteed",{"2":{"1":1,"6":1,"34":1,"136":1}}],["grand",{"2":{"177":1}}],["grained",{"2":{"151":1}}],["grahamscanmethod",{"2":{"63":1}}],["graphics",{"2":{"6":1,"40":1}}],["great",{"2":{"170":1,"172":1,"174":1}}],["greater",{"2":{"6":1,"126":1,"153":1}}],["greiner",{"0":{"52":1,"54":1,"57":1},"2":{"45":3,"50":2,"51":1,"53":1,"56":1}}],["green",{"2":{"14":1,"171":1}}],["grouped",{"2":{"170":1}}],["groups",{"2":{"6":1,"128":1}}],["grouping",{"2":{"1":1,"6":1,"136":2}}],["grid",{"2":{"6":1,"39":1,"47":4}}],["g2",{"2":{"3":5,"6":5,"72":4,"75":12,"76":6,"77":9,"78":6,"79":6,"80":3,"81":4,"82":2,"83":21,"86":3,"89":10,"90":6,"91":10,"92":8,"93":4,"94":2,"95":4,"96":2,"106":10,"107":6,"108":10,"109":6,"110":5,"111":4,"112":4,"113":2,"116":10,"117":6,"118":9,"119":6,"120":6,"121":3,"122":4,"123":2}}],["g1",{"2":{"3":5,"4":1,"6":6,"72":4,"75":12,"76":6,"77":9,"78":6,"79":6,"80":3,"81":2,"82":4,"83":21,"86":3,"89":9,"90":6,"91":10,"92":8,"93":4,"94":2,"95":2,"96":4,"106":10,"107":6,"108":9,"109":6,"110":5,"111":4,"112":2,"113":4,"116":10,"117":6,"118":9,"119":6,"120":6,"121":3,"122":2,"123":4}}],["generic",{"2":{"22":1}}],["generation",{"2":{"156":2}}],["generated",{"2":{"31":1,"34":1,"37":1,"40":1,"41":1,"44":1,"45":1,"47":1,"50":1,"52":1,"54":1,"55":1,"57":1,"63":1,"66":1,"69":1,"72":1,"82":1,"83":1,"86":1,"96":1,"97":1,"100":1,"103":1,"113":1,"123":1,"126":1,"127":1,"128":1,"136":1,"139":1,"142":1,"145":1,"146":1,"148":1,"149":1,"153":1,"156":1,"160":1,"161":1,"162":1,"166":1,"167":1,"176":1}}],["generate",{"2":{"7":1,"13":2,"156":1,"176":2}}],["generalization",{"2":{"38":1}}],["generalized",{"2":{"6":1,"38":3,"40":1}}],["generalise",{"2":{"6":4,"156":1}}],["generally",{"2":{"6":2,"166":3}}],["general",{"0":{"2":1,"4":1},"1":{"3":1,"4":1},"2":{"18":1,"20":1,"25":1,"27":1,"129":1,"148":1}}],["getfeature",{"2":{"136":5,"167":5}}],["getcolumn",{"2":{"136":4}}],["getgeom",{"2":{"81":1,"82":1,"95":1,"96":1,"103":2,"112":1,"113":1,"122":1,"123":1,"136":8,"156":3,"167":6}}],["getring",{"2":{"45":1}}],["getindex",{"2":{"40":2}}],["gethole",{"2":{"34":1,"37":1,"44":1,"45":4,"47":1,"50":1,"51":2,"53":2,"57":6,"66":1,"69":2,"97":5,"139":1,"170":1}}],["getexterior",{"2":{"34":1,"37":1,"40":1,"44":1,"45":3,"47":1,"50":1,"51":2,"53":2,"56":3,"57":6,"66":1,"69":2,"97":5,"126":1,"128":1,"139":1,"170":1}}],["getpolygon",{"2":{"52":3,"54":2,"57":2,"69":3}}],["getpoint",{"2":{"33":1,"34":5,"36":2,"37":1,"40":1,"43":1,"44":6,"45":3,"46":2,"47":3,"49":3,"65":1,"66":6,"68":4,"69":13,"71":4,"74":1,"83":7,"85":1,"88":4,"97":28,"99":2,"102":4,"103":2,"105":2,"108":2,"115":4,"126":5,"139":3,"151":4,"153":2,"160":1,"167":3,"170":2}}],["getproperty",{"2":{"13":2,"14":1}}],["get",{"2":{"6":1,"13":1,"36":1,"41":1,"45":9,"51":1,"52":1,"53":1,"54":2,"56":2,"63":2,"128":4,"136":4,"148":1,"152":3,"156":1,"157":1,"159":1,"160":2,"166":5,"167":1,"170":2,"177":2}}],["geoparquet",{"2":{"174":4}}],["geopoly1",{"2":{"172":1,"173":1}}],["geopoly2",{"2":{"172":1,"173":1}}],["geographic",{"2":{"171":1,"174":1}}],["geographiclib",{"2":{"6":1,"152":1}}],["geoaxis",{"2":{"168":1,"171":4}}],["geointeface",{"2":{"134":1}}],["geointerace",{"2":{"22":1}}],["geointerfacemakie",{"2":{"155":1,"176":1,"177":1}}],["geointerface",{"0":{"30":1},"2":{"1":20,"3":9,"4":2,"6":41,"11":1,"13":1,"14":1,"15":1,"22":3,"25":1,"27":1,"30":1,"31":7,"33":1,"34":1,"36":1,"37":1,"40":23,"43":1,"44":1,"45":1,"46":1,"47":1,"49":1,"50":1,"51":1,"53":1,"54":1,"56":1,"60":1,"61":1,"62":1,"65":1,"66":11,"68":1,"69":2,"71":1,"72":2,"74":1,"75":2,"83":1,"85":1,"86":2,"88":1,"89":3,"99":1,"100":2,"102":1,"103":2,"105":1,"106":2,"115":1,"116":2,"126":5,"128":1,"131":3,"134":3,"136":7,"138":9,"141":1,"142":1,"144":23,"147":2,"149":1,"151":1,"152":1,"155":1,"156":2,"161":13,"162":1,"167":1,"168":1,"169":1,"170":122,"171":5,"172":9,"176":1,"177":1}}],["geo",{"2":{"128":1,"152":4,"171":2}}],["geotable",{"2":{"29":1}}],["geojson",{"2":{"11":1,"156":2,"169":1,"171":4,"174":3}}],["geodataframes",{"2":{"174":3}}],["geod",{"2":{"6":2,"152":3}}],["geodesic`",{"2":{"152":2}}],["geodesic",{"0":{"168":1},"2":{"6":5,"31":1,"151":6,"152":8,"153":1,"168":1}}],["geodesicsegments",{"2":{"0":1,"6":2,"150":1,"151":3,"152":6,"153":2,"168":1}}],["geoformattypes",{"2":{"1":2,"147":2,"169":1,"171":2,"172":8}}],["geomakie",{"0":{"171":1},"2":{"168":2,"169":2,"171":5}}],["geomfromgeos",{"2":{"152":1}}],["geomtype",{"2":{"136":3}}],["geoms",{"2":{"6":1,"63":1,"97":1,"131":1,"136":20}}],["geom2",{"2":{"3":8,"4":1,"6":9,"66":6,"69":1,"83":6,"89":1,"100":3,"103":6,"106":1,"116":2}}],["geom1",{"2":{"3":8,"4":1,"6":9,"66":6,"69":1,"83":4,"89":1,"100":3,"103":6,"106":1,"116":2}}],["geometrical",{"2":{"175":1}}],["geometric",{"2":{"25":2,"27":2,"43":1}}],["geometries",{"0":{"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"107":1,"108":1,"109":1,"110":1,"111":1,"112":1,"113":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"170":1,"171":1,"172":1},"2":{"1":6,"3":8,"4":14,"6":63,"18":3,"20":1,"22":3,"25":2,"27":2,"29":4,"33":1,"34":3,"37":4,"44":1,"47":2,"50":1,"51":5,"53":5,"54":4,"56":5,"63":6,"65":1,"66":4,"68":1,"69":7,"72":1,"74":1,"75":1,"83":2,"89":2,"97":1,"99":1,"100":1,"102":2,"103":3,"105":2,"106":2,"116":2,"118":1,"129":1,"131":4,"133":1,"135":2,"136":13,"147":2,"149":1,"150":3,"151":1,"152":4,"153":1,"154":1,"157":1,"158":1,"159":1,"162":1,"167":1,"169":5,"171":1,"172":2,"173":2,"174":1,"175":5,"176":1,"178":1}}],["geometry=",{"2":{"173":1}}],["geometrybasics",{"2":{"31":3,"39":2,"40":10,"63":1,"65":1,"75":1,"106":1,"116":1}}],["geometrycolumns",{"2":{"136":3}}],["geometrycollections",{"2":{"175":1}}],["geometrycollection",{"2":{"23":1,"177":1}}],["geometrycollectiontrait",{"2":{"23":1,"81":1,"82":1,"95":1,"96":1,"112":1,"113":1,"122":1,"123":1}}],["geometrycorrections",{"2":{"141":1}}],["geometrycorrection",{"2":{"0":1,"6":11,"139":2,"140":2,"141":13,"142":11,"145":4}}],["geometry",{"0":{"2":1,"53":1,"81":2,"82":2,"95":2,"96":2,"112":2,"113":2,"122":2,"123":2,"140":1,"147":1,"154":1,"169":1,"173":1},"1":{"3":1,"4":1,"141":1,"142":1,"148":1,"155":1,"156":1,"170":1,"171":1,"172":1,"173":1,"174":1},"2":{"1":10,"3":24,"4":12,"6":70,"9":1,"11":2,"18":4,"20":1,"23":3,"29":1,"31":1,"34":7,"37":4,"41":4,"44":3,"46":1,"47":4,"50":4,"61":1,"65":4,"66":6,"69":8,"71":5,"72":2,"74":4,"75":5,"76":4,"77":1,"81":3,"82":4,"83":3,"85":4,"86":4,"88":2,"89":5,"90":4,"91":2,"92":2,"95":3,"96":4,"97":2,"99":2,"103":3,"105":3,"106":4,"107":4,"108":2,"112":3,"113":4,"115":4,"116":5,"117":4,"122":3,"123":4,"125":1,"129":3,"131":2,"134":2,"136":43,"138":1,"139":1,"140":2,"141":23,"142":6,"146":1,"147":6,"149":1,"150":3,"151":1,"152":5,"153":8,"156":6,"167":6,"170":1,"171":1,"172":4,"173":2,"174":2,"175":1,"176":7,"177":4,"178":2}}],["geometryopsprojext",{"2":{"147":1,"148":1,"152":1,"153":1}}],["geometryopslibgeosext",{"2":{"41":1}}],["geometryops",{"0":{"0":1,"25":1,"31":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":117,"1":6,"3":18,"4":9,"5":3,"6":114,"7":2,"11":1,"13":1,"14":1,"15":1,"17":2,"25":1,"26":4,"27":1,"31":1,"33":1,"36":1,"39":5,"41":1,"43":1,"46":1,"49":1,"50":1,"51":1,"53":1,"54":1,"56":1,"58":1,"60":1,"61":1,"62":3,"65":1,"68":1,"69":1,"71":1,"72":2,"74":1,"75":2,"83":2,"85":1,"86":2,"88":1,"89":2,"99":1,"100":1,"102":1,"103":1,"105":1,"106":2,"115":1,"116":2,"126":3,"128":2,"131":4,"136":1,"138":1,"141":1,"142":4,"144":1,"148":1,"151":1,"152":2,"155":1,"156":2,"161":1,"163":1,"166":2,"167":1,"168":1,"169":1,"170":3,"175":1,"176":2,"177":2}}],["geom",{"2":{"1":7,"4":21,"6":48,"18":3,"31":12,"34":25,"37":17,"44":28,"45":16,"47":6,"50":15,"51":8,"52":2,"53":12,"54":10,"56":9,"57":9,"66":28,"69":45,"75":4,"83":1,"89":4,"97":3,"103":1,"106":4,"116":4,"126":3,"128":1,"129":2,"131":3,"136":96,"145":11,"146":4,"153":13,"156":36,"160":3,"161":7,"162":4,"167":17,"177":6}}],["geospatial",{"0":{"172":1,"174":1},"2":{"169":5,"171":1,"172":3,"174":5}}],["geoscontext",{"2":{"152":1}}],["geosdensify",{"2":{"152":3}}],["geos",{"0":{"166":1},"2":{"0":1,"6":6,"41":4,"58":1,"62":4,"63":1,"154":5,"156":2,"163":1,"166":12}}],["got",{"2":{"160":3}}],["goes",{"2":{"6":2,"126":2}}],["good",{"2":{"6":1,"40":1,"166":2,"172":1}}],["going",{"2":{"4":4,"6":5,"47":2,"62":1,"69":5,"126":1,"128":1,"169":1}}],["go",{"2":{"1":5,"3":17,"4":2,"6":43,"11":9,"13":1,"14":1,"15":6,"18":1,"31":2,"33":1,"36":1,"40":1,"43":2,"46":1,"49":2,"50":2,"51":2,"53":2,"54":2,"56":2,"60":3,"61":2,"62":8,"63":2,"65":6,"68":1,"69":2,"71":2,"72":2,"74":1,"75":2,"83":1,"85":2,"86":2,"88":1,"89":2,"99":1,"100":2,"102":1,"103":2,"105":1,"106":2,"115":2,"116":2,"126":6,"128":2,"129":1,"131":1,"136":3,"138":3,"144":3,"151":7,"152":8,"155":2,"156":49,"161":3,"166":1,"167":2,"168":3,"169":1,"170":3,"172":1,"174":1,"175":9,"176":2,"177":5,"178":1}}],["gtrait",{"2":{"66":2}}],["gt",{"2":{"1":1,"6":2,"9":2,"10":1,"11":5,"45":3,"126":3}}],["gif",{"2":{"158":1}}],["gives",{"2":{"177":1}}],["give",{"2":{"97":1,"174":1}}],["given",{"2":{"4":7,"6":21,"18":2,"29":1,"33":1,"34":1,"37":2,"44":3,"45":8,"47":3,"50":5,"51":1,"52":2,"53":1,"54":2,"56":1,"57":2,"66":8,"69":4,"71":1,"72":1,"75":1,"85":1,"86":1,"89":1,"97":7,"99":1,"100":1,"106":1,"108":1,"116":1,"129":1,"141":4,"142":1,"144":1,"150":2,"152":2,"153":2,"159":1}}],["github",{"2":{"6":2,"63":1}}],["gis",{"2":{"5":1,"6":1,"25":1,"27":1,"40":1}}],["gi",{"2":{"1":13,"3":42,"4":31,"6":125,"11":8,"13":15,"14":15,"15":8,"18":2,"31":1,"33":3,"34":30,"36":5,"37":21,"39":1,"43":5,"44":38,"45":34,"46":5,"47":17,"49":6,"50":13,"51":19,"52":16,"53":25,"54":24,"56":17,"57":36,"60":1,"61":1,"62":3,"63":4,"65":8,"66":42,"68":7,"69":99,"71":7,"72":3,"74":3,"75":4,"76":6,"77":12,"78":10,"79":7,"80":4,"81":8,"82":6,"83":21,"85":3,"86":3,"88":7,"89":2,"90":3,"91":12,"92":14,"93":4,"94":2,"95":8,"96":6,"97":59,"99":5,"100":3,"102":7,"103":51,"105":5,"106":3,"107":6,"108":15,"109":10,"110":7,"111":4,"112":8,"113":6,"115":7,"116":2,"117":6,"118":12,"119":10,"120":7,"121":4,"122":8,"123":6,"126":32,"128":15,"129":4,"131":2,"136":116,"138":2,"139":10,"141":9,"144":3,"145":8,"146":5,"149":1,"151":6,"152":6,"153":12,"155":2,"156":34,"160":4,"161":9,"162":5,"164":9,"167":58,"168":2,"169":1,"170":21,"171":2,"172":2,"176":5,"177":2}}],["o",{"2":{"136":24}}],["odd",{"2":{"97":1}}],["own",{"2":{"57":1,"129":2}}],["occur",{"2":{"54":1}}],["occurs",{"2":{"54":1}}],["occupied",{"2":{"36":1}}],["old",{"2":{"45":8,"136":3}}],["ourselves",{"2":{"152":1}}],["our",{"2":{"24":1,"152":1,"170":4,"171":3,"176":1}}],["out=3",{"2":{"97":1}}],["out=4",{"2":{"53":1}}],["out`",{"2":{"53":1,"97":1}}],["out",{"2":{"6":3,"45":12,"47":23,"54":6,"57":4,"63":1,"65":5,"75":4,"83":1,"89":3,"97":102,"103":2,"106":4,"116":4,"126":1,"136":1,"153":1,"166":2}}],["outside",{"2":{"3":2,"4":1,"6":3,"45":3,"47":1,"52":2,"54":4,"57":3,"65":2,"66":1,"74":1,"86":1,"88":1,"97":12,"103":3,"121":1}}],["outputs",{"2":{"45":1}}],["output",{"2":{"3":8,"4":1,"6":18,"18":1,"23":1,"50":2,"51":1,"53":1,"54":1,"56":1,"57":2,"69":1,"72":1,"75":1,"86":1,"89":1,"100":1,"103":1,"106":1,"116":1,"126":2,"156":1,"160":1,"167":1}}],["outermost",{"2":{"136":1}}],["outer",{"2":{"1":1,"6":1,"134":1,"136":2,"175":1,"176":1}}],["omit",{"2":{"6":1,"152":1}}],["obtain",{"2":{"136":1}}],["obtained",{"2":{"23":1}}],["observable",{"2":{"14":2}}],["obs",{"2":{"14":10}}],["obviously",{"2":{"4":1,"6":1,"149":1}}],["objects",{"2":{"1":4,"4":1,"6":17,"131":3,"134":5,"136":8,"149":1,"150":1,"156":2,"162":1}}],["object",{"2":{"1":4,"4":1,"5":1,"6":8,"20":1,"40":1,"65":1,"97":4,"131":1,"134":5,"136":3,"147":3,"149":1,"152":1,"156":1,"162":1}}],["obj",{"2":{"1":4,"4":1,"6":17,"131":3,"136":10,"146":2,"149":1,"152":3,"156":3,"161":1,"162":1}}],["others",{"2":{"41":1,"145":1}}],["otherwise",{"2":{"4":2,"6":3,"41":1,"45":1,"52":1,"54":1,"66":2,"128":1,"146":1,"148":1,"152":1,"167":1}}],["other",{"0":{"4":1,"6":1},"2":{"3":4,"6":12,"34":1,"45":5,"51":1,"53":1,"54":1,"56":2,"57":3,"58":2,"66":2,"69":2,"71":1,"77":1,"97":8,"99":1,"102":1,"103":4,"105":2,"106":2,"109":1,"118":1,"128":1,"131":1,"134":1,"136":1,"142":2,"143":1,"145":2,"156":2,"158":2,"163":1,"164":1,"166":1,"171":1,"175":1,"178":1}}],["ogc",{"0":{"3":1}}],["over=3",{"2":{"53":1}}],["over`",{"2":{"53":1}}],["overflow",{"2":{"50":1}}],["overhead",{"2":{"22":1,"136":2}}],["override",{"2":{"6":1,"40":1}}],["overlapping",{"2":{"45":11,"54":4,"57":6}}],["overlap",{"2":{"3":4,"6":4,"9":1,"45":2,"54":8,"57":2,"75":1,"85":1,"97":2,"102":5,"103":6,"116":1,"143":1}}],["overlaps",{"0":{"101":1,"102":1},"1":{"102":1,"103":1},"2":{"0":10,"3":5,"6":13,"31":1,"54":1,"101":1,"102":3,"103":30,"128":1,"175":1}}],["over",{"2":{"1":1,"6":3,"36":2,"37":1,"44":3,"45":5,"47":1,"53":1,"54":11,"57":1,"62":1,"75":1,"83":1,"89":1,"97":15,"103":2,"106":1,"116":1,"136":22,"170":3}}],["opposed",{"2":{"168":1}}],["opposite",{"2":{"3":5,"6":5,"45":2,"52":1,"54":2,"57":1,"72":2,"75":1,"86":2,"100":2,"116":1}}],["ops",{"2":{"136":1}}],["open",{"2":{"45":1,"138":1,"171":1}}],["operates",{"2":{"136":1,"137":1,"143":1}}],["operate",{"2":{"18":1,"29":1,"136":1}}],["operations",{"0":{"23":1},"2":{"23":1,"26":1,"54":1,"57":1,"129":1}}],["operation",{"2":{"6":3,"45":1,"129":1,"142":2,"145":2,"166":2}}],["optimisation",{"2":{"97":1}}],["optimise",{"2":{"83":1}}],["optimal",{"2":{"6":1,"63":1}}],["options",{"2":{"14":1,"45":1}}],["optional",{"2":{"4":5,"6":6,"34":1,"37":2,"47":1,"66":2}}],["op",{"2":{"1":3,"6":3,"19":2,"44":1,"136":35}}],["on=2",{"2":{"97":1}}],["on`",{"2":{"97":1}}],["once",{"2":{"83":1,"103":1,"128":1}}],["onto",{"2":{"66":1}}],["ones",{"2":{"144":1}}],["oneunit",{"2":{"40":1}}],["one",{"2":{"1":1,"3":9,"6":14,"23":1,"34":4,"37":2,"39":1,"40":1,"44":1,"45":5,"47":3,"51":1,"52":1,"53":1,"54":32,"56":2,"57":2,"58":1,"65":2,"74":1,"81":1,"83":1,"88":1,"97":18,"102":1,"103":18,"105":2,"106":2,"109":3,"110":2,"111":2,"112":1,"113":1,"115":1,"116":1,"122":1,"126":1,"128":5,"136":1,"144":1,"147":1,"152":1,"160":1,"161":1,"171":1,"175":1}}],["on",{"0":{"171":1},"2":{"1":2,"4":3,"6":11,"9":1,"18":1,"20":1,"23":2,"25":3,"27":3,"29":2,"34":5,"37":3,"39":1,"40":2,"44":3,"45":28,"47":8,"50":1,"51":1,"52":5,"53":1,"54":4,"56":1,"57":2,"63":1,"65":1,"66":3,"69":2,"74":1,"75":7,"77":2,"78":3,"79":3,"80":1,"83":4,"89":6,"91":4,"92":1,"93":1,"97":125,"103":9,"106":7,"108":2,"116":7,"118":2,"119":1,"120":1,"128":3,"129":1,"131":1,"136":15,"137":1,"139":1,"142":1,"143":1,"150":1,"152":1,"158":1,"165":2,"168":1,"169":1,"171":3,"172":1,"174":1,"175":4,"176":1,"177":2,"178":2}}],["only",{"2":{"0":1,"5":1,"6":11,"23":1,"37":2,"39":2,"40":1,"41":1,"44":2,"45":4,"47":3,"50":1,"51":1,"53":1,"54":1,"56":1,"63":3,"66":2,"69":3,"102":3,"103":1,"105":1,"128":2,"136":2,"144":1,"150":1,"151":1,"153":2,"163":1,"166":2,"172":1,"177":1,"178":1}}],["often",{"2":{"171":1}}],["offers",{"2":{"170":1}}],["offer",{"2":{"152":1}}],["offset",{"2":{"34":8,"69":1}}],["off",{"2":{"4":1,"6":1,"45":4,"69":1,"97":6,"136":1}}],["of",{"0":{"61":1},"2":{"1":7,"3":29,"4":66,"5":5,"6":194,"7":2,"9":4,"17":3,"18":5,"19":1,"20":2,"22":1,"23":2,"24":2,"25":1,"26":1,"27":1,"29":3,"33":1,"34":38,"36":5,"37":28,"38":9,"39":1,"40":13,"41":1,"43":3,"44":12,"45":84,"46":5,"47":31,"50":5,"51":12,"52":13,"53":10,"54":48,"56":9,"57":20,"58":5,"62":3,"63":3,"65":6,"66":18,"68":2,"69":19,"71":4,"72":5,"74":6,"75":18,"77":1,"78":5,"79":5,"80":1,"81":2,"82":1,"83":1,"86":5,"88":3,"89":14,"91":1,"92":1,"93":1,"95":2,"96":1,"97":85,"99":1,"100":3,"102":1,"103":13,"105":2,"106":15,"108":3,"109":7,"110":5,"111":1,"112":2,"113":1,"115":4,"116":18,"118":3,"119":6,"120":6,"121":4,"122":1,"123":1,"125":2,"126":3,"127":2,"128":19,"129":3,"131":1,"134":5,"135":2,"136":27,"137":1,"138":1,"142":2,"143":4,"145":4,"146":3,"147":1,"150":2,"151":2,"152":5,"153":2,"156":8,"158":4,"159":2,"160":1,"162":1,"164":2,"166":4,"167":2,"170":6,"171":4,"172":2,"173":1,"174":4,"175":3,"176":4,"177":2}}],["org",{"2":{"51":1,"53":1,"56":1,"97":2,"158":1}}],["organise",{"2":{"10":1}}],["orange",{"2":{"49":1,"65":1,"68":2,"71":2,"88":2,"102":2,"115":2}}],["oro",{"2":{"11":2}}],["originate",{"2":{"57":1}}],["originals",{"2":{"22":1}}],["original",{"2":{"6":4,"18":1,"22":1,"45":10,"50":5,"51":1,"53":1,"57":4,"134":1,"136":3,"141":1,"146":2,"153":1,"155":4,"156":1}}],["orient",{"0":{"13":1},"1":{"14":1,"15":1},"2":{"13":7,"14":12,"45":15,"54":53}}],["orientation",{"0":{"124":1},"1":{"125":1,"126":1},"2":{"6":2,"10":1,"31":1,"37":1,"45":10,"47":2,"51":1,"53":2,"54":2,"56":1,"97":16,"125":1,"156":1}}],["ordered",{"2":{"36":1}}],["order",{"0":{"62":1},"2":{"1":4,"3":1,"4":2,"6":7,"34":1,"36":1,"37":2,"40":1,"45":4,"54":1,"57":1,"62":4,"63":1,"66":2,"69":3,"72":1,"75":1,"86":1,"100":1,"136":2,"147":2,"156":1,"175":1}}],["or",{"0":{"24":1},"2":{"1":11,"3":3,"4":10,"6":54,"18":1,"20":1,"22":1,"23":1,"25":1,"27":1,"29":2,"31":1,"34":4,"37":1,"40":1,"41":1,"43":2,"44":4,"45":24,"46":1,"50":1,"51":1,"52":3,"53":2,"54":9,"56":1,"57":2,"58":1,"63":1,"65":2,"66":4,"69":3,"71":1,"75":1,"77":2,"78":1,"79":1,"80":1,"81":1,"82":1,"88":2,"91":2,"92":3,"93":2,"94":1,"95":1,"96":1,"97":26,"99":2,"100":1,"102":1,"103":2,"105":1,"106":1,"112":1,"113":1,"116":1,"118":2,"122":1,"123":1,"125":2,"126":3,"128":7,"129":3,"131":1,"133":2,"135":1,"136":9,"137":1,"139":1,"141":5,"142":2,"147":2,"148":1,"150":2,"152":2,"153":2,"154":1,"156":3,"158":2,"160":2,"162":1,"164":3,"167":2,"175":1,"177":2}}],["est",{"2":{"177":1}}],["essentially",{"2":{"164":1}}],["especially",{"2":{"6":1,"18":1,"23":1,"128":1}}],["effects",{"2":{"136":3}}],["efficiently",{"2":{"20":1}}],["efficient",{"2":{"6":1,"40":1,"51":2,"53":2,"56":2,"63":1,"139":1}}],["e2",{"2":{"97":4}}],["e1",{"2":{"97":8}}],["euclid",{"2":{"47":2,"66":11,"97":1,"157":1}}],["euclidean",{"2":{"4":1,"6":1,"40":13,"66":6,"153":1}}],["everything",{"2":{"156":1}}],["every",{"2":{"45":1,"69":2,"134":1,"166":1}}],["evenly",{"2":{"176":1}}],["eventually",{"2":{"45":1}}],["even",{"2":{"37":2,"47":1,"54":1,"66":1,"69":1,"129":1,"138":1,"143":1}}],["evaluated",{"2":{"175":1}}],["eval",{"2":{"31":2,"136":2}}],["epsg",{"2":{"171":5,"172":8}}],["eps",{"2":{"34":2,"54":14}}],["eponymous",{"2":{"6":1,"152":1}}],["e",{"2":{"9":1,"22":1,"41":1,"128":1,"134":1,"136":2,"170":2,"171":1,"174":1}}],["ellipsoid",{"2":{"168":1}}],["eltype",{"2":{"128":4}}],["elements",{"2":{"81":1,"82":1,"95":1,"96":1,"103":1,"112":1,"113":1,"122":1,"123":1}}],["element",{"2":{"6":6,"33":1,"45":4,"50":2,"51":1,"53":1,"54":1,"56":3,"151":1,"171":1}}],["elsewhere",{"2":{"50":1}}],["elseif",{"2":{"45":5,"47":7,"51":1,"53":1,"54":14,"56":2,"57":1,"83":3,"97":10,"126":1,"128":2,"145":1,"158":2,"160":2}}],["else",{"2":{"3":6,"6":6,"34":1,"40":2,"45":19,"47":9,"50":1,"52":2,"54":9,"56":1,"57":9,"83":2,"97":17,"103":8,"128":20,"136":8,"139":1,"146":1,"148":1,"156":2,"158":4,"160":2,"161":1,"162":1,"166":1}}],["etc",{"2":{"6":1,"20":2,"36":1,"63":1,"164":1,"174":1}}],["empty",{"2":{"4":2,"6":6,"34":2,"45":2,"51":1,"53":1,"54":2,"56":1,"128":2}}],["embedding",{"0":{"135":1,"149":1}}],["embedded",{"0":{"172":1},"2":{"128":1,"135":3,"169":1,"172":1}}],["embed",{"2":{"0":2,"4":1,"6":1,"135":1,"149":2}}],["errors",{"2":{"31":1,"54":1,"153":1}}],["error",{"0":{"148":1},"2":{"4":1,"6":4,"7":1,"18":1,"31":6,"40":1,"41":4,"45":2,"54":2,"55":1,"69":2,"128":1,"134":1,"141":2,"148":3,"152":5,"160":4,"166":3,"167":1}}],["edgekeys",{"2":{"128":3}}],["edge",{"2":{"3":1,"4":3,"6":4,"20":1,"31":1,"37":1,"43":1,"45":25,"47":13,"51":1,"53":1,"54":6,"56":1,"66":4,"69":1,"77":2,"92":2,"93":1,"97":7,"103":21,"118":2,"119":1,"120":1,"128":7,"167":2}}],["edges`",{"2":{"54":1}}],["edges",{"2":{"0":1,"4":2,"6":9,"45":12,"47":8,"52":3,"54":10,"57":3,"66":3,"68":2,"69":1,"71":1,"77":1,"78":3,"79":7,"80":3,"88":1,"91":3,"94":1,"97":3,"103":20,"115":1,"118":1,"128":22,"167":29}}],["earlier",{"2":{"170":3}}],["earth",{"2":{"6":2,"25":1,"27":1,"152":2,"156":1,"171":2,"175":1}}],["easiest",{"2":{"173":1}}],["easier",{"2":{"163":1,"165":1}}],["easily",{"2":{"129":1}}],["east",{"2":{"47":9}}],["easy",{"2":{"1":1,"6":1,"143":1,"161":1}}],["eachindex",{"2":{"34":1,"126":1,"128":3,"136":2,"157":1,"160":1}}],["each",{"2":{"3":2,"4":3,"6":6,"9":1,"18":2,"20":1,"34":4,"37":2,"38":4,"40":1,"45":5,"47":1,"54":3,"66":1,"69":2,"75":1,"89":1,"97":6,"102":1,"103":3,"106":1,"116":1,"126":1,"128":1,"136":1,"143":2,"156":1,"173":1,"174":1,"176":2,"177":2,"178":1}}],["equatorial",{"2":{"6":6,"152":4}}],["equality",{"2":{"45":1,"54":1,"175":1}}],["equal",{"2":{"3":2,"4":16,"6":19,"34":6,"54":1,"65":1,"66":4,"68":3,"69":22,"77":1,"91":1,"97":15,"102":1,"103":2,"108":2,"118":1,"138":1}}],["equals",{"0":{"67":1,"68":1},"1":{"68":1,"69":1},"2":{"0":17,"4":3,"6":19,"31":1,"34":2,"45":4,"50":2,"54":8,"66":1,"67":1,"68":2,"69":50,"77":1,"91":1,"97":10,"103":2,"108":3,"118":1,"175":1}}],["equivalent",{"2":{"3":1,"4":4,"6":6,"37":1,"45":1,"54":1,"57":1,"69":5,"75":1,"97":1}}],["enable",{"2":{"178":1}}],["enabled",{"2":{"175":1}}],["enabling",{"0":{"178":1}}],["enclosed",{"2":{"97":1}}],["encode",{"2":{"24":1}}],["encompasses",{"2":{"18":1,"97":1}}],["encounters",{"2":{"18":1}}],["en",{"2":{"97":1,"158":1}}],["envelope",{"2":{"54":2}}],["envelopes",{"2":{"54":2}}],["enough",{"2":{"45":1}}],["entirely",{"2":{"97":1}}],["entire",{"2":{"47":1,"97":4}}],["entry",{"2":{"45":11,"52":3,"54":4,"57":3,"128":1}}],["ent",{"2":{"45":19,"50":2}}],["enter",{"2":{"45":4}}],["ensuring",{"2":{"6":1,"150":1,"153":1}}],["ensure",{"2":{"6":3,"40":1,"51":1,"53":1,"56":1,"137":2,"140":1}}],["ensures",{"2":{"6":3,"139":1,"142":3,"145":2}}],["enumerate",{"2":{"13":2,"34":1,"45":10,"47":1,"50":1,"52":1,"57":2,"97":1,"128":2,"145":2,"160":1}}],["enum",{"2":{"6":2,"45":3,"53":3,"97":3}}],["endpt",{"2":{"158":3}}],["endpoints",{"2":{"45":3,"47":1,"52":1,"54":6,"57":1,"66":2,"97":11,"103":2,"105":1}}],["endpoint=3",{"2":{"45":1}}],["endpointtype",{"2":{"45":2}}],["endpoint",{"2":{"3":1,"6":2,"45":27,"53":1,"54":16,"66":2,"74":1,"97":3,"103":2,"156":4,"158":4,"170":1}}],["ending",{"2":{"45":1,"47":1}}],["end",{"2":{"1":1,"6":1,"9":1,"13":4,"14":3,"31":4,"34":18,"37":8,"40":35,"41":3,"44":10,"45":130,"47":43,"50":9,"51":8,"52":12,"53":5,"54":31,"55":1,"56":6,"57":24,"63":3,"66":19,"69":20,"81":2,"82":2,"83":20,"95":2,"96":2,"97":104,"103":21,"108":1,"112":2,"113":2,"118":1,"122":2,"123":2,"126":9,"127":4,"128":44,"129":1,"136":52,"137":1,"139":5,"141":3,"145":18,"146":4,"147":1,"148":2,"152":8,"153":8,"156":7,"157":6,"158":30,"159":3,"160":27,"161":4,"162":4,"164":1,"165":3,"166":4,"167":19}}],["enforce",{"2":{"0":1,"6":2,"166":3}}],["exits",{"2":{"45":1}}],["exit",{"2":{"45":32,"50":2,"52":3,"54":3,"57":2}}],["existingnodes",{"2":{"128":3}}],["existing",{"2":{"45":3,"56":1,"128":1,"171":2,"173":1}}],["exists",{"2":{"45":1,"47":1,"54":1}}],["exist",{"2":{"6":1,"45":1,"54":3,"166":1}}],["excluding",{"2":{"94":1,"97":1,"118":2}}],["exclude",{"2":{"83":9}}],["exclusively",{"2":{"110":1}}],["exclusive",{"2":{"47":1,"54":2}}],["exc",{"2":{"41":2,"148":2,"152":2}}],["excellent",{"2":{"23":1}}],["except",{"2":{"18":1,"19":1}}],["excess",{"2":{"5":1,"6":1,"40":1}}],["exp10",{"2":{"152":1,"156":2}}],["expressed",{"2":{"38":2}}],["express",{"2":{"38":1}}],["experimental",{"2":{"31":3}}],["expect",{"2":{"1":1,"99":1,"147":1}}],["explain",{"2":{"26":1}}],["explanations",{"2":{"26":3}}],["explicitly",{"2":{"6":1,"18":1,"24":1,"34":2,"37":1,"40":1,"41":1,"66":2,"69":1,"148":1,"152":1,"153":1}}],["expose",{"2":{"58":1}}],["exposes",{"2":{"17":1}}],["export",{"2":{"38":1,"150":1,"172":1,"174":1}}],["exponential",{"2":{"9":1}}],["ext2",{"2":{"97":3}}],["ext1",{"2":{"97":3}}],["ext",{"2":{"39":15,"45":10,"47":2,"50":3,"51":8,"53":8,"54":18,"56":8,"57":14,"83":7,"97":7}}],["extrema",{"2":{"128":1,"167":1}}],["extreem",{"2":{"34":10}}],["extracts",{"2":{"63":1}}],["extract",{"2":{"63":1,"128":1,"136":3,"156":1}}],["extra",{"2":{"6":3,"45":1,"56":1,"150":1,"152":2,"153":1}}],["external",{"2":{"37":1,"97":2}}],["exteriors",{"2":{"9":1,"53":2,"56":2,"128":1}}],["exterior",{"2":{"3":4,"4":2,"6":10,"34":1,"36":1,"37":1,"39":1,"40":36,"44":2,"45":4,"51":2,"56":3,"57":14,"66":1,"69":2,"71":1,"72":1,"75":3,"86":1,"89":2,"97":9,"106":2,"115":1,"116":3,"119":3,"120":3,"126":6,"128":6,"139":3,"140":1,"142":1,"149":1,"170":2}}],["extending",{"2":{"103":1}}],["extended",{"2":{"66":1}}],["extensions",{"2":{"58":1,"174":1}}],["extension",{"2":{"1":1,"6":1,"40":1,"41":1,"63":1,"74":1,"127":1,"147":3,"148":2,"152":1,"153":1,"154":1,"174":1}}],["extent=geom",{"2":{"167":1}}],["extent=gi",{"2":{"128":3}}],["extent=true",{"2":{"149":1}}],["extent=nothing",{"2":{"136":1}}],["extent=",{"2":{"136":4}}],["extent=false",{"2":{"136":1,"156":1}}],["extent`",{"2":{"133":1,"149":1}}],["extents",{"2":{"4":3,"6":3,"31":5,"47":1,"54":3,"97":5,"103":1,"128":3,"136":2,"149":2,"167":2}}],["extent",{"0":{"149":1},"2":{"0":2,"1":4,"4":3,"6":11,"24":1,"31":2,"39":1,"46":1,"47":1,"54":10,"97":4,"103":2,"128":12,"133":3,"135":4,"136":31,"149":2,"156":1,"165":1,"167":8}}],["exactly",{"2":{"160":1}}],["exactpredicates",{"2":{"7":1,"13":2,"14":2,"31":1}}],["exact",{"2":{"3":5,"6":5,"7":2,"12":1,"13":1,"45":36,"47":6,"50":7,"51":5,"53":5,"54":7,"55":1,"56":5,"57":7,"72":2,"75":3,"77":1,"78":3,"79":3,"80":1,"83":1,"86":2,"89":2,"91":1,"92":3,"93":2,"94":1,"97":24,"100":2,"103":3,"106":2,"108":1,"109":3,"110":1,"111":1,"116":3,"118":1,"119":3,"120":3,"121":1,"128":1,"144":1}}],["examples",{"0":{"151":1,"155":1},"2":{"3":8,"4":1,"6":11,"26":2,"69":1,"72":1,"75":1,"83":1,"86":1,"89":1,"103":1,"106":1,"116":1,"126":2,"167":1}}],["example",{"0":{"39":1,"59":1,"138":1,"144":1,"176":1,"177":1},"1":{"60":1},"2":{"1":3,"3":2,"6":13,"11":1,"20":1,"23":2,"33":1,"36":1,"39":1,"43":1,"44":1,"46":1,"49":1,"50":1,"51":1,"53":1,"54":1,"56":1,"65":1,"68":1,"69":1,"71":1,"74":1,"83":1,"85":1,"88":1,"97":1,"99":1,"100":1,"102":1,"105":1,"115":1,"126":1,"128":8,"129":1,"136":2,"138":1,"140":1,"143":1,"144":1,"146":1,"155":1,"156":2,"161":1,"166":1,"176":1,"178":1}}],["either",{"2":{"1":2,"3":1,"6":4,"22":1,"25":1,"27":1,"45":9,"51":1,"53":1,"54":2,"56":1,"57":1,"65":1,"75":1,"97":5,"99":1,"105":1,"106":1,"116":1,"128":1,"136":3,"141":1,"175":1}}],["lj",{"2":{"128":2}}],["lrs",{"2":{"156":2}}],["lr",{"2":{"128":3,"136":3}}],["lp",{"2":{"97":2}}],["lstart",{"2":{"97":2}}],["ls",{"2":{"97":12}}],["ll",{"2":{"17":1,"39":1,"151":2,"156":1,"171":1,"173":1}}],["l",{"2":{"14":4,"40":6,"83":2,"97":32}}],["lgeos",{"2":{"156":1}}],["lg",{"2":{"13":1,"14":1,"15":2,"62":4,"152":9,"156":17}}],["l305",{"2":{"6":1}}],["loudly",{"2":{"136":1}}],["log10",{"2":{"152":2,"156":4}}],["log",{"2":{"131":3,"132":1,"151":2}}],["location",{"2":{"45":1,"97":6}}],["local",{"2":{"34":3,"37":1,"45":4,"52":1,"57":1,"128":1}}],["loose",{"2":{"137":1}}],["lookup",{"2":{"128":1,"136":1}}],["looks",{"2":{"43":1}}],["look",{"2":{"36":2,"128":2,"138":1,"151":1}}],["looping",{"2":{"128":1}}],["loop",{"2":{"34":1,"40":2,"44":3,"45":8,"47":1,"54":1,"57":1,"97":5,"128":3,"158":1}}],["lower",{"2":{"6":1,"7":1,"128":1,"176":1}}],["lon",{"2":{"6":2,"151":1,"152":2}}],["longitude",{"2":{"171":2}}],["long",{"2":{"6":1,"54":1,"152":1,"177":1}}],["longer",{"2":{"6":3,"150":1,"152":2,"153":1}}],["lots",{"2":{"171":1}}],["lot",{"2":{"6":1,"23":1,"34":1,"37":1,"44":1,"47":1,"66":1,"69":1,"103":1,"129":1,"151":1,"166":2}}],["load",{"2":{"136":2,"156":1,"169":2}}],["loading",{"2":{"41":1,"148":1,"152":1}}],["loads",{"2":{"5":1,"6":1,"40":1}}],["loaded",{"2":{"1":1,"41":3,"147":1,"148":2,"152":2}}],["laptop",{"2":{"177":1}}],["land",{"2":{"171":8}}],["layers",{"2":{"134":1}}],["label",{"2":{"14":4,"15":2,"60":2,"62":1,"65":1,"128":3,"151":2,"155":2,"156":2}}],["labels",{"2":{"13":2,"128":1}}],["lazily",{"2":{"6":1,"131":1,"136":1}}],["latitude",{"2":{"171":2}}],["later",{"2":{"37":1,"62":1,"128":1}}],["lat",{"2":{"6":3,"151":1,"152":3}}],["larger",{"2":{"45":1,"56":1,"160":1}}],["large",{"2":{"6":8,"40":1,"156":2,"174":1,"177":1}}],["lastindex",{"2":{"160":1}}],["last",{"2":{"4":3,"6":3,"9":1,"34":11,"37":2,"39":2,"45":9,"47":4,"66":7,"69":5,"97":20,"108":1,"128":6,"138":1,"145":2,"158":1}}],["lt",{"2":{"6":6,"54":4,"151":1}}],["len",{"2":{"158":7}}],["length",{"2":{"0":1,"5":1,"6":5,"9":1,"18":1,"40":32,"42":1,"43":1,"44":22,"45":11,"47":1,"50":2,"51":2,"53":1,"54":1,"56":1,"57":1,"97":1,"128":16,"136":3,"145":2,"151":1,"157":1,"158":1,"159":1,"160":7}}],["legend",{"2":{"156":4}}],["le",{"2":{"97":10}}],["leaving",{"2":{"138":1}}],["leaf",{"2":{"136":4}}],["leading",{"2":{"170":1}}],["lead",{"2":{"54":1,"138":1}}],["least",{"2":{"3":4,"6":4,"45":1,"54":1,"57":2,"97":14,"103":6,"106":1,"109":3,"110":2,"111":2,"112":1,"113":1,"116":1,"122":1,"126":1}}],["leftover",{"2":{"45":1}}],["left=1",{"2":{"45":1}}],["left",{"2":{"40":1,"45":5,"126":1,"128":2,"158":17,"160":5,"175":1}}],["lets",{"2":{"37":1}}],["let",{"2":{"36":1,"43":1,"97":1,"128":3,"151":1,"170":6,"171":4,"172":3,"173":2,"174":2,"178":1}}],["levels",{"2":{"6":1,"128":1,"134":1,"164":1}}],["level",{"2":{"6":1,"7":1,"9":1,"18":2,"20":1,"29":1,"134":1,"136":2,"137":1,"139":1,"141":4,"142":1,"143":1,"145":2,"172":2}}],["less",{"2":{"3":1,"6":7,"34":1,"37":1,"40":1,"44":1,"47":1,"66":1,"69":1,"83":1,"103":1,"128":1,"156":1,"157":1}}],["l289",{"2":{"6":1}}],["l2",{"2":{"3":4,"4":4,"6":8,"68":4,"69":12,"71":8,"86":2,"88":5,"102":4,"105":3,"106":2,"115":8}}],["l195",{"2":{"6":1}}],["l177",{"2":{"6":1}}],["l1",{"2":{"3":6,"4":4,"6":10,"68":4,"69":12,"71":8,"74":4,"75":2,"85":4,"86":2,"88":5,"102":4,"105":3,"106":2,"115":8}}],["li",{"2":{"128":2}}],["lie",{"2":{"54":1}}],["lies",{"2":{"45":3,"176":1}}],["limitations",{"2":{"54":1}}],["limits",{"2":{"39":1}}],["limited",{"2":{"6":1,"150":1,"153":1}}],["library",{"2":{"50":1,"174":1}}],["libraries",{"2":{"37":1,"143":1,"174":1}}],["libgeos",{"2":{"6":2,"13":1,"14":1,"15":1,"23":1,"37":1,"41":5,"62":1,"127":1,"152":7,"156":4,"166":2}}],["little",{"2":{"26":1}}],["literate",{"2":{"26":1,"31":1,"34":1,"37":1,"40":1,"41":1,"44":1,"45":1,"47":1,"50":1,"52":1,"54":1,"55":1,"57":1,"63":1,"66":1,"69":1,"72":1,"82":1,"83":1,"86":1,"96":1,"97":1,"100":1,"103":1,"113":1,"123":1,"126":1,"127":1,"128":1,"136":1,"139":1,"142":1,"145":1,"146":1,"148":1,"149":1,"153":1,"160":1,"161":1,"162":1,"166":1,"167":1}}],["lift",{"2":{"14":2}}],["lin",{"2":{"152":5}}],["linked",{"2":{"58":1}}],["linrange",{"2":{"13":2,"14":5,"39":2,"65":1,"128":2,"152":1,"156":2}}],["linering",{"2":{"171":1}}],["linewidth",{"2":{"36":1,"170":1}}],["linesegment",{"2":{"126":2,"153":1}}],["lines",{"0":{"78":1,"92":1,"109":1,"119":1},"2":{"3":1,"4":4,"6":5,"45":3,"49":1,"54":9,"60":1,"61":2,"62":2,"65":1,"68":4,"69":4,"71":3,"74":1,"75":1,"83":1,"85":2,"88":3,"97":2,"99":3,"102":4,"103":2,"105":4,"115":3,"116":1,"128":3,"154":1,"168":2,"170":4}}],["linestrings",{"2":{"4":2,"6":2,"9":1,"69":2,"125":1,"137":1,"170":1}}],["linestringtrait",{"2":{"3":2,"4":4,"6":9,"11":3,"34":1,"44":4,"53":2,"66":2,"69":8,"77":1,"78":4,"79":1,"83":6,"91":1,"92":5,"103":4,"108":1,"109":4,"110":1,"118":1,"119":4,"120":1,"134":1,"141":2,"142":1,"153":2,"164":2}}],["linestring",{"2":{"3":5,"4":6,"6":15,"18":1,"20":1,"34":2,"44":2,"66":4,"68":2,"69":2,"71":2,"72":1,"77":1,"78":3,"86":2,"88":2,"89":1,"91":1,"92":4,"97":2,"102":2,"108":1,"109":3,"110":1,"115":2,"116":1,"118":1,"119":4,"120":1,"126":7,"136":5,"167":4,"168":1,"170":5}}],["linetrait",{"2":{"3":2,"4":4,"6":6,"34":1,"45":2,"50":2,"53":2,"66":2,"69":8,"77":1,"78":4,"79":1,"91":1,"92":5,"103":4,"108":1,"109":4,"110":1,"118":1,"119":4,"120":1}}],["line2",{"2":{"3":3,"6":7,"53":2,"54":2,"83":5,"99":3,"100":2,"103":3,"126":5}}],["line1",{"2":{"3":4,"6":8,"53":2,"54":2,"83":5,"99":3,"100":2,"103":5,"126":5}}],["linea",{"2":{"1":1,"6":1,"161":1}}],["linearmap",{"2":{"156":1}}],["linearalgebra",{"2":{"31":1}}],["linear",{"2":{"4":7,"6":10,"9":1,"37":2,"40":1,"43":1,"44":3,"47":1,"54":1,"66":5,"69":8,"79":1,"97":2,"109":1,"110":2,"119":1,"125":1,"136":2,"139":3,"151":5,"152":3,"153":4}}],["linearr",{"2":{"1":1,"6":1,"161":1}}],["linearrings",{"2":{"9":1,"93":1,"128":6,"137":1,"170":1}}],["linearringtrait",{"2":{"4":4,"6":6,"11":3,"34":3,"37":2,"44":4,"45":4,"53":2,"66":2,"69":8,"77":1,"78":1,"79":4,"91":1,"92":2,"93":3,"108":1,"109":1,"110":4,"118":1,"119":1,"120":4,"141":1,"153":2,"156":1,"164":2}}],["linearring",{"2":{"1":10,"3":2,"4":1,"6":15,"34":2,"44":2,"45":2,"56":2,"57":1,"63":1,"66":1,"77":1,"79":3,"91":1,"92":1,"93":2,"97":2,"103":4,"108":1,"109":1,"110":3,"118":1,"120":4,"126":1,"128":3,"136":7,"137":1,"138":6,"139":1,"144":13,"156":1,"161":8,"167":4,"170":24,"171":6,"172":8,"176":2}}],["linearsegments",{"2":{"0":1,"6":4,"150":1,"151":1,"152":3,"153":5}}],["line",{"0":{"97":1},"2":{"0":1,"3":13,"4":9,"6":52,"23":1,"33":2,"34":7,"43":3,"44":10,"45":12,"47":8,"49":6,"50":18,"53":8,"54":67,"57":6,"66":11,"69":5,"72":2,"74":2,"75":1,"77":2,"78":11,"79":8,"83":11,"85":1,"89":2,"91":1,"92":9,"93":4,"97":141,"99":2,"100":2,"102":3,"103":12,"105":2,"106":2,"108":1,"109":10,"110":3,"116":2,"118":2,"119":10,"120":7,"126":6,"128":2,"153":1,"156":1,"157":1,"158":4,"159":1,"167":3,"170":3}}],["lineorientation",{"2":{"0":1,"6":2,"53":2}}],["lists",{"2":{"20":1,"45":3,"103":1}}],["listed",{"2":{"6":1,"34":1,"156":1}}],["list",{"2":{"6":16,"9":1,"34":20,"45":233,"50":20,"51":14,"52":8,"53":13,"54":5,"56":13,"57":1,"177":2}}],["likely",{"2":{"134":1}}],["like",{"0":{"55":1},"2":{"1":2,"6":9,"17":1,"18":2,"19":1,"20":1,"23":1,"24":1,"29":1,"37":1,"39":1,"40":1,"43":1,"47":1,"51":1,"53":1,"56":1,"63":1,"65":1,"66":1,"69":1,"129":2,"136":2,"141":2,"142":1,"150":1,"151":1,"164":2,"171":2}}],["iah",{"2":{"168":2}}],["image",{"2":{"128":1}}],["impossible",{"2":{"50":1,"102":1}}],["important",{"2":{"151":1}}],["import",{"2":{"1":3,"6":5,"13":2,"14":2,"15":1,"31":7,"33":1,"36":1,"41":1,"43":1,"46":1,"50":1,"51":1,"53":1,"54":1,"56":1,"65":1,"68":1,"69":1,"71":1,"72":1,"74":1,"75":1,"83":1,"85":1,"86":1,"88":1,"89":1,"99":1,"100":1,"102":1,"103":1,"105":1,"106":1,"115":1,"116":1,"126":3,"136":2,"148":1,"152":2,"155":2,"156":3,"161":2,"167":1,"169":5}}],["implements",{"2":{"166":1}}],["implementing",{"2":{"6":1,"156":1}}],["implement",{"2":{"6":1,"17":1,"23":1,"34":1,"37":1,"40":1,"44":1,"47":1,"63":1,"66":1,"69":1,"75":1,"89":1,"103":1,"106":1,"116":1,"129":1,"140":1,"141":3,"142":1}}],["implementation",{"0":{"34":1,"37":1,"44":1,"47":1,"50":1,"63":1,"66":1,"69":1,"72":1,"75":1,"86":1,"89":1,"100":1,"103":1,"106":1,"116":1,"133":1,"139":1,"145":1,"153":1},"2":{"6":1,"34":3,"37":3,"40":1,"44":3,"47":3,"56":1,"66":3,"69":3,"72":1,"75":2,"86":1,"89":2,"100":1,"103":3,"106":2,"116":2,"127":1,"128":2,"147":1,"156":1,"166":1}}],["implementations",{"2":{"6":1,"75":1,"89":1,"106":1,"116":1,"127":1,"154":1,"166":3}}],["implemented",{"0":{"127":1},"2":{"1":1,"6":2,"31":1,"37":1,"40":3,"50":2,"52":2,"54":2,"57":2,"63":1,"66":2,"127":1,"129":2,"141":2,"147":1,"154":1}}],["improvements",{"2":{"9":2,"10":1}}],["improve",{"2":{"4":1,"6":1,"149":1}}],["i=2",{"2":{"126":1}}],["ipoints",{"2":{"97":4}}],["ip",{"2":{"69":2}}],["ipt",{"2":{"45":8}}],["ihole",{"2":{"69":2}}],["ih",{"2":{"57":22}}],["i2",{"2":{"47":2}}],["i1",{"2":{"47":2}}],["ii",{"2":{"45":8}}],["io",{"2":{"41":5,"148":5,"152":5}}],["i+1",{"2":{"40":8,"128":1,"158":2,"160":1}}],["i",{"2":{"9":1,"13":4,"22":1,"34":14,"37":1,"40":16,"45":28,"47":4,"52":2,"56":2,"57":4,"66":2,"69":8,"83":7,"97":28,"126":14,"128":17,"136":16,"153":2,"157":3,"158":12,"160":28,"167":2,"170":2,"171":1,"177":3}}],["id",{"2":{"173":1}}],["identical",{"2":{"136":1,"144":1}}],["identity",{"2":{"128":4,"136":2,"149":1}}],["ideal",{"2":{"128":1}}],["idea",{"2":{"6":1,"20":1,"25":1,"27":1,"40":1,"129":1}}],["idx`",{"2":{"45":1}}],["idx",{"2":{"34":6,"45":167,"47":9,"50":23,"51":5,"53":5,"56":2,"145":34,"158":51}}],["id=",{"2":{"6":2}}],["ignored",{"2":{"6":1,"128":1}}],["ignore",{"2":{"6":1,"128":2}}],["i>",{"2":{"6":2}}],["i>method",{"2":{"6":2}}],["innerjoin",{"2":{"176":1,"177":1}}],["inner",{"2":{"97":6,"136":5,"175":1}}],["inline",{"2":{"97":4,"126":1,"136":22,"165":2}}],["in=1",{"2":{"97":1}}],["in`",{"2":{"97":1}}],["inject",{"0":{"55":1},"2":{"148":1}}],["inaccuracies",{"2":{"54":1}}],["ind",{"2":{"177":2}}],["individual",{"2":{"172":1}}],["indicate",{"2":{"136":1}}],["indicates",{"2":{"20":1}}],["indices",{"2":{"45":4,"136":4,"160":16}}],["indeed",{"2":{"138":1}}],["index",{"2":{"40":8,"45":11,"97":1,"136":1,"158":1}}],["inds",{"2":{"128":3}}],["inplace",{"2":{"40":1}}],["inputs",{"2":{"6":1,"45":1,"69":1,"72":1,"86":1,"100":1,"160":1}}],["input",{"2":{"6":12,"34":1,"50":1,"51":1,"53":1,"54":1,"56":1,"128":1,"129":1,"152":3,"153":2,"157":1,"158":1,"159":1,"171":1}}],["inbounds",{"2":{"40":16,"66":5,"97":1}}],["inspiration",{"2":{"50":1}}],["inspired",{"2":{"49":1,"50":2}}],["inside",{"2":{"34":3,"43":1,"45":3,"47":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":2,"65":3,"66":1,"77":1,"97":1,"115":1,"118":1,"128":2}}],["insertion",{"2":{"45":1}}],["insert",{"2":{"34":1,"158":1}}],["instability",{"2":{"24":2}}],["instantiating",{"2":{"20":1}}],["instead",{"2":{"18":1,"24":1}}],["instructs",{"2":{"6":1,"166":2}}],["init=nothing",{"2":{"136":1}}],["init=typemax",{"2":{"66":2}}],["init=zero",{"2":{"37":1,"47":1}}],["initial",{"2":{"54":2,"152":1}}],["initially",{"2":{"45":1}}],["initialize",{"2":{"40":3,"44":2,"45":1,"54":1}}],["init",{"2":{"19":1,"31":1,"34":1,"44":2,"136":30,"152":4}}],["incorrect",{"2":{"137":1,"138":1}}],["increase",{"2":{"45":1,"97":1}}],["increasing",{"2":{"6":1,"156":1}}],["increment",{"2":{"40":5}}],["including",{"2":{"34":1,"45":2,"54":1,"66":1,"77":1,"78":1,"79":1,"80":1,"97":2}}],["include",{"2":{"31":41,"34":1,"45":1,"58":1,"66":2,"156":2,"165":1,"172":2,"173":1}}],["included",{"2":{"6":2,"57":2,"142":2,"145":2,"172":1}}],["includes",{"2":{"4":2,"6":2,"57":1,"66":2,"69":1,"97":1}}],["incircle",{"0":{"16":1}}],["investigate",{"2":{"128":1}}],["investigating",{"0":{"62":1}}],["inverted",{"2":{"6":1,"63":1}}],["invalid",{"2":{"20":1,"52":2,"138":1,"143":1,"144":1}}],["invoke",{"2":{"20":1}}],["involved",{"2":{"129":1}}],["involve",{"2":{"20":1}}],["involving",{"2":{"6":3,"51":1,"53":1,"56":1}}],["invocation",{"2":{"18":1}}],["ing",{"2":{"1":1,"6":2,"40":1,"161":1}}],["intr",{"2":{"45":28,"47":9,"50":16,"54":8}}],["intr2",{"2":{"45":2,"54":14}}],["intr1",{"2":{"45":3,"54":21,"97":2}}],["intrs",{"2":{"45":10,"54":5}}],["introduction",{"0":{"27":1},"1":{"28":1,"29":1,"30":1}}],["introducing",{"2":{"24":1}}],["introduces",{"2":{"24":1}}],["int",{"2":{"45":6,"57":7,"83":7,"153":1,"156":1,"158":5,"159":1,"160":1}}],["integrate",{"2":{"37":1}}],["integrating",{"2":{"37":1}}],["integrals",{"2":{"36":1}}],["integral",{"2":{"36":1}}],["intended",{"2":{"6":1,"141":2,"142":1}}],["intermediate",{"2":{"47":1}}],["inter2",{"2":{"47":15}}],["inter1",{"2":{"47":23}}],["interpreted",{"2":{"40":1}}],["interpolation",{"2":{"5":1,"6":1,"39":1,"40":2,"150":1}}],["interpolated",{"2":{"5":3,"6":3,"40":17,"150":1}}],["interpolate",{"2":{"0":2,"5":2,"6":4,"38":1,"39":2,"40":25}}],["interest",{"2":{"40":1,"66":1}}],["internal",{"2":{"39":1}}],["internals",{"2":{"24":1}}],["inter",{"2":{"6":3,"45":21,"50":1,"51":1,"53":5,"54":4}}],["interface",{"0":{"141":1},"2":{"6":3,"20":1,"58":1,"63":1,"136":1,"140":1,"141":4,"142":1,"156":1,"171":1}}],["interacted",{"2":{"97":1}}],["interaction",{"0":{"97":1},"2":{"97":2}}],["interactions",{"2":{"45":1,"57":3,"97":15}}],["interactive",{"2":{"13":1,"14":1}}],["interacting",{"2":{"6":1,"53":1,"97":2}}],["interacts",{"2":{"3":1,"6":1,"97":3,"105":1,"106":1,"109":3,"110":1,"111":1}}],["interact",{"2":{"3":2,"6":2,"56":1,"57":1,"88":1,"97":5,"100":1,"105":1,"106":1,"108":1,"109":2,"110":2,"111":1}}],["interior",{"2":{"3":6,"6":7,"34":9,"36":1,"40":7,"44":5,"45":1,"57":18,"71":1,"72":1,"74":1,"75":3,"78":5,"79":1,"80":2,"83":1,"85":2,"86":1,"89":2,"91":2,"92":6,"93":3,"97":15,"105":1,"106":3,"109":1,"110":2,"111":2,"115":1,"116":3,"121":2,"126":2,"139":1,"142":1}}],["interiors",{"2":{"3":6,"6":7,"40":20,"71":1,"72":1,"74":1,"85":1,"86":1,"88":1,"89":1,"94":1,"97":5,"99":1,"100":1,"105":1,"106":1,"108":1,"109":2,"110":1,"115":1,"116":1,"119":3,"120":3}}],["intersectingpolygons",{"2":{"6":3}}],["intersecting",{"0":{"143":1},"1":{"144":1,"145":1},"2":{"6":4,"31":1,"45":2,"57":2,"142":4,"143":1,"145":4}}],["intersections",{"0":{"54":1},"2":{"45":2,"47":2,"52":1,"53":2,"54":1,"57":1,"97":2}}],["intersection",{"0":{"53":1,"98":1},"1":{"99":1,"100":1},"2":{"0":2,"3":3,"6":19,"9":1,"15":4,"23":1,"31":1,"45":38,"47":6,"50":3,"51":4,"52":4,"53":15,"54":73,"56":2,"57":2,"83":2,"97":6,"99":1,"103":5}}],["intersect",{"2":{"3":8,"6":11,"45":4,"47":3,"51":2,"53":1,"54":1,"56":1,"57":5,"71":1,"72":2,"74":1,"75":1,"86":1,"89":1,"92":1,"94":1,"97":4,"99":2,"103":1,"115":1,"116":2,"119":3,"120":3,"144":1,"145":4}}],["intersects",{"0":{"99":1},"2":{"0":2,"3":3,"6":6,"31":1,"45":1,"54":2,"57":2,"83":2,"98":1,"99":4,"100":4,"103":5,"121":1,"145":2,"175":1}}],["into",{"2":{"5":1,"6":7,"17":1,"26":1,"34":1,"37":1,"40":1,"44":4,"45":2,"50":1,"51":1,"53":1,"97":1,"128":4,"131":1,"136":6,"145":1,"156":1,"164":1,"167":2,"170":2,"175":1}}],["int64",{"2":{"1":6,"6":6,"138":6,"157":1,"158":1,"160":1,"161":6,"170":14}}],["info",{"2":{"150":1}}],["information",{"0":{"172":1},"2":{"6":1,"29":1,"40":1,"45":2,"46":1,"54":1,"63":1,"97":1,"169":1,"172":3,"174":2}}],["infinity",{"2":{"97":1,"103":1}}],["inf",{"2":{"1":1,"9":1,"50":2,"157":1,"160":3}}],["in",{"0":{"23":1},"2":{"1":6,"3":3,"4":1,"5":4,"6":51,"7":1,"9":2,"13":6,"14":2,"17":2,"18":4,"20":1,"23":3,"24":2,"25":1,"26":3,"27":1,"29":1,"30":1,"31":2,"34":7,"36":1,"37":3,"38":2,"40":22,"41":1,"43":2,"44":5,"45":72,"47":31,"50":6,"51":9,"52":3,"53":5,"54":29,"56":11,"57":28,"62":1,"63":3,"65":6,"66":6,"68":1,"69":17,"71":2,"72":1,"75":10,"78":1,"79":1,"80":1,"81":1,"82":1,"83":7,"86":1,"89":9,"91":1,"92":1,"93":1,"95":1,"96":1,"97":135,"99":2,"100":1,"102":1,"103":11,"105":1,"106":11,"110":1,"112":1,"113":1,"115":1,"116":10,"119":3,"120":3,"122":1,"123":1,"126":4,"127":3,"128":10,"129":1,"131":3,"134":2,"135":1,"136":12,"140":1,"141":1,"142":2,"143":1,"145":7,"146":2,"147":3,"148":1,"149":1,"150":2,"151":2,"152":14,"153":7,"154":1,"156":5,"157":2,"158":4,"159":1,"160":5,"161":2,"162":1,"163":4,"164":1,"165":1,"166":4,"167":8,"169":1,"170":2,"171":6,"174":2,"175":4,"176":3,"177":1,"178":1}}],["itererable",{"2":{"167":1}}],["iter",{"2":{"136":31}}],["iterate",{"2":{"40":2,"134":1,"136":5}}],["iteration",{"2":{"37":1}}],["iterators",{"2":{"13":1,"40":1,"45":5,"47":3,"53":1,"57":2,"128":1,"136":11,"145":6,"153":1}}],["iterator",{"2":{"6":2,"45":4,"53":2,"131":2,"136":2}}],["iterabletype",{"2":{"136":10}}],["iterable",{"2":{"4":1,"6":3,"18":1,"37":1,"47":1,"63":1,"131":1,"136":37,"170":1}}],["iterables",{"2":{"1":2,"6":2,"22":1,"136":6}}],["ith",{"2":{"45":3,"57":7}}],["itself",{"2":{"47":1,"126":1,"134":1}}],["its",{"2":{"5":1,"6":10,"18":1,"36":1,"40":1,"45":2,"47":4,"57":1,"78":1,"131":1,"136":1,"140":1,"156":1,"157":1,"158":1,"159":3,"175":1}}],["it",{"2":{"1":4,"4":1,"6":19,"9":1,"18":11,"19":2,"20":1,"22":1,"29":3,"30":1,"33":1,"34":1,"36":2,"37":3,"39":1,"41":1,"44":2,"45":2,"46":1,"47":2,"51":1,"52":1,"53":1,"54":4,"56":1,"57":3,"62":2,"63":2,"66":3,"69":1,"74":2,"77":3,"91":3,"97":14,"102":1,"103":1,"108":2,"118":3,"125":1,"126":2,"128":4,"129":3,"131":3,"134":3,"135":1,"136":15,"138":1,"139":1,"140":1,"142":1,"143":1,"147":5,"151":2,"152":1,"156":1,"158":1,"163":1,"164":2,"165":1,"166":7,"171":3,"172":3,"174":3,"177":2,"178":2}}],["iff",{"2":{"136":1}}],["if",{"0":{"55":1},"2":{"1":5,"3":17,"4":19,"5":1,"6":74,"18":1,"22":2,"33":1,"34":15,"36":1,"37":6,"40":5,"41":3,"44":1,"45":95,"47":36,"50":8,"51":13,"52":12,"53":9,"54":44,"56":10,"57":22,"63":3,"65":2,"66":8,"68":2,"69":35,"71":1,"72":1,"74":1,"75":2,"77":4,"78":3,"79":3,"80":2,"81":1,"82":1,"83":9,"85":1,"86":1,"88":1,"89":3,"91":5,"92":4,"93":2,"94":2,"95":1,"96":1,"97":132,"99":1,"100":1,"102":4,"103":16,"105":1,"106":2,"108":4,"109":3,"110":2,"111":2,"112":1,"113":1,"115":1,"116":2,"118":5,"119":3,"120":3,"121":1,"122":1,"123":1,"126":5,"128":35,"131":1,"134":1,"136":21,"139":1,"141":1,"142":2,"143":1,"145":12,"146":1,"147":3,"148":2,"149":1,"152":6,"153":2,"156":1,"158":12,"160":12,"161":1,"162":1,"165":1,"166":2,"171":1,"174":1,"176":2,"177":1}}],["isolate",{"2":{"156":1}}],["isodd",{"2":{"50":1}}],["istable",{"2":{"136":2}}],["isequal",{"2":{"128":1}}],["iseven",{"2":{"97":1}}],["isempty",{"2":{"37":1,"40":4,"47":1,"51":1,"52":2,"53":1,"128":1,"141":1,"158":1}}],["isparallel",{"2":{"97":1,"126":8}}],["is3d",{"2":{"69":1,"136":1,"146":1,"161":1,"162":1,"167":10}}],["issue",{"2":{"45":1}}],["issues",{"2":{"25":1,"27":1}}],["isa",{"2":{"18":1,"40":9,"136":4,"167":1}}],["isnothing",{"2":{"41":1,"45":9,"50":1,"52":2,"54":2,"57":2,"69":1,"128":1,"148":1,"152":1,"156":1,"157":1,"158":5,"159":1,"160":6}}],["isn",{"2":{"6":1,"37":1,"45":4,"47":1,"50":1,"52":1,"54":3,"57":2,"66":3,"69":1,"74":1,"97":9,"103":1,"156":1,"166":1}}],["isconcave",{"0":{"126":1},"2":{"0":1,"6":2,"62":1,"124":1,"126":3}}],["isclockwise",{"0":{"125":1},"2":{"0":1,"6":2,"47":1,"124":1,"126":5,"128":2}}],["is",{"0":{"25":1,"33":1,"36":2,"43":1,"46":1,"49":1,"65":2,"68":1,"71":1,"74":1,"85":1,"88":1,"99":1,"102":1,"105":1,"115":1,"134":1},"2":{"0":1,"1":10,"3":8,"4":43,"5":1,"6":108,"9":3,"11":1,"13":1,"14":1,"18":3,"19":1,"20":1,"22":3,"23":2,"25":2,"27":2,"33":1,"34":19,"36":7,"37":19,"38":2,"39":2,"40":15,"41":3,"43":2,"44":5,"45":82,"46":3,"47":22,"49":1,"50":2,"51":4,"52":13,"53":4,"54":40,"56":7,"57":20,"58":1,"62":5,"63":4,"65":8,"66":23,"69":13,"71":2,"72":3,"74":4,"75":4,"77":7,"78":3,"79":3,"80":1,"81":1,"82":1,"83":3,"86":3,"88":1,"89":5,"91":9,"92":4,"93":2,"94":1,"95":1,"96":1,"97":91,"100":2,"102":3,"103":12,"106":4,"108":2,"115":4,"116":5,"118":8,"119":3,"120":3,"121":1,"122":2,"123":1,"125":2,"126":7,"127":1,"128":11,"129":2,"131":1,"134":3,"135":1,"136":24,"137":7,"138":2,"139":1,"140":3,"141":2,"142":1,"143":4,"144":1,"145":2,"146":1,"147":7,"148":2,"150":3,"151":3,"152":9,"153":6,"155":1,"156":4,"157":1,"158":2,"159":1,"161":2,"163":1,"164":1,"165":1,"166":3,"170":4,"171":5,"172":3,"173":1,"174":3,"175":2,"176":5,"177":2}}],["cpu",{"2":{"177":1}}],["cp",{"2":{"168":1}}],["cy",{"2":{"126":2}}],["cyan",{"2":{"41":1,"148":1,"152":1}}],["cx",{"2":{"126":2}}],["cdot",{"2":{"126":1}}],["cs",{"2":{"97":9}}],["cshape",{"2":{"43":3}}],["cw",{"2":{"47":2}}],["cb",{"2":{"39":1,"62":1,"128":1}}],["cgrad",{"2":{"39":1}}],["cgal",{"2":{"39":1}}],["c",{"2":{"37":1,"43":1,"47":4,"50":5,"55":3,"97":24,"152":1}}],["cleaner",{"2":{"63":1}}],["cleanest",{"2":{"63":1}}],["clear",{"2":{"46":1}}],["clearly",{"2":{"33":1,"36":1,"65":1}}],["clamped",{"2":{"54":18}}],["clamp",{"2":{"34":1,"54":1}}],["classified",{"2":{"45":1}}],["classify",{"2":{"45":4}}],["class",{"2":{"6":1,"128":1}}],["clipping",{"0":{"45":1,"51":1,"52":1,"54":1,"56":1,"57":1},"2":{"6":1,"9":1,"31":8,"45":9,"50":3,"51":1,"53":1,"56":1,"143":1}}],["closure",{"2":{"136":2}}],["closing",{"2":{"34":1}}],["close",{"2":{"34":5,"45":2,"47":1,"50":1,"54":1,"66":9,"128":1,"138":1,"139":4}}],["closest",{"2":{"4":3,"6":3,"54":2,"65":1,"66":6}}],["closed2",{"2":{"69":2}}],["closed1",{"2":{"69":2}}],["closed",{"0":{"137":1},"1":{"138":1,"139":1},"2":{"4":4,"6":11,"9":1,"31":1,"34":6,"37":3,"44":3,"45":1,"47":1,"54":1,"57":3,"69":21,"77":2,"78":5,"79":5,"91":2,"92":5,"93":3,"97":52,"109":5,"110":1,"118":3,"119":5,"120":5,"126":1,"128":1,"137":1,"138":1,"139":2,"140":1,"142":1,"170":1}}],["closedring",{"2":{"0":1,"6":1,"137":1,"138":1,"139":4,"140":1,"141":1,"142":1}}],["clockwise",{"2":{"4":1,"6":4,"9":1,"36":1,"37":1,"47":7,"62":1,"125":2,"126":3,"128":1}}],["ceil",{"2":{"153":1}}],["ce",{"2":{"97":11}}],["certainly",{"2":{"54":1}}],["certain",{"2":{"17":1,"18":1,"26":1,"29":1}}],["central",{"2":{"45":1}}],["centroids",{"2":{"43":1,"44":1}}],["centroid",{"0":{"42":1,"43":1},"1":{"43":1,"44":1},"2":{"0":4,"4":2,"6":6,"31":1,"42":3,"43":4,"44":38,"129":1,"156":4}}],["cent",{"2":{"43":2}}],["centered",{"2":{"45":1}}],["center",{"2":{"6":1,"43":1,"128":1}}],["cells",{"2":{"128":1}}],["cell",{"2":{"6":4,"46":3,"47":28,"128":2}}],["chunks",{"2":{"136":8}}],["chunk",{"2":{"136":12}}],["chose",{"2":{"24":1,"128":1}}],["choose",{"2":{"6":1,"63":1,"128":2}}],["changes",{"2":{"45":1}}],["changed",{"2":{"45":1}}],["change",{"2":{"24":1,"45":1,"62":1}}],["chain=2",{"2":{"45":1}}],["chain=1",{"2":{"45":1}}],["chain",{"2":{"45":66,"52":3,"54":4,"57":4,"62":2}}],["chains",{"2":{"20":1,"45":1}}],["chairmarks",{"2":{"13":1,"152":1,"156":1}}],["children",{"2":{"156":1}}],["child",{"2":{"6":2,"131":2,"136":7}}],["checkargs",{"2":{"157":1,"158":1,"159":1,"160":1}}],["checking",{"2":{"69":1,"158":1}}],["checks",{"0":{"83":1,"98":1},"1":{"99":1,"100":1},"2":{"41":1,"45":1,"54":1,"68":1,"71":1,"74":1,"85":1,"88":1,"97":5,"99":1,"102":1,"103":1,"105":1,"115":1,"176":1}}],["check",{"2":{"4":1,"6":1,"7":1,"44":1,"45":8,"47":3,"50":1,"51":1,"54":4,"55":1,"56":1,"69":8,"97":11,"128":5,"131":3,"132":1,"144":1,"149":1,"151":2,"158":1,"160":1}}],["checked",{"2":{"4":1,"6":1,"45":1,"54":1,"62":1,"97":1,"149":1}}],["c2",{"2":{"6":3,"15":2,"66":3,"69":14,"128":21}}],["c1",{"2":{"6":3,"15":2,"66":4,"69":13,"128":26}}],["ctor",{"2":{"1":1,"6":1,"161":1}}],["categorize",{"2":{"50":1}}],["categorical",{"2":{"39":1}}],["came",{"2":{"50":1}}],["case",{"2":{"34":1,"38":2,"44":1,"45":1,"51":1,"54":2,"57":1,"97":16,"136":1,"178":1}}],["cases",{"2":{"6":1,"40":1,"50":2,"97":3,"134":1,"136":5}}],["cause",{"2":{"18":1,"23":1,"158":1}}],["careful",{"2":{"40":1,"134":1}}],["care",{"2":{"17":1}}],["carried",{"2":{"6":1,"166":1}}],["cairomakie",{"2":{"13":1,"33":1,"36":1,"39":2,"43":1,"46":1,"49":1,"60":1,"61":1,"62":1,"65":1,"68":1,"71":1,"74":1,"85":1,"88":1,"99":1,"102":1,"105":1,"115":1,"151":1,"152":1,"156":1,"168":1,"169":1,"176":1,"177":1}}],["california",{"2":{"177":1}}],["callable",{"2":{"128":4,"141":1}}],["calling",{"2":{"45":2,"136":1}}],["calls",{"2":{"45":1,"54":1,"57":1,"66":1,"75":1,"89":1,"106":1,"116":1,"134":1,"136":1,"153":1}}],["call",{"2":{"18":1,"24":1,"37":1,"44":1,"136":4,"154":1}}],["called",{"2":{"6":2,"44":3,"45":1,"136":1,"139":1,"141":1,"142":1,"166":1,"171":1}}],["calculation",{"2":{"54":1}}],["calculations",{"2":{"6":1,"25":2,"27":2,"54":1,"152":1}}],["calculating",{"2":{"4":1,"6":1,"18":1,"45":1,"149":1}}],["calculated",{"2":{"6":1,"43":2,"47":1,"54":2,"66":1,"136":4}}],["calculates",{"2":{"4":2,"6":6,"37":1,"40":2,"47":1,"54":2,"56":1,"66":2,"152":1,"159":1}}],["calculate",{"2":{"1":2,"5":1,"6":6,"11":1,"34":3,"40":3,"44":1,"47":1,"54":1,"97":1,"128":1,"133":1,"136":3}}],["calc",{"2":{"1":2,"6":4,"24":1,"34":4,"133":1,"135":1,"136":19,"149":1,"156":2,"165":1}}],["cache",{"2":{"6":1,"40":1}}],["cant",{"2":{"69":1,"128":1,"167":1}}],["cannot",{"2":{"3":3,"4":2,"6":5,"37":1,"69":1,"77":1,"80":1,"103":2,"106":1,"108":2,"110":1,"121":1}}],["can",{"2":{"1":1,"4":2,"6":16,"7":2,"9":1,"13":1,"14":1,"24":1,"26":1,"31":1,"34":1,"37":1,"38":2,"39":1,"40":3,"41":1,"44":1,"45":3,"47":1,"51":3,"53":3,"54":1,"56":3,"57":1,"62":1,"63":2,"68":1,"69":3,"71":1,"74":1,"83":1,"88":1,"97":23,"99":2,"102":2,"103":3,"105":1,"109":1,"110":1,"115":1,"118":1,"119":1,"120":1,"127":1,"128":1,"129":1,"131":1,"135":1,"136":7,"138":2,"139":1,"142":1,"143":2,"144":1,"148":1,"149":1,"151":1,"152":2,"156":2,"166":1,"170":6,"171":1,"172":3,"174":3,"175":3,"176":3}}],["creation",{"2":{"170":1,"172":1}}],["creating",{"0":{"169":1,"170":1,"173":1},"1":{"170":1,"171":1,"172":1,"173":1,"174":1},"2":{"97":1}}],["creates",{"2":{"7":1,"45":3}}],["create",{"0":{"172":1},"2":{"6":2,"13":2,"14":1,"45":1,"50":1,"54":2,"63":1,"128":2,"136":1,"142":2,"143":3,"145":2,"169":2,"170":4,"171":5,"172":3,"173":1,"174":1,"176":1}}],["created",{"2":{"4":2,"6":2,"45":1,"66":3}}],["criteria",{"2":{"75":2,"89":2,"106":2,"116":2,"158":3}}],["cropping",{"2":{"39":2}}],["cross=1",{"2":{"53":1}}],["cross`",{"2":{"53":1}}],["crossings",{"2":{"45":3,"97":1}}],["crossing",{"0":{"83":1},"2":{"6":2,"45":81,"51":1,"52":7,"53":3,"54":7,"56":1,"57":6,"75":1,"83":1,"97":1,"116":1}}],["cross",{"0":{"113":1},"2":{"6":1,"9":1,"34":3,"45":13,"50":14,"51":2,"52":1,"53":2,"54":10,"55":4,"56":2,"57":1,"75":1,"83":2,"89":1,"97":17,"103":2,"106":1,"116":1,"126":3}}],["crosses",{"2":{"0":2,"3":2,"6":3,"31":1,"45":1,"50":1,"83":26,"97":2,"175":1}}],["crc",{"2":{"6":1,"40":1}}],["crs2",{"2":{"171":2}}],["crs1",{"2":{"171":2,"172":1}}],["crs`",{"2":{"147":6}}],["crs=geom",{"2":{"167":1}}],["crs=gi",{"2":{"136":8}}],["crs=nothing",{"2":{"136":1,"149":1,"156":1}}],["crs",{"0":{"171":1},"2":{"1":16,"4":2,"6":10,"63":1,"128":10,"133":2,"135":3,"136":31,"147":7,"149":1,"156":1,"167":1,"169":1,"171":13,"172":7,"174":1}}],["customize",{"2":{"136":2}}],["custom",{"0":{"178":1},"2":{"6":1,"40":1,"178":2}}],["curr^2",{"2":{"34":2}}],["curr",{"2":{"34":8,"45":116,"50":9,"57":3,"145":26}}],["currentnode",{"2":{"128":8}}],["current",{"2":{"34":1,"40":8,"45":3,"50":2,"52":1,"54":1,"57":6,"128":2,"145":3}}],["currently",{"2":{"5":1,"6":3,"23":1,"40":1,"45":1,"50":1,"52":2,"128":1,"136":1}}],["curve",{"0":{"97":1},"2":{"3":1,"4":7,"6":18,"34":6,"37":7,"45":5,"47":3,"53":7,"65":1,"66":22,"69":6,"75":2,"77":4,"78":9,"79":9,"89":1,"91":4,"92":6,"93":3,"97":152,"103":1,"106":1,"109":6,"111":3,"116":1,"118":4,"119":6,"120":6}}],["curves",{"2":{"0":1,"3":1,"6":5,"37":3,"47":3,"54":1,"65":1,"66":1,"69":13,"80":1,"97":1,"103":1,"121":1,"156":2}}],["cutpolygon",{"2":{"49":1}}],["cuts",{"2":{"49":1}}],["cutting",{"0":{"48":1},"1":{"49":1,"50":1},"2":{"45":1,"50":2}}],["cut",{"0":{"49":1},"2":{"0":1,"6":6,"31":1,"40":1,"48":1,"49":5,"50":22,"97":1}}],["cos",{"2":{"170":3,"171":1,"172":2}}],["coastlines",{"2":{"168":1}}],["coarse",{"2":{"6":1,"150":1,"153":1}}],["copy",{"2":{"141":1,"160":1}}],["coors1",{"2":{"126":2}}],["coors2",{"2":{"126":3}}],["coord",{"2":{"153":6}}],["coords",{"2":{"50":9,"153":8}}],["coordinatetransformations",{"2":{"1":2,"6":2,"156":1,"161":2,"169":1,"170":5,"172":2}}],["coordinate",{"0":{"40":1,"146":1,"171":1,"172":1},"2":{"1":4,"5":5,"6":7,"25":1,"27":1,"39":2,"40":10,"136":1,"147":4,"153":1,"169":3,"171":1}}],["coordinates",{"0":{"5":1,"38":1},"1":{"39":1,"40":1},"2":{"0":4,"1":1,"4":2,"5":7,"6":20,"37":2,"38":8,"40":25,"45":2,"46":1,"50":2,"51":1,"53":1,"56":1,"66":1,"69":2,"129":1,"146":2,"147":1,"151":1,"152":3,"171":2}}],["co",{"2":{"97":2}}],["corner",{"2":{"47":4,"128":1}}],["corners",{"2":{"47":1}}],["correspondent",{"2":{"126":1}}],["correspond",{"2":{"45":1}}],["corresponding",{"2":{"34":3,"52":2}}],["correctly",{"2":{"151":1}}],["corrected",{"2":{"141":1}}],["correctness",{"2":{"137":1,"166":1}}],["correcting",{"2":{"20":1,"141":1}}],["corrections",{"0":{"140":1,"142":1},"1":{"141":1,"142":1},"2":{"138":1,"141":6,"144":1}}],["correction",{"2":{"6":10,"31":4,"51":1,"52":2,"53":1,"54":2,"56":1,"57":2,"137":1,"139":2,"140":2,"141":8,"142":7,"143":1,"145":2}}],["correct",{"2":{"6":3,"24":1,"34":1,"37":1,"44":1,"45":1,"47":1,"51":1,"53":1,"56":1,"66":1,"69":1,"75":1,"89":1,"103":1,"106":1,"116":1,"137":1,"138":2,"140":1}}],["cov",{"2":{"47":16}}],["cover",{"2":{"77":1,"81":1}}],["covering",{"2":{"6":2,"85":1,"142":2,"145":2}}],["covered",{"0":{"79":1,"80":1,"120":1},"2":{"3":1,"6":1,"52":1,"57":1,"74":1,"75":1,"79":2,"80":2,"81":1,"82":2,"85":1,"96":2,"97":3,"145":1}}],["coveredby",{"0":{"73":1,"74":1,"77":1,"78":1,"81":1,"82":1,"96":1},"1":{"74":1,"75":1},"2":{"0":2,"3":4,"6":4,"31":1,"45":1,"73":1,"74":3,"75":10,"76":6,"77":13,"78":15,"79":13,"80":5,"81":2,"82":2,"86":3,"175":1}}],["covers",{"0":{"84":1,"85":1},"1":{"85":1,"86":1},"2":{"0":2,"3":5,"6":5,"31":1,"84":1,"85":4,"86":5,"128":1,"175":1}}],["coverages",{"2":{"6":1,"47":1}}],["coverage",{"0":{"46":1},"2":{"0":1,"6":2,"31":1,"46":3,"47":16}}],["code",{"2":{"7":1,"10":1,"26":5,"40":1,"75":1,"89":1,"97":1,"106":1,"116":1,"126":1,"163":1,"165":1,"177":1}}],["colname",{"2":{"136":3}}],["col",{"2":{"136":3}}],["column",{"2":{"22":1,"136":16,"173":2,"175":2}}],["colored",{"2":{"176":1}}],["color=",{"2":{"171":2}}],["colors",{"2":{"60":1,"61":1,"168":1,"176":2}}],["colorrange",{"2":{"39":2,"65":1}}],["colorbar",{"2":{"39":1,"62":1,"65":1,"128":1}}],["colormap",{"2":{"14":1,"39":3,"65":1}}],["color",{"2":{"6":3,"36":1,"39":2,"40":1,"41":1,"43":1,"49":3,"60":1,"61":1,"62":2,"65":2,"68":4,"71":4,"74":1,"85":1,"88":4,"102":4,"115":4,"148":1,"152":1,"168":1,"170":1,"171":1,"176":5}}],["collect",{"2":{"11":3,"13":1,"33":1,"36":2,"40":1,"43":1,"46":2,"49":2,"63":2,"65":1,"128":3,"136":3,"151":4,"167":2}}],["collections",{"0":{"81":1,"82":1,"95":1,"96":1,"112":1,"113":1,"122":1,"123":1},"2":{"1":2,"6":10,"22":1,"135":1,"136":7,"156":2,"174":1}}],["collection",{"2":{"1":1,"4":7,"6":13,"18":2,"29":2,"34":2,"37":3,"47":2,"66":2,"81":2,"82":2,"95":2,"96":2,"112":2,"113":2,"122":2,"123":2,"129":1,"136":3,"156":1,"162":1,"167":1}}],["collinear",{"2":{"3":1,"6":2,"45":5,"51":2,"53":3,"54":12,"56":2,"102":1,"103":2}}],["commonly",{"2":{"174":1}}],["common",{"2":{"68":1,"153":1,"169":1,"171":1,"172":1}}],["commented",{"2":{"126":1}}],["comments",{"2":{"97":1}}],["comment",{"2":{"30":1}}],["combos",{"2":{"52":1,"54":1,"57":1}}],["combines",{"2":{"44":1}}],["combine",{"2":{"44":2,"45":5,"145":1}}],["combined",{"2":{"6":1,"45":4,"57":1,"142":1,"145":2,"170":1}}],["combination",{"2":{"6":1,"45":1,"131":1,"136":1}}],["coming",{"2":{"47":1}}],["com",{"2":{"6":2,"54":1,"63":1}}],["compilation",{"2":{"165":1}}],["compiled",{"2":{"24":1}}],["compiler",{"2":{"24":1,"136":2,"165":2}}],["complex",{"2":{"129":1,"156":1,"175":1}}],["complexity",{"2":{"6":1,"129":1,"153":1}}],["complete",{"2":{"37":1}}],["completely",{"2":{"1":1,"3":4,"6":5,"45":2,"52":1,"57":1,"71":2,"72":1,"75":1,"85":1,"86":1,"97":1,"116":1,"136":1}}],["component",{"2":{"6":1,"37":3,"44":11,"47":8,"54":1,"131":1,"136":3}}],["components",{"2":{"6":2,"43":1,"44":2,"131":2,"136":24}}],["composed",{"2":{"4":4,"6":5,"69":5,"170":2}}],["comprised",{"2":{"6":3,"51":1,"53":1,"56":1}}],["computing",{"2":{"41":1,"58":1}}],["computational",{"2":{"6":1,"40":1}}],["computation",{"2":{"6":6,"40":1,"44":1,"51":1,"53":1,"56":1,"157":2,"158":2,"159":2}}],["computer",{"2":{"6":1,"40":1}}],["computes",{"2":{"6":1,"63":1}}],["compute",{"2":{"4":1,"6":3,"37":1,"40":1,"63":3,"153":1}}],["computed",{"2":{"4":4,"6":5,"34":1,"37":3,"40":3,"47":1,"168":1}}],["compact",{"2":{"177":3}}],["comparisons",{"2":{"175":1}}],["comparing",{"2":{"57":1,"69":1}}],["compares",{"2":{"128":1}}],["compared",{"2":{"69":1}}],["compare",{"2":{"3":1,"4":1,"6":2,"34":1,"57":1,"69":2,"103":1}}],["compatibility",{"2":{"37":1}}],["compatible",{"2":{"1":3,"6":1,"22":1,"25":1,"27":1,"34":1,"37":1,"40":2,"44":1,"47":1,"66":1,"69":1,"72":1,"75":1,"86":1,"89":1,"100":1,"103":1,"106":1,"116":1,"134":1,"136":1,"147":2}}],["couple",{"2":{"173":1}}],["course",{"2":{"135":1}}],["country",{"2":{"177":8}}],["countries",{"2":{"11":1,"61":1,"156":1}}],["counted",{"2":{"54":2}}],["counters",{"2":{"40":8}}],["counter",{"2":{"6":1,"45":7,"97":1,"125":1,"126":1}}],["counterclockwise",{"2":{"4":1,"6":2,"9":1,"36":2,"37":1,"62":1,"63":1}}],["count",{"2":{"45":16,"128":1,"160":1}}],["couldn",{"2":{"9":1,"165":1}}],["could",{"2":{"4":1,"6":1,"37":3,"54":4,"57":1,"58":1,"66":1,"97":2,"147":1}}],["conditions",{"2":{"175":1}}],["connected",{"2":{"97":5}}],["connect",{"2":{"47":11}}],["connecting",{"2":{"34":1,"158":1,"170":2}}],["connections",{"2":{"6":2,"142":2,"145":2}}],["context",{"2":{"152":4,"171":2}}],["contents",{"2":{"136":1,"137":1}}],["contours",{"2":{"128":1}}],["contour",{"2":{"128":4}}],["continue",{"2":{"37":1,"45":7,"47":1,"52":2,"54":1,"97":1,"141":1,"145":3,"160":1,"177":1}}],["contributions",{"2":{"25":1,"27":1}}],["controlled",{"2":{"24":1}}],["control",{"2":{"23":1}}],["containing",{"2":{"46":1,"176":1}}],["contain",{"2":{"3":1,"6":1,"26":1,"57":1,"71":1,"103":1,"170":1}}],["contained",{"2":{"3":1,"6":1,"9":1,"57":4,"72":1,"85":1,"102":1,"103":1,"136":1,"176":1}}],["contains",{"0":{"70":1,"71":1},"1":{"71":1,"72":1},"2":{"0":2,"3":4,"6":4,"26":1,"31":1,"45":1,"57":1,"58":1,"70":1,"71":5,"72":4,"134":1,"144":1,"175":1,"176":1}}],["consistent",{"2":{"45":1,"129":1}}],["consistency",{"2":{"22":1}}],["considered",{"2":{"34":1,"40":1}}],["consider",{"2":{"33":1,"36":1,"43":1,"46":1,"47":3,"49":1,"65":2,"68":1,"71":1,"74":1,"85":1,"88":1,"97":3,"99":1,"102":1,"105":1,"115":1}}],["constprop",{"2":{"83":1}}],["constants",{"2":{"45":1}}],["const",{"2":{"31":4,"45":1,"75":4,"89":3,"106":4,"116":4,"133":3,"136":1,"156":4}}],["constrained",{"2":{"6":3,"51":1,"53":1,"56":1}}],["constructing",{"2":{"172":1}}],["construct",{"2":{"164":1}}],["constructors",{"2":{"6":2,"164":2}}],["constructed",{"2":{"1":1,"20":1,"147":1}}],["concepts",{"0":{"28":1},"1":{"29":1,"30":1},"2":{"26":1}}],["concieve",{"2":{"9":1}}],["concavehull",{"2":{"127":1}}],["concave",{"2":{"6":1,"34":2,"43":2,"126":2}}],["convention",{"2":{"43":1}}],["convenience",{"2":{"40":1,"166":1}}],["conversely",{"2":{"45":1}}],["conversion",{"0":{"162":1},"2":{"22":1}}],["converted",{"2":{"22":1,"40":3}}],["converts",{"2":{"6":1,"167":1}}],["convert",{"0":{"76":1,"90":1,"107":1,"117":1},"2":{"6":3,"40":6,"63":1,"65":1,"128":2,"152":1,"156":3,"162":1,"166":1,"167":1}}],["convexhull",{"2":{"127":1}}],["convexity",{"2":{"62":2}}],["convex",{"0":{"58":1,"61":1},"1":{"59":1,"60":1,"61":1,"62":1,"63":1},"2":{"0":1,"6":7,"31":2,"34":3,"58":4,"60":2,"61":1,"62":4,"63":11,"126":1}}],["vw",{"2":{"156":3}}],["von",{"2":{"128":1}}],["v2",{"2":{"97":9}}],["v1",{"2":{"97":9}}],["v`",{"2":{"40":2}}],["vcat",{"2":{"34":1,"40":1,"136":1}}],["vararg",{"2":{"40":1}}],["vary",{"2":{"34":1}}],["variables",{"2":{"24":1,"40":8,"72":1,"86":1,"100":1}}],["variable",{"2":{"24":1,"52":2}}],["vals",{"2":{"158":9}}],["valign",{"2":{"156":1}}],["validated",{"2":{"52":2,"54":2,"57":2}}],["validate",{"2":{"9":1}}],["valid",{"2":{"1":1,"6":8,"44":1,"51":2,"53":2,"54":3,"56":2,"128":1,"137":3,"138":1,"143":1,"144":1,"160":1,"161":1}}],["val",{"2":{"34":2,"45":2,"54":8,"97":30,"103":4}}],["values=",{"2":{"128":2}}],["values=sort",{"2":{"128":1}}],["values",{"2":{"1":1,"5":3,"6":16,"34":2,"39":3,"40":40,"44":2,"45":5,"47":5,"54":1,"66":2,"97":4,"128":19,"136":2,"158":2,"160":1,"165":1}}],["value",{"2":{"0":1,"4":7,"5":2,"6":15,"14":1,"24":1,"34":1,"36":2,"37":4,"40":45,"45":5,"47":2,"54":7,"65":1,"66":3,"128":6,"158":11,"166":2,"175":1}}],["vs",{"0":{"15":1},"2":{"12":1,"54":2}}],["vᵢ",{"2":{"6":1}}],["v0",{"2":{"6":2}}],["v",{"2":{"5":2,"6":6,"14":4,"40":23,"66":8}}],["visvalingam",{"2":{"154":1}}],["visvalingamwhyatt",{"0":{"159":1},"2":{"0":1,"6":3,"156":4,"159":5}}],["visualized",{"2":{"138":1}}],["visualize",{"2":{"99":1,"171":1}}],["visa",{"2":{"45":1}}],["visited",{"2":{"45":4}}],["view",{"2":{"45":2,"63":1,"128":1,"145":1,"158":3,"177":1}}],["viewport",{"2":{"14":1}}],["views",{"2":{"1":1,"45":1,"56":1,"147":1}}],["via",{"2":{"6":1,"41":1,"58":1,"127":1,"148":1,"152":1,"166":2}}],["vec",{"2":{"63":2}}],["vect",{"2":{"136":2}}],["vectypes",{"2":{"40":5}}],["vector",{"2":{"1":12,"4":6,"5":1,"6":46,"18":1,"23":1,"29":1,"33":1,"34":10,"40":14,"45":7,"50":6,"51":4,"52":1,"53":2,"54":3,"56":4,"97":1,"103":2,"126":3,"128":4,"129":1,"136":6,"138":8,"139":1,"144":22,"150":1,"151":1,"153":1,"157":1,"158":4,"159":1,"160":2,"161":10,"167":15,"170":18,"171":6,"172":9}}],["vectors",{"2":{"1":1,"4":2,"6":5,"22":1,"34":4,"40":3,"45":1,"63":1,"66":1,"125":1,"128":1,"136":2,"156":1}}],["ve",{"2":{"17":1,"153":1}}],["vein",{"2":{"7":1}}],["version",{"2":{"166":1}}],["versa",{"2":{"45":1}}],["vert",{"2":{"160":21}}],["verts",{"2":{"156":2}}],["vertical",{"2":{"39":1,"47":1,"54":1,"128":1}}],["vertices",{"2":{"6":7,"9":1,"38":4,"40":5,"45":1,"50":2,"63":1,"77":1,"79":5,"88":1,"91":3,"94":1,"97":1,"118":1,"138":1,"150":2,"151":1,"152":3,"153":3,"156":1,"159":1}}],["vertex",{"2":{"5":1,"6":2,"34":1,"38":2,"40":2,"45":19,"54":12,"62":1,"77":2,"92":2,"93":1,"97":1,"118":3}}],["very",{"2":{"0":1,"151":1,"177":2}}],["ty",{"2":{"128":3}}],["typing",{"2":{"41":1,"148":1,"152":1}}],["typically",{"2":{"38":1,"173":1}}],["typemax",{"2":{"66":1,"128":9}}],["typeof",{"2":{"19":1,"40":3,"136":2,"164":1,"178":1}}],["type2",{"2":{"6":2,"69":4}}],["type1",{"2":{"6":2,"69":5}}],["types",{"0":{"132":1,"163":1},"1":{"164":1,"165":1,"166":1},"2":{"6":4,"23":1,"24":1,"31":1,"40":3,"47":1,"50":1,"97":3,"156":1,"163":3,"165":1,"175":1}}],["type",{"2":{"4":11,"5":1,"6":62,"11":1,"22":2,"23":1,"24":2,"30":2,"34":9,"37":11,"39":1,"40":8,"44":8,"45":21,"47":8,"50":6,"51":7,"52":6,"53":8,"54":19,"56":7,"57":5,"66":28,"69":2,"131":2,"136":42,"140":1,"141":6,"142":6,"146":1,"152":1,"153":1,"156":3,"162":1,"164":3,"165":5,"166":1,"167":3,"168":1}}],["tx",{"2":{"128":3}}],["tᵢ",{"2":{"40":1}}],["temporary",{"2":{"45":1}}],["term",{"2":{"37":1}}],["terms",{"2":{"6":1,"40":1}}],["teach",{"2":{"26":1}}],["technically",{"2":{"23":1,"137":1}}],["technique",{"2":{"11":1}}],["tell",{"2":{"18":1,"97":1,"165":1,"178":1}}],["test",{"2":{"45":1,"156":2,"166":1}}],["testing",{"0":{"15":1}}],["tests",{"2":{"9":2}}],["tutorial",{"2":{"169":1,"175":1}}],["tutorials",{"2":{"26":2}}],["tups",{"2":{"139":4}}],["tuplepoint",{"2":{"31":3,"167":1}}],["tuple",{"0":{"162":1},"2":{"4":1,"6":19,"31":2,"40":2,"44":3,"45":5,"47":3,"50":1,"54":31,"97":17,"126":2,"128":5,"136":2,"138":6,"144":13,"151":1,"156":2,"158":1,"160":2,"167":6,"170":99,"176":2}}],["tuples",{"2":{"0":1,"6":2,"31":1,"41":1,"44":1,"45":1,"50":1,"51":3,"52":1,"53":2,"54":1,"56":4,"57":5,"63":2,"139":2,"145":2,"156":2,"162":2,"177":2}}],["turf",{"2":{"126":1}}],["turned",{"2":{"128":1,"136":1}}],["turning",{"2":{"128":8}}],["turn",{"2":{"6":1,"128":1}}],["t2",{"2":{"6":5,"40":47,"76":1,"83":2,"107":1,"117":1}}],["t1",{"2":{"6":6,"40":51,"83":2}}],["t=float64",{"2":{"4":1,"6":3,"44":3}}],["two",{"2":{"3":5,"4":10,"6":23,"23":2,"34":2,"36":1,"40":1,"44":1,"45":6,"47":3,"51":2,"53":1,"54":14,"56":4,"57":3,"66":5,"68":3,"69":12,"71":2,"72":1,"74":1,"83":1,"85":1,"86":1,"88":1,"97":2,"99":2,"100":2,"102":4,"103":5,"105":3,"106":1,"115":2,"128":3,"141":2,"142":1,"144":2,"145":2,"151":1,"166":1,"170":1,"175":3,"176":3}}],["task",{"2":{"136":6}}],["tasks",{"2":{"136":10}}],["taskrange",{"2":{"136":10}}],["tags",{"2":{"45":4}}],["taget",{"2":{"6":2}}],["taylor",{"2":{"6":1,"40":1}}],["table2",{"2":{"175":1}}],["table1",{"2":{"175":3}}],["tables",{"2":{"22":4,"31":1,"136":11}}],["table",{"0":{"173":1},"2":{"6":1,"18":1,"29":2,"136":12,"156":1,"173":1,"174":1,"175":1}}],["taking",{"2":{"6":3,"44":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"143":1}}],["takes",{"2":{"45":3,"175":1}}],["taken",{"2":{"20":1,"39":1}}],["take",{"2":{"1":1,"6":2,"29":1,"45":3,"51":1,"52":1,"53":1,"54":1,"57":1,"126":2,"128":2,"129":1,"147":1}}],["target=nothing",{"2":{"51":1,"53":1,"56":1}}],["target=gi",{"2":{"45":1}}],["targets",{"2":{"23":1,"34":2,"37":3,"47":3,"66":3}}],["target",{"0":{"23":1},"2":{"1":14,"6":28,"15":3,"22":2,"23":2,"40":1,"44":2,"45":1,"51":5,"52":11,"53":6,"54":10,"56":4,"57":13,"128":1,"129":1,"131":4,"134":5,"135":1,"136":144,"145":2,"147":3,"156":2,"164":3}}],["tilted",{"2":{"47":1}}],["tie",{"2":{"34":1}}],["timings",{"2":{"13":5}}],["timing",{"2":{"13":2}}],["times",{"2":{"4":1,"6":1,"149":1}}],["time",{"2":{"1":5,"13":3,"24":1,"39":1,"128":1,"147":4,"166":1,"170":1,"171":1,"172":2,"176":1,"177":1}}],["title",{"2":{"13":2,"39":2,"62":2,"128":1,"152":1,"156":2}}],["tip",{"2":{"1":1,"5":1,"6":1,"40":1,"147":1,"175":1}}],["tree",{"2":{"175":1}}],["treating",{"2":{"156":1}}],["treated",{"2":{"97":5,"170":1}}],["treats",{"2":{"37":1,"66":1}}],["trials",{"2":{"152":2,"156":2}}],["triangles",{"2":{"38":1}}],["triangle",{"2":{"6":1,"38":4,"159":4,"176":1}}],["triangulation",{"2":{"6":1,"31":1,"63":1}}],["trivially",{"2":{"129":1}}],["try",{"2":{"55":3,"128":1,"134":1,"136":9,"177":1}}],["tr",{"2":{"37":3}}],["trues",{"2":{"145":3}}],["true",{"0":{"24":1},"2":{"1":5,"3":25,"4":3,"6":42,"34":7,"37":1,"39":2,"41":1,"45":30,"47":6,"50":1,"51":1,"52":2,"53":1,"54":1,"56":2,"57":3,"66":4,"69":21,"71":1,"72":1,"74":2,"75":6,"77":1,"78":1,"79":4,"81":1,"82":1,"83":9,"85":2,"86":1,"88":2,"89":2,"91":1,"92":1,"93":3,"95":1,"96":1,"97":78,"99":3,"100":1,"102":2,"103":18,"105":2,"106":6,"109":1,"110":1,"112":1,"113":1,"115":2,"116":7,"118":1,"119":1,"120":4,"122":1,"123":1,"126":4,"128":5,"136":8,"145":1,"148":1,"152":1,"156":1,"165":2,"175":1,"178":1}}],["traditional",{"2":{"128":1}}],["traverse",{"2":{"45":1}}],["traced",{"2":{"45":1}}],["traces",{"2":{"45":1}}],["trace",{"2":{"45":2,"51":1,"53":1,"56":1}}],["track",{"2":{"45":3,"145":2}}],["tracing",{"2":{"6":1,"45":4,"47":1,"52":5,"54":2,"57":2}}],["transverse",{"2":{"171":1}}],["translate",{"2":{"39":2}}],["translation",{"2":{"1":2,"6":2,"156":2,"161":2,"170":3,"172":1}}],["transformations",{"2":{"31":10}}],["transformation",{"0":{"161":1},"2":{"6":1,"128":1,"140":1,"147":1,"169":1}}],["transform",{"2":{"0":2,"1":6,"6":3,"15":2,"31":1,"129":1,"147":2,"156":1,"161":4,"170":4,"172":1}}],["trait`",{"2":{"136":1}}],["trait2",{"2":{"66":10,"69":2,"91":2,"92":2,"103":2,"108":2,"110":2,"111":2}}],["trait1",{"2":{"66":12,"69":2,"91":2,"92":2,"103":2,"108":2,"110":2,"111":2}}],["traits",{"2":{"6":2,"18":1,"103":1,"134":2,"141":2,"156":2,"164":3}}],["trait",{"2":{"1":5,"3":2,"4":2,"6":17,"18":7,"20":1,"22":1,"31":1,"34":2,"37":5,"40":6,"44":7,"47":2,"50":3,"51":2,"52":2,"53":6,"54":4,"56":2,"57":2,"66":7,"69":11,"75":3,"83":2,"89":3,"97":4,"103":10,"106":3,"116":3,"126":1,"129":1,"131":2,"134":3,"136":51,"141":9,"142":1,"153":1,"156":2,"164":8,"167":7,"170":1}}],["traittarget",{"0":{"164":1},"2":{"0":1,"1":2,"6":8,"34":1,"37":1,"44":1,"47":1,"51":2,"52":4,"53":3,"54":4,"56":2,"57":4,"66":1,"129":2,"132":1,"136":11,"153":1,"156":1,"163":1,"164":20}}],["thus",{"2":{"34":1,"37":1,"45":3,"52":1,"54":1,"57":1}}],["those",{"2":{"34":1,"45":1,"54":1,"77":1,"118":1}}],["though",{"2":{"20":1,"138":1}}],["thing",{"0":{"30":1}}],["things",{"2":{"9":1}}],["this",{"0":{"30":1},"2":{"0":1,"1":1,"3":1,"4":6,"5":1,"6":30,"7":1,"18":1,"23":3,"24":2,"25":2,"27":2,"29":1,"31":1,"33":2,"34":6,"36":2,"37":9,"39":3,"40":11,"41":2,"43":1,"44":4,"45":26,"46":1,"47":4,"49":1,"50":5,"52":1,"54":5,"55":1,"56":1,"57":2,"63":5,"65":4,"66":6,"69":4,"71":1,"72":2,"74":3,"75":3,"82":1,"83":1,"85":1,"86":2,"89":3,"96":1,"97":3,"100":2,"102":1,"103":4,"106":3,"113":1,"115":1,"116":3,"123":1,"125":1,"126":3,"127":2,"128":8,"129":2,"134":2,"136":17,"137":3,"139":3,"140":1,"141":6,"142":7,"143":4,"145":3,"146":2,"147":4,"148":3,"149":2,"150":3,"151":5,"152":5,"153":4,"154":2,"156":3,"160":9,"161":1,"162":1,"163":3,"164":2,"165":3,"166":2,"167":1,"169":1,"170":2,"171":4,"172":3,"173":3,"174":1,"175":3,"176":3,"177":3,"178":1}}],["three",{"2":{"26":1,"38":1,"54":1}}],["thread",{"2":{"136":6}}],["threading",{"0":{"136":1},"2":{"136":7,"165":1}}],["threads",{"2":{"1":1,"6":1,"136":10}}],["threaded=",{"2":{"136":9}}],["threaded=true",{"2":{"136":1}}],["threaded=false",{"2":{"37":1,"44":4,"47":2,"66":8,"136":2,"149":1,"156":1}}],["threaded==true",{"2":{"1":1,"6":1,"136":1}}],["threaded",{"2":{"1":3,"4":1,"6":7,"24":1,"34":2,"37":1,"44":3,"47":3,"66":5,"133":1,"136":49,"149":1,"153":6,"156":1,"165":2}}],["through",{"2":{"6":4,"34":1,"40":1,"45":3,"47":1,"49":1,"50":2,"63":1,"75":1,"97":5,"116":1,"128":1,"134":1,"136":1,"142":2,"145":2,"158":1,"166":1,"170":1}}],["thrown",{"2":{"134":1}}],["throws",{"2":{"6":1,"166":1}}],["throw",{"2":{"4":1,"6":1,"57":1,"69":1,"128":1,"136":5}}],["than",{"2":{"1":1,"3":1,"6":11,"11":1,"45":2,"77":1,"83":1,"103":1,"118":1,"126":1,"128":2,"135":1,"136":1,"142":2,"143":1,"144":1,"145":2,"150":1,"152":2,"153":1,"157":1,"166":2}}],["that",{"2":{"1":1,"3":3,"4":8,"6":44,"9":1,"17":1,"18":4,"19":3,"20":1,"22":3,"25":1,"26":1,"27":1,"34":4,"36":2,"37":4,"40":4,"41":2,"43":2,"44":3,"45":17,"46":3,"47":5,"51":4,"52":5,"53":4,"54":14,"56":3,"57":5,"58":1,"62":3,"63":4,"66":2,"68":1,"69":11,"71":4,"72":1,"74":2,"75":1,"86":1,"88":1,"89":1,"97":3,"99":1,"100":1,"102":2,"103":10,"105":2,"106":2,"108":2,"115":3,"116":1,"118":3,"126":1,"128":4,"129":1,"131":2,"136":4,"137":3,"138":2,"139":1,"140":3,"141":2,"142":4,"143":2,"144":3,"145":4,"147":1,"150":2,"151":2,"152":3,"153":2,"156":2,"158":1,"160":1,"164":1,"165":1,"166":1,"171":4,"172":1,"173":2,"174":3,"175":1,"176":2}}],["theorem",{"2":{"66":1}}],["themselves",{"2":{"40":1}}],["them",{"2":{"6":1,"25":1,"27":1,"45":1,"127":2,"128":2,"131":1,"136":1,"138":2,"143":1,"144":1,"156":1,"170":1,"172":1,"174":3}}],["thereof",{"2":{"129":1}}],["therefore",{"2":{"65":1,"137":1}}],["there",{"2":{"6":3,"22":1,"34":1,"40":2,"41":1,"45":3,"47":1,"50":2,"52":1,"54":6,"55":1,"57":1,"97":1,"103":2,"127":1,"128":3,"129":1,"136":4,"138":1,"151":1,"160":1,"164":1,"166":1,"171":2,"174":3}}],["then",{"2":{"6":5,"18":1,"22":1,"29":1,"34":3,"40":2,"45":6,"47":1,"51":1,"53":2,"54":6,"55":2,"56":2,"57":2,"63":1,"97":1,"128":2,"134":1,"136":3,"143":1,"152":2,"156":1,"171":1,"175":1,"176":1}}],["their",{"2":{"3":1,"4":1,"6":2,"40":1,"43":2,"57":1,"66":2,"94":1,"103":1,"105":1,"109":1,"110":1,"119":3,"120":3,"129":1,"136":1,"138":1,"144":1,"149":1}}],["they",{"2":{"3":3,"4":11,"6":25,"20":2,"22":1,"23":1,"24":1,"38":1,"44":2,"45":8,"47":2,"51":2,"53":1,"54":6,"56":2,"57":3,"62":1,"68":3,"69":16,"75":1,"88":1,"92":2,"93":1,"94":1,"97":2,"99":1,"102":2,"103":4,"108":1,"110":1,"111":1,"119":1,"120":1,"128":6,"136":1,"137":1,"142":2,"145":2,"151":1,"160":1,"163":1,"176":1}}],["these",{"2":{"1":2,"6":5,"24":1,"34":1,"40":5,"45":3,"57":1,"68":1,"69":1,"71":1,"75":1,"83":2,"85":1,"88":1,"89":1,"99":1,"102":1,"103":1,"105":2,"106":1,"115":1,"116":1,"126":1,"128":3,"134":1,"136":2,"147":1,"152":1,"156":2,"166":1,"174":1,"175":1}}],["the",{"0":{"26":1,"29":1,"43":1,"61":1,"62":1},"2":{"1":28,"3":64,"4":112,"5":12,"6":403,"7":5,"9":3,"10":1,"11":3,"17":5,"18":10,"19":2,"20":4,"22":4,"23":5,"24":3,"25":3,"26":4,"27":3,"29":3,"33":1,"34":63,"36":12,"37":43,"38":15,"39":12,"40":71,"41":6,"43":6,"44":25,"45":116,"46":7,"47":47,"49":2,"50":7,"51":27,"52":23,"53":27,"54":82,"55":1,"56":29,"57":70,"58":6,"62":11,"63":16,"65":11,"66":81,"68":5,"69":47,"71":9,"72":11,"74":8,"75":25,"78":8,"79":9,"80":3,"81":3,"82":2,"83":5,"85":4,"86":11,"88":2,"89":21,"91":8,"92":6,"93":4,"95":3,"96":2,"97":123,"99":5,"100":6,"102":5,"103":26,"105":5,"106":21,"108":6,"109":10,"110":7,"111":3,"112":3,"113":2,"115":7,"116":24,"118":2,"119":9,"120":9,"121":6,"122":2,"123":2,"125":1,"126":8,"127":1,"128":47,"129":8,"131":4,"133":2,"134":11,"136":85,"137":5,"138":5,"139":4,"140":2,"141":13,"142":10,"143":4,"144":8,"145":6,"146":5,"147":14,"148":2,"149":1,"150":3,"151":5,"152":26,"153":17,"154":3,"156":18,"157":3,"158":6,"159":3,"160":2,"161":3,"162":1,"163":2,"165":5,"166":21,"170":10,"171":11,"172":10,"173":2,"174":4,"175":10,"176":17,"177":3}}],["t",{"2":{"0":1,"4":28,"6":56,"9":1,"23":1,"31":8,"34":32,"37":41,"40":26,"44":38,"45":74,"47":44,"50":18,"51":12,"52":12,"53":12,"54":156,"56":10,"57":20,"66":87,"69":17,"74":1,"92":1,"97":24,"103":1,"105":1,"109":2,"110":1,"128":14,"136":10,"142":2,"145":2,"152":3,"153":5,"156":1,"162":7,"164":14,"165":2,"166":3,"167":10,"170":4,"177":1}}],["tokyo",{"2":{"177":1}}],["toy",{"2":{"175":1}}],["together",{"2":{"54":1,"57":1,"170":1,"176":1}}],["touching",{"0":{"109":1},"2":{"54":1,"57":1}}],["touch",{"0":{"110":1,"111":1,"112":1},"2":{"45":1,"105":1,"108":2,"110":1,"112":1}}],["touches",{"0":{"104":1,"105":1,"108":1},"1":{"105":1,"106":1},"2":{"0":2,"3":3,"6":3,"31":1,"104":1,"105":3,"106":11,"107":6,"108":11,"109":15,"110":9,"111":8,"112":3,"113":4,"175":1}}],["totally",{"2":{"56":1}}],["total",{"2":{"37":1,"40":2,"45":2,"47":1}}],["towards",{"2":{"25":1,"27":1}}],["topright",{"2":{"156":1}}],["topologypreserve",{"2":{"154":1}}],["topology",{"2":{"154":1}}],["top",{"2":{"20":1,"26":1,"45":1,"128":1}}],["took",{"2":{"177":1}}],["tools",{"2":{"17":1}}],["too",{"2":{"6":1,"54":1,"150":1,"153":1}}],["tol^2",{"2":{"157":1,"158":1}}],["tolerances",{"2":{"159":1,"160":29}}],["tolerance",{"2":{"157":1,"158":1,"159":1,"160":17}}],["tol",{"2":{"6":12,"152":2,"156":18,"157":7,"158":15,"159":8,"160":18}}],["todo",{"2":{"3":2,"6":2,"45":1,"54":1,"63":2,"83":4,"103":1,"128":1,"136":1,"139":1,"156":1,"165":1}}],["to",{"0":{"9":1,"23":1,"26":1,"55":1,"76":1,"90":1,"107":1,"117":1},"2":{"0":2,"1":22,"3":1,"4":33,"5":4,"6":142,"7":2,"9":3,"10":2,"11":2,"13":1,"17":2,"18":9,"19":1,"20":2,"22":3,"23":4,"24":2,"25":3,"26":2,"27":3,"29":4,"30":1,"33":1,"34":8,"36":1,"37":4,"38":4,"39":1,"40":26,"41":2,"43":2,"44":5,"45":32,"46":1,"47":12,"49":1,"50":3,"51":8,"52":4,"53":8,"54":27,"56":7,"57":11,"58":1,"60":1,"61":1,"62":4,"63":6,"65":6,"66":32,"68":2,"69":17,"71":1,"72":1,"74":2,"75":7,"83":2,"85":3,"86":1,"88":1,"89":7,"97":21,"99":2,"100":1,"102":3,"103":7,"105":1,"106":7,"108":1,"115":1,"116":7,"126":4,"128":16,"129":4,"131":4,"133":7,"134":6,"135":1,"136":52,"137":2,"138":3,"140":4,"141":8,"142":5,"143":3,"144":1,"145":4,"146":1,"147":4,"148":1,"149":3,"150":3,"151":3,"152":9,"153":7,"154":1,"156":4,"157":1,"158":15,"159":1,"160":2,"161":4,"162":1,"163":2,"164":2,"165":6,"166":9,"167":28,"168":1,"169":4,"170":6,"171":10,"172":6,"173":7,"174":5,"175":7,"176":5,"177":2,"178":8}}],["rd",{"2":{"156":3}}],["rdbu",{"2":{"65":1}}],["rhumb",{"2":{"126":2}}],["runner",{"2":{"171":1}}],["running",{"2":{"136":3}}],["run",{"2":{"136":8,"177":1}}],["runs",{"2":{"54":2,"125":1}}],["rule",{"2":{"45":1}}],["rules",{"2":{"45":1}}],["right=2",{"2":{"45":1}}],["right",{"2":{"40":1,"45":4,"50":1,"66":1,"126":1,"158":19,"160":5,"170":1,"175":1}}],["ring4",{"2":{"172":2}}],["ring3",{"2":{"171":1}}],["ring2",{"2":{"170":2}}],["ring1",{"2":{"170":2}}],["rings",{"0":{"79":1,"93":1,"110":1,"120":1,"137":1},"1":{"138":1,"139":1},"2":{"4":4,"6":6,"9":2,"37":1,"44":1,"45":3,"54":1,"69":7,"125":1,"128":5,"139":1,"142":1,"156":1}}],["ring",{"2":{"4":7,"6":13,"9":1,"31":1,"34":3,"37":2,"40":1,"43":1,"44":4,"45":12,"47":13,"57":3,"66":5,"69":4,"77":1,"78":2,"79":5,"91":1,"93":1,"97":2,"108":1,"109":1,"110":3,"118":1,"119":2,"120":4,"126":3,"128":11,"137":2,"138":1,"139":14,"140":1,"170":1}}],["rtrees",{"2":{"20":1}}],["r+y",{"2":{"13":2,"14":1}}],["r+x",{"2":{"13":2,"14":1}}],["ry",{"2":{"13":3,"14":3}}],["rx",{"2":{"13":3,"14":3}}],["round",{"2":{"156":1,"158":1,"160":1}}],["routines",{"2":{"11":1}}],["row",{"2":{"136":3}}],["rows",{"2":{"136":2}}],["robust",{"0":{"15":1},"2":{"62":1}}],["rotate",{"2":{"47":1}}],["rotation",{"2":{"1":1,"6":1,"161":1}}],["rotations",{"2":{"1":3,"6":3,"161":3}}],["rotmatrix2d",{"2":{"156":1}}],["rotmatrix",{"2":{"1":1,"6":1,"161":1}}],["r",{"2":{"6":1,"9":1,"13":11,"14":12,"152":1,"160":2,"170":6,"171":2,"172":4}}],["rᵢ₋₁",{"2":{"40":20}}],["rᵢ∗rᵢ₊₁+sᵢ⋅sᵢ₊₁",{"2":{"6":1}}],["rᵢ₊₁",{"2":{"6":1,"40":29}}],["rᵢ",{"2":{"6":2,"40":49}}],["ramer",{"2":{"158":1}}],["raster",{"0":{"128":1},"2":{"128":4}}],["ray",{"2":{"97":4}}],["raw",{"2":{"18":1}}],["range",{"2":{"13":8,"14":4,"128":3,"136":4}}],["ranges",{"2":{"6":1,"128":2}}],["randomly",{"2":{"176":2}}],["random",{"2":{"156":2}}],["randn",{"2":{"60":1}}],["rand",{"2":{"6":1,"62":1,"128":1,"176":2}}],["rather",{"2":{"6":1,"128":1,"144":1}}],["ratio",{"2":{"6":7,"54":1,"152":1,"156":1,"157":4,"158":6,"159":4,"160":11}}],["radii",{"2":{"6":1,"152":1}}],["radius`",{"2":{"152":1}}],["radius",{"2":{"6":7,"40":13,"152":4}}],["radialdistance",{"0":{"157":1},"2":{"0":1,"6":2,"154":1,"156":4,"157":4}}],["rrayscore",{"2":{"1":1,"6":1,"161":1}}],["rring",{"2":{"1":1,"6":1,"161":1}}],["rewrap",{"2":{"136":3}}],["req",{"2":{"97":44}}],["requirement",{"2":{"137":1,"143":1}}],["requirements",{"2":{"97":5}}],["required",{"2":{"63":1,"75":3,"89":3,"106":3,"116":3,"151":1,"169":1}}],["require",{"2":{"63":1,"74":2,"75":6,"89":3,"97":32,"106":3,"116":3}}],["requires",{"2":{"41":1,"69":1,"71":1,"75":2,"78":3,"79":3,"80":1,"89":1,"92":3,"93":2,"94":1,"106":1,"109":3,"110":1,"111":1,"115":1,"116":1,"119":3,"120":3,"121":1,"148":1,"152":1,"166":1}}],["requests",{"2":{"25":1,"27":1}}],["reflected",{"2":{"156":3}}],["ref",{"2":{"65":1}}],["referring",{"2":{"97":1}}],["refer",{"2":{"6":1,"128":1}}],["references",{"2":{"6":1,"40":1}}],["reference",{"0":{"171":1,"172":1},"2":{"0":1,"1":2,"147":2,"169":2,"171":1}}],["reveal",{"2":{"57":1}}],["reveals",{"2":{"57":1}}],["reverse",{"2":{"36":1,"39":1,"40":1,"45":2,"170":2}}],["rev",{"2":{"56":1}}],["render",{"2":{"39":1}}],["rendering",{"2":{"39":3,"40":1}}],["rename",{"2":{"10":1}}],["regardless",{"2":{"54":1,"97":1}}],["regions",{"2":{"52":3,"54":5,"56":1,"57":3,"97":2,"177":1}}],["region",{"2":{"41":2,"54":3,"57":2,"177":1}}],["register",{"2":{"31":3,"40":3}}],["regular",{"0":{"15":1}}],["readable",{"2":{"174":1}}],["readability",{"2":{"45":1}}],["read",{"2":{"171":2}}],["reached",{"2":{"136":4}}],["reaches",{"2":{"134":1}}],["reach",{"2":{"134":1}}],["reasons",{"2":{"166":1}}],["reason",{"2":{"24":1,"137":1,"143":1,"165":1}}],["real`",{"2":{"152":1,"153":1}}],["reality",{"2":{"62":1}}],["really",{"2":{"37":1,"97":1,"128":1,"165":1}}],["real=1",{"2":{"6":2,"152":2}}],["real=6378137`",{"2":{"152":1}}],["real=6378137",{"2":{"6":2,"152":1}}],["real",{"0":{"177":1},"2":{"5":1,"6":13,"34":1,"40":45,"44":2,"54":1,"152":3,"153":1,"160":5,"175":1}}],["related",{"2":{"129":1}}],["relation",{"2":{"45":2}}],["relations",{"2":{"31":10,"83":1,"103":1}}],["relationship",{"2":{"23":1,"175":2}}],["relative",{"2":{"40":3}}],["relevant",{"2":{"6":1,"10":1,"63":1}}],["reducing",{"2":{"136":2}}],["reduced",{"2":{"157":1,"158":1,"159":1}}],["reduces",{"2":{"19":1,"57":1}}],["reduce",{"2":{"1":1,"6":1,"128":1,"136":2,"141":1}}],["redundant",{"2":{"45":1}}],["red",{"2":{"14":1,"43":2,"65":1,"74":1,"85":1,"99":1,"170":1,"171":1,"176":2}}],["removal",{"2":{"45":1}}],["removes",{"2":{"45":1,"129":1}}],["removed",{"2":{"45":3,"52":5,"128":1}}],["remove",{"2":{"37":1,"45":33,"47":1,"50":2,"51":5,"53":5,"56":2,"145":2,"157":1,"158":3,"160":4}}],["removing",{"2":{"6":3,"45":1,"52":1,"157":1,"158":1,"159":1}}],["remainingnode",{"2":{"128":3}}],["remaining",{"2":{"45":1,"69":1,"97":2,"158":1}}],["remain",{"2":{"1":1,"6":9,"136":1,"156":2}}],["resolution",{"2":{"171":1}}],["resolved",{"2":{"128":1}}],["reset",{"2":{"45":1}}],["resize",{"2":{"13":1,"14":1,"45":2}}],["resampled",{"2":{"6":1,"153":1}}],["respectively",{"2":{"45":1,"103":1,"136":1,"170":1}}],["respect",{"2":{"6":2,"53":1,"54":1,"63":1,"97":6}}],["rest",{"2":{"6":1,"40":2,"56":1}}],["resulting",{"2":{"50":1,"57":1,"128":1,"176":1}}],["results",{"2":{"3":2,"6":2,"54":1,"83":1,"103":1,"136":2,"138":1,"158":25,"170":3}}],["result",{"2":{"1":2,"3":5,"4":5,"6":13,"19":1,"34":1,"37":2,"47":1,"54":15,"63":1,"66":2,"72":1,"75":1,"86":1,"100":1,"116":1,"136":2,"152":3,"160":6}}],["receives",{"2":{"136":2}}],["recent",{"2":{"45":1,"52":1,"54":1,"57":1}}],["recalculate",{"2":{"135":1}}],["recursive",{"2":{"134":1}}],["recursively",{"2":{"4":1,"6":1,"134":1,"149":1}}],["rect",{"2":{"33":3,"36":5,"46":3,"65":7}}],["rectangle",{"2":{"33":2,"36":2,"39":2,"46":2,"47":1,"65":2,"151":5,"152":8,"176":2}}],["recommended",{"2":{"22":1}}],["reconstructing",{"2":{"156":1}}],["reconstructed",{"2":{"18":1}}],["reconstruct",{"2":{"0":2,"1":1,"6":3,"18":1,"131":2,"136":29}}],["replace",{"2":{"45":1,"128":2,"158":1}}],["replaced",{"2":{"22":1}}],["repl",{"2":{"41":1,"148":1,"152":1}}],["repeat",{"2":{"44":1,"45":3,"69":6}}],["repeating",{"2":{"37":1,"57":1}}],["repeated",{"2":{"4":3,"6":3,"9":1,"34":2,"40":1,"45":2,"57":2,"66":2,"69":4,"97":1}}],["represented",{"2":{"176":1}}],["represent",{"2":{"17":1,"40":1,"45":4,"69":1}}],["representing",{"2":{"6":2,"52":1,"54":1,"57":1,"63":1,"65":1,"69":1,"177":1}}],["represents",{"2":{"6":1,"141":2,"142":1}}],["reprojects",{"2":{"147":1}}],["reprojection",{"0":{"147":1},"1":{"148":1}}],["reproject",{"2":{"0":1,"1":4,"31":2,"129":1,"147":6,"148":2}}],["re",{"2":{"1":1,"6":1,"17":1,"63":1,"161":1,"169":1,"171":1}}],["retrievable",{"2":{"1":1,"147":1}}],["returnval",{"2":{"97":9}}],["returntype",{"2":{"19":1}}],["returning",{"2":{"18":1,"41":1,"52":2}}],["return",{"0":{"22":1},"2":{"1":1,"3":18,"4":2,"6":37,"13":3,"14":3,"23":2,"30":1,"34":5,"37":5,"40":20,"41":1,"44":4,"45":36,"47":12,"50":12,"51":5,"52":4,"53":4,"54":18,"56":6,"57":9,"63":2,"66":8,"69":30,"72":1,"75":1,"81":2,"82":2,"83":18,"86":1,"89":2,"95":2,"96":2,"97":71,"99":1,"100":1,"103":28,"106":1,"108":2,"112":2,"113":2,"116":1,"122":2,"123":2,"126":10,"128":12,"136":27,"137":1,"139":4,"141":6,"142":2,"145":2,"146":2,"147":1,"153":4,"156":3,"157":1,"158":5,"159":3,"160":7,"161":2,"162":2,"166":3,"167":8}}],["returned",{"2":{"1":1,"6":11,"22":2,"23":1,"45":3,"50":1,"51":2,"53":2,"54":2,"56":2,"62":1,"63":1,"128":1,"131":1,"136":2,"147":1,"156":1,"165":1}}],["returns",{"2":{"1":1,"3":5,"4":4,"5":3,"6":24,"18":1,"22":2,"34":1,"37":2,"40":6,"44":3,"45":4,"47":6,"50":1,"51":1,"54":1,"56":1,"63":1,"66":8,"68":1,"71":2,"72":1,"75":1,"85":2,"86":1,"88":1,"97":4,"100":1,"103":2,"116":1,"128":2,"136":2,"153":1,"162":1,"175":1}}],["rebuilt",{"2":{"1":1,"6":2,"131":1,"136":2}}],["rebuilding",{"2":{"136":1}}],["rebuild",{"2":{"0":2,"6":4,"131":4,"134":1,"136":10,"153":1,"156":2}}],["psa",{"2":{"136":2}}],["pb",{"2":{"83":2}}],["p0",{"2":{"66":9}}],["p3",{"2":{"45":8,"159":4}}],["ptm",{"2":{"126":3}}],["ptj",{"2":{"126":5}}],["pti",{"2":{"126":3}}],["ptrait",{"2":{"66":2}}],["pts",{"2":{"45":22,"50":7}}],["pt",{"2":{"45":114,"50":2,"54":26,"97":8,"158":4}}],["pt2",{"2":{"45":14,"54":2}}],["pt1",{"2":{"45":18,"54":2}}],["pn",{"2":{"108":3}}],["pn2",{"2":{"45":4}}],["pn1",{"2":{"45":4}}],["pfirst",{"2":{"37":3}}],["pu",{"2":{"176":2}}],["purpose",{"2":{"136":1}}],["pure",{"2":{"6":1,"63":1,"128":1}}],["purely",{"2":{"6":1,"18":1,"152":1}}],["push",{"2":{"45":15,"50":5,"51":2,"53":2,"54":2,"56":4,"57":5,"128":3,"139":1,"153":3,"158":3}}],["pulling",{"2":{"63":1}}],["pull",{"2":{"25":1,"27":1}}],["public",{"2":{"24":1}}],["pick",{"2":{"171":2}}],["piece",{"2":{"45":6,"145":6}}],["pieces",{"2":{"45":12,"50":1,"52":2,"56":4,"97":1,"145":9}}],["pi",{"2":{"13":2}}],["pixels",{"2":{"128":1}}],["pixel",{"2":{"6":2,"128":7}}],["pythagorean",{"2":{"66":1}}],["py",{"2":{"13":2,"14":2}}],["px",{"2":{"13":2,"14":2}}],["peucker",{"2":{"154":2,"156":3,"158":2}}],["peaks",{"2":{"128":2}}],["peculiarities",{"0":{"21":1},"1":{"22":1,"23":1,"24":1}}],["people",{"2":{"9":1}}],["performed",{"2":{"176":1}}],["performs",{"2":{"40":1,"153":1}}],["perform",{"2":{"26":1,"39":1,"40":2,"45":1,"129":1,"175":3,"176":2,"178":1}}],["performing",{"2":{"6":3,"23":1,"40":1,"51":1,"53":1,"56":1,"176":1}}],["performance",{"2":{"4":1,"6":2,"22":1,"128":1,"143":1,"149":1,"156":1,"174":1}}],["per",{"2":{"5":2,"6":2,"39":1,"40":2,"45":5,"128":1,"136":4,"153":1}}],["pl",{"2":{"176":2}}],["plt",{"2":{"170":1}}],["please",{"2":{"45":1}}],["plan",{"2":{"150":1}}],["plane",{"2":{"40":1,"168":1}}],["place",{"2":{"54":1,"175":1}}],["placement",{"2":{"45":1}}],["plottable",{"2":{"128":1}}],["plotted",{"2":{"43":1}}],["plotting",{"0":{"170":1},"2":{"6":1,"128":1,"150":1,"153":1,"169":1,"170":4,"171":1}}],["plots",{"2":{"39":2}}],["plot",{"0":{"171":1},"2":{"13":1,"39":3,"60":2,"61":1,"62":1,"68":1,"102":1,"128":1,"152":2,"156":4,"169":2,"170":9,"171":5,"172":1,"174":1,"176":1}}],["plus",{"2":{"5":1,"6":1,"40":1}}],["p2y",{"2":{"167":3}}],["p2x",{"2":{"167":3}}],["p2box",{"2":{"39":1}}],["p2",{"2":{"3":2,"4":2,"6":6,"15":12,"34":12,"37":9,"45":18,"47":19,"56":2,"62":1,"66":15,"69":11,"75":2,"85":2,"97":12,"103":2,"126":3,"151":1,"159":4,"167":3,"170":2}}],["p1y",{"2":{"167":3}}],["p1x",{"2":{"167":3}}],["p1",{"2":{"3":3,"4":2,"6":7,"15":12,"34":21,"37":8,"39":4,"45":9,"47":25,"49":1,"56":2,"62":2,"66":15,"69":14,"74":5,"75":3,"85":5,"97":4,"103":2,"108":3,"126":3,"159":4,"167":3,"170":1}}],["practice",{"2":{"172":1}}],["pred",{"2":{"175":2,"176":1,"177":2,"178":1}}],["predicate",{"2":{"7":1,"83":1,"175":3,"176":1,"178":5}}],["predicates",{"0":{"12":1,"15":1,"178":1},"1":{"13":1,"14":1,"15":1,"16":1},"2":{"7":4,"12":1,"31":1,"45":5,"54":4,"55":3,"97":1,"175":1,"177":1}}],["pretty",{"2":{"147":1}}],["prettytime",{"2":{"13":2}}],["prevent",{"2":{"52":2,"54":2,"57":2}}],["prev^2",{"2":{"34":2}}],["prev",{"2":{"34":14,"45":69,"126":4}}],["previously",{"2":{"151":1}}],["previous",{"2":{"19":1,"34":1,"136":1,"157":3}}],["preparations",{"2":{"20":1}}],["prepared",{"2":{"20":1,"128":2}}],["prepare",{"0":{"20":1},"2":{"17":1,"20":1}}],["precision",{"2":{"11":1}}],["preserve",{"2":{"156":4,"158":3}}],["preserving",{"2":{"154":1}}],["presentation",{"2":{"6":1,"40":1}}],["present",{"2":{"6":1,"166":1}}],["presence",{"2":{"6":1,"166":1}}],["prescribes",{"2":{"20":1}}],["press",{"2":{"6":1,"40":1}}],["pre",{"2":{"6":1,"56":1,"156":1,"158":2}}],["prefilter",{"2":{"6":1,"156":7}}],["protters",{"2":{"136":2}}],["progressively",{"2":{"134":1}}],["program",{"2":{"17":1}}],["programming",{"2":{"17":1,"26":1}}],["promote",{"2":{"40":5}}],["property",{"2":{"136":2}}],["properties=gi",{"2":{"136":1}}],["properties=namedtuple",{"2":{"136":1}}],["properties=",{"2":{"128":1}}],["properties",{"2":{"6":1,"136":9,"156":1,"160":1}}],["propagate",{"2":{"40":16,"66":4}}],["probably",{"2":{"37":1,"136":1}}],["prod",{"2":{"34":4}}],["product",{"2":{"34":1}}],["process",{"2":{"77":3,"78":3,"79":3,"80":1,"83":1,"91":3,"92":3,"93":2,"94":1,"97":11,"108":1,"109":3,"110":1,"111":1,"118":3,"119":3,"120":3,"121":1,"136":2,"158":1}}],["processed",{"2":{"45":6}}],["processors",{"2":{"31":1,"75":2,"89":2,"106":2,"116":2}}],["processor",{"2":{"31":1}}],["processing",{"2":{"23":1}}],["profile",{"2":{"9":1}}],["providers",{"2":{"138":1,"144":1}}],["provide",{"0":{"23":1},"2":{"6":6,"33":1,"36":1,"38":1,"43":1,"46":1,"49":1,"51":2,"53":2,"56":2,"65":1,"68":1,"71":1,"74":1,"85":1,"88":1,"97":2,"99":1,"102":1,"105":1,"115":1,"128":1,"160":1}}],["provides",{"2":{"6":1,"58":1,"63":1,"171":1}}],["provided",{"2":{"4":1,"6":3,"11":1,"45":1,"66":1,"69":1,"144":1,"152":2,"166":1}}],["projecting",{"2":{"171":1}}],["projection",{"2":{"66":2,"169":1,"171":1}}],["project",{"2":{"9":1}}],["projects",{"2":{"9":1}}],["proj",{"2":{"1":2,"6":3,"147":2,"148":4,"151":1,"152":6,"169":1}}],["prints",{"2":{"148":1}}],["printstyled",{"2":{"41":1,"148":1,"152":1}}],["println",{"2":{"41":1,"148":1,"152":1,"156":2}}],["print",{"2":{"41":2,"148":2,"152":2}}],["primitives",{"2":{"31":1}}],["primitive",{"0":{"129":1},"1":{"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1},"2":{"29":1}}],["primarily",{"2":{"6":1,"25":2,"27":2,"164":1}}],["primary",{"2":{"3":2,"6":3,"75":1,"116":1,"156":1}}],["priority",{"2":{"1":1,"147":1}}],["pay",{"2":{"136":1}}],["paper",{"2":{"97":2}}],["pa",{"2":{"83":2}}],["paths",{"0":{"168":1},"2":{"165":1,"168":2}}],["pathof",{"2":{"156":2}}],["path",{"2":{"36":3,"171":2}}],["padding",{"2":{"6":2}}],["parquet",{"2":{"174":3}}],["parent",{"2":{"165":1,"167":1}}],["parse",{"2":{"97":1,"103":1}}],["part",{"2":{"47":2,"57":2,"97":3,"135":1}}],["partition",{"2":{"136":4}}],["partialsort",{"2":{"160":1}}],["partial",{"2":{"47":4}}],["partially",{"2":{"45":2,"57":2}}],["particularly",{"2":{"40":1}}],["particular",{"2":{"30":1,"34":1,"128":1,"171":2}}],["parallel",{"2":{"97":1,"126":1}}],["paradigm",{"0":{"29":1}}],["paradigms",{"0":{"17":1},"1":{"18":1,"19":1,"20":1},"2":{"17":2,"20":1}}],["parameters",{"2":{"6":1,"136":1,"164":2}}],["parameter",{"2":{"6":2,"164":3}}],["params",{"2":{"6":2,"166":10}}],["parlance",{"2":{"5":1,"6":1,"40":1}}],["passes",{"2":{"47":2,"97":1}}],["passed",{"2":{"1":2,"6":7,"63":1,"128":1,"131":1,"136":2,"147":1,"152":2,"161":1,"166":2,"178":1}}],["passable",{"2":{"40":18}}],["passing",{"2":{"18":1,"136":1,"154":1}}],["pass",{"2":{"5":1,"6":4,"18":1,"40":1,"72":1,"86":1,"97":2,"100":1,"152":1,"153":1,"156":1,"165":1}}],["pairs",{"2":{"54":1,"170":1}}],["pair",{"2":{"3":2,"6":2,"47":1,"103":2,"136":3}}],["packages",{"2":{"6":1,"25":1,"27":1,"58":1,"131":1,"136":1,"137":1,"163":1,"169":3,"171":1,"174":1}}],["package",{"2":{"1":2,"6":1,"22":1,"25":2,"27":2,"41":1,"58":2,"63":1,"128":1,"147":3,"148":1,"152":1,"171":1,"174":2}}],["page",{"2":{"0":1,"9":1,"26":1,"29":1,"31":1,"34":1,"37":1,"39":1,"40":1,"41":1,"44":1,"45":1,"47":1,"50":1,"52":1,"54":1,"55":1,"57":1,"63":1,"66":1,"69":1,"72":1,"82":1,"83":1,"86":1,"96":1,"97":1,"100":1,"103":1,"113":1,"123":1,"126":1,"127":1,"128":1,"136":1,"139":1,"142":1,"145":1,"146":1,"148":1,"149":1,"153":1,"160":1,"161":1,"162":1,"166":1,"167":1}}],["p",{"2":{"1":5,"6":5,"13":13,"14":12,"15":2,"33":1,"36":1,"43":1,"45":5,"46":1,"47":5,"52":2,"56":2,"60":1,"61":1,"65":3,"68":1,"71":1,"74":1,"83":4,"85":1,"88":1,"97":20,"99":1,"102":1,"105":1,"115":1,"126":4,"128":3,"129":3,"136":5,"146":7,"151":1,"155":1,"156":1,"160":3,"161":9,"162":7,"167":11,"175":1,"176":1}}],["poylgon",{"2":{"97":1}}],["potential",{"2":{"47":1}}],["potentially",{"2":{"6":2,"45":1,"142":2,"145":2}}],["post",{"2":{"158":2}}],["possibly",{"2":{"136":1}}],["possiblenodes",{"2":{"128":2}}],["possible",{"2":{"6":3,"51":1,"53":1,"56":1,"128":1,"136":2}}],["possibility",{"2":{"134":1}}],["possibilities",{"2":{"54":1}}],["position=",{"2":{"156":1}}],["position",{"2":{"6":1,"126":1,"151":1}}],["positive",{"2":{"4":4,"6":4,"36":3,"37":1,"65":3,"66":3,"153":1,"160":1}}],["polgons",{"2":{"128":1}}],["polgontrait",{"2":{"1":1,"6":1}}],["polar",{"2":{"6":1,"152":1}}],["polynodes",{"2":{"45":7,"51":1,"53":1,"56":1}}],["polynode",{"2":{"45":36}}],["polypoints",{"2":{"40":46}}],["polys",{"2":{"6":2,"45":39,"49":3,"50":10,"51":14,"52":14,"53":9,"54":6,"56":14,"57":28,"145":26}}],["polys1",{"2":{"3":2,"6":2,"103":6}}],["polys2",{"2":{"3":2,"6":2,"103":6}}],["poly",{"2":{"3":2,"6":16,"15":2,"33":1,"36":1,"37":6,"39":2,"40":3,"43":1,"45":107,"46":2,"47":4,"49":4,"50":20,"51":22,"52":12,"53":15,"54":10,"56":19,"57":79,"60":2,"65":1,"66":3,"69":4,"83":10,"97":21,"103":8,"126":5,"128":5,"145":18,"151":2,"155":2,"156":8,"167":8,"170":2,"176":5}}],["poly2",{"2":{"3":3,"4":2,"6":7,"51":2,"69":2,"97":19,"103":7}}],["poly1",{"2":{"3":3,"4":2,"6":7,"51":2,"69":2,"97":14,"103":7}}],["polygon3",{"2":{"170":2,"171":1}}],["polygon2",{"2":{"170":6}}],["polygon1",{"2":{"170":4}}],["polygonization",{"2":{"128":1}}],["polygonizing",{"0":{"128":1}}],["polygonized",{"2":{"128":1}}],["polygonize",{"2":{"0":1,"6":6,"9":1,"31":1,"128":31}}],["polygon`",{"2":{"40":3,"63":1}}],["polygons",{"0":{"80":1,"111":1,"121":1,"143":1},"1":{"144":1,"145":1},"2":{"3":4,"4":3,"5":1,"6":18,"9":1,"23":5,"31":1,"37":5,"38":1,"40":2,"43":1,"44":1,"45":14,"47":1,"50":2,"51":9,"52":5,"53":3,"54":8,"56":6,"57":19,"65":1,"66":1,"69":5,"80":1,"103":5,"121":1,"126":1,"128":19,"134":1,"138":2,"142":3,"143":2,"144":2,"145":10,"154":1,"156":1,"170":3,"171":1,"176":5,"177":3}}],["polygontrait",{"2":{"1":1,"3":4,"4":6,"6":14,"15":3,"23":1,"34":2,"37":3,"40":3,"44":2,"45":2,"47":2,"50":1,"51":5,"52":5,"53":3,"54":5,"56":4,"57":8,"66":2,"69":10,"77":2,"78":1,"79":1,"80":3,"81":1,"83":4,"91":2,"92":2,"93":1,"94":2,"95":1,"103":8,"108":2,"109":1,"110":1,"111":3,"112":1,"118":2,"119":1,"120":1,"121":3,"122":1,"129":1,"134":2,"136":2,"139":2,"141":2,"142":1,"145":2,"156":2,"167":1}}],["polygon",{"0":{"45":1,"48":1,"51":1,"52":1,"54":1,"56":1,"57":1,"94":1},"1":{"49":1,"50":1},"2":{"0":1,"1":4,"3":4,"4":21,"5":9,"6":65,"9":2,"11":3,"15":4,"20":1,"23":1,"33":1,"34":5,"36":2,"37":5,"38":5,"39":16,"40":57,"43":2,"44":4,"45":39,"46":3,"47":4,"49":3,"50":10,"51":5,"52":7,"53":5,"54":6,"56":6,"57":34,"58":1,"62":1,"63":3,"65":3,"66":14,"69":12,"75":1,"77":3,"78":3,"79":4,"80":8,"83":1,"91":3,"92":4,"93":4,"94":4,"97":66,"103":4,"106":1,"108":3,"109":4,"110":5,"111":7,"116":1,"118":3,"119":4,"120":4,"121":8,"126":5,"128":4,"136":1,"137":4,"138":8,"139":5,"140":1,"142":4,"143":3,"144":12,"145":7,"151":1,"152":4,"155":1,"156":9,"161":3,"167":6,"170":12,"171":5,"172":7,"173":2,"176":6}}],["pointwise",{"0":{"161":1},"2":{"147":1}}],["point1",{"2":{"66":4}}],["point`",{"2":{"54":1}}],["pointedgeside",{"2":{"45":1}}],["point₂",{"2":{"44":13}}],["point₁",{"2":{"44":13}}],["point3s",{"2":{"40":10}}],["point3f",{"2":{"39":1}}],["pointrait",{"2":{"6":1}}],["point2f",{"2":{"39":4,"40":2,"60":1,"65":1}}],["point2d",{"2":{"39":1}}],["point2",{"2":{"6":2,"40":5,"62":1,"66":4}}],["pointtrait",{"2":{"1":1,"4":4,"6":9,"18":1,"34":2,"37":1,"40":3,"47":1,"53":2,"63":1,"66":17,"69":8,"77":6,"81":1,"91":6,"95":1,"108":6,"112":1,"118":6,"122":1,"129":2,"134":1,"136":22,"141":2,"142":1,"146":2,"149":1,"156":2,"161":2,"162":2,"164":2,"167":1}}],["point",{"0":{"91":1,"108":1},"2":{"1":4,"3":10,"4":37,"5":7,"6":83,"9":2,"20":1,"34":12,"37":3,"38":3,"39":1,"40":126,"44":6,"45":97,"47":50,"50":13,"52":9,"53":1,"54":71,"57":9,"63":3,"65":17,"66":73,"69":27,"72":3,"74":1,"75":2,"77":8,"83":21,"89":2,"91":10,"97":138,"99":1,"102":2,"103":21,"105":1,"106":3,"108":10,"109":1,"111":1,"116":4,"118":11,"126":1,"128":3,"136":1,"137":1,"138":2,"142":2,"143":1,"145":2,"147":1,"150":1,"156":2,"157":3,"158":9,"159":1,"161":2,"167":4,"170":111,"171":7,"172":8,"176":2}}],["points2",{"2":{"3":1,"6":1,"103":3}}],["points1",{"2":{"3":1,"6":1,"103":3}}],["points",{"0":{"77":1,"118":1},"2":{"0":1,"1":3,"3":1,"4":11,"5":1,"6":53,"9":3,"13":1,"34":2,"36":3,"37":3,"39":8,"40":32,"44":1,"45":55,"47":5,"50":3,"51":5,"52":1,"53":8,"54":28,"56":4,"57":1,"58":3,"60":4,"62":4,"63":6,"65":2,"66":8,"68":2,"69":13,"71":1,"75":6,"77":3,"78":4,"89":6,"91":1,"92":7,"93":3,"97":10,"103":5,"106":5,"108":1,"109":2,"110":4,"111":3,"115":1,"116":5,"118":3,"119":3,"120":3,"121":1,"125":1,"128":3,"136":3,"147":1,"149":2,"151":2,"152":2,"156":11,"157":11,"158":26,"159":10,"160":33,"161":2,"162":2,"167":25,"170":8,"171":1,"175":1,"176":11}}],["pointorientation",{"2":{"0":1,"6":2,"97":2}}],["my",{"2":{"177":1,"178":2}}],["moore",{"2":{"128":1}}],["moved",{"2":{"45":1,"147":1}}],["move",{"2":{"44":1,"97":1}}],["mode",{"2":{"178":3}}],["model",{"2":{"175":1}}],["modify",{"2":{"170":1}}],["modified",{"2":{"136":2}}],["module",{"2":{"147":1,"153":1}}],["modules",{"2":{"6":1,"40":1}}],["mod1",{"2":{"40":5}}],["mod",{"2":{"40":1,"45":1}}],["most",{"2":{"25":1,"27":1,"45":1,"52":1,"54":1,"57":1,"62":1,"97":1,"156":1,"174":2}}],["monotone",{"2":{"20":1,"62":2}}],["monotonechainmethod",{"2":{"0":1,"6":1,"58":1,"62":2,"63":4}}],["moment",{"2":{"6":1,"151":1,"153":1}}],["more",{"2":{"6":3,"7":1,"9":1,"10":1,"11":1,"23":1,"26":1,"29":1,"45":1,"51":1,"53":1,"56":1,"63":1,"97":1,"103":1,"136":4,"139":1,"148":1,"151":1,"153":1,"170":2,"175":1}}],["mistakenly",{"2":{"143":1}}],["missing",{"2":{"131":6,"132":2,"151":4}}],["missed",{"2":{"128":1}}],["mid",{"2":{"47":2,"97":3}}],["midpoint",{"2":{"45":2}}],["middle",{"2":{"45":2}}],["mining",{"2":{"177":1}}],["minimal",{"2":{"177":1}}],["minimize",{"2":{"54":1}}],["minimum",{"2":{"4":7,"6":12,"46":1,"47":2,"66":12,"156":1,"157":1,"159":1}}],["mind",{"2":{"151":1,"176":1}}],["minmax",{"2":{"54":4}}],["min",{"2":{"47":1,"54":16,"66":15,"156":1,"158":3,"159":1,"160":28}}],["minus",{"2":{"36":1}}],["minpoints=0",{"2":{"128":1}}],["minpoints",{"2":{"6":2}}],["might",{"2":{"6":3,"25":1,"27":1,"37":1,"51":1,"53":1,"54":1,"56":1,"140":1,"158":1}}],["mixed",{"2":{"6":4,"156":1}}],["m",{"2":{"5":1,"6":1,"15":10,"40":2,"47":6,"126":2,"171":1}}],["mp",{"2":{"83":2}}],["mp1",{"2":{"4":2,"6":2,"69":7}}],["mp2",{"2":{"4":2,"6":2,"69":8}}],["manner",{"2":{"175":1}}],["manipulate",{"2":{"174":1}}],["manually",{"2":{"137":1}}],["many",{"2":{"4":1,"5":1,"6":2,"23":1,"26":1,"40":1,"45":1,"50":1,"52":1,"54":2,"57":1,"69":1,"138":1,"149":1}}],["mason",{"2":{"136":2}}],["markersize",{"2":{"170":2}}],["marker",{"2":{"170":2}}],["marked",{"2":{"45":6,"52":1,"54":1,"57":1}}],["marking",{"2":{"52":2,"54":2,"57":2}}],["mark",{"2":{"45":2}}],["marks",{"2":{"45":1}}],["mag",{"2":{"34":4}}],["making",{"2":{"45":1,"128":1,"134":1,"144":1,"170":1,"172":2}}],["makie",{"2":{"13":1,"14":1,"33":1,"36":1,"39":3,"43":1,"46":1,"49":4,"60":1,"61":1,"65":1,"68":1,"71":1,"74":1,"85":1,"88":1,"99":1,"102":1,"105":1,"115":1,"128":3,"155":1,"156":1,"168":1}}],["makevalid",{"2":{"156":2}}],["makes",{"2":{"37":1,"45":1,"66":1,"136":1,"138":1,"143":1,"144":1}}],["make",{"2":{"9":1,"25":1,"27":1,"34":1,"45":3,"54":1,"66":1,"103":1,"128":2,"134":1,"139":1,"151":1,"160":1,"163":1,"170":2,"172":1}}],["mainly",{"2":{"40":1,"65":1,"129":1}}],["maintain",{"2":{"37":1}}],["main",{"0":{"28":1},"1":{"29":1,"30":1},"2":{"7":1,"26":1,"45":1,"128":1,"136":1,"152":1}}],["mapped",{"2":{"174":1}}],["maptasks",{"2":{"136":7}}],["mapreducetasks",{"2":{"136":5}}],["mapreduce",{"2":{"52":1,"128":2,"136":8}}],["map",{"0":{"171":1},"2":{"6":1,"13":1,"18":3,"19":1,"29":1,"40":1,"45":1,"54":1,"103":2,"128":17,"136":25,"139":1,"156":1,"164":1,"169":1,"171":1,"172":1,"174":1}}],["matlab",{"2":{"49":1}}],["materializer`",{"2":{"136":1}}],["materializer",{"2":{"22":1,"136":1}}],["mathrm",{"2":{"40":1}}],["math",{"2":{"7":1}}],["mathematically",{"2":{"6":1,"126":1}}],["matches",{"2":{"69":1,"128":1}}],["match",{"2":{"6":1,"69":12,"103":3,"128":1,"131":1,"136":2}}],["matching",{"2":{"3":1,"6":1,"22":1,"69":3,"103":1,"134":2}}],["matrix",{"2":{"6":1,"14":2,"40":1}}],["maximal",{"2":{"54":1}}],["maximum",{"2":{"3":1,"6":4,"14":1,"46":1,"47":4,"83":1,"128":1,"152":1,"153":1,"158":4}}],["max",{"2":{"6":9,"34":2,"47":1,"128":1,"136":2,"151":5,"152":8,"153":7,"158":36,"160":1,"168":1}}],["made",{"2":{"6":2,"44":1,"45":1,"54":1,"110":1,"134":1,"142":1,"145":1,"159":1}}],["maybe",{"2":{"6":1,"97":4,"131":1,"136":6}}],["may",{"2":{"1":1,"6":5,"23":2,"24":1,"40":2,"45":1,"54":1,"62":1,"126":1,"127":1,"134":1,"136":4,"143":1,"144":1,"152":1,"164":1}}],["mercator",{"2":{"171":1}}],["merge",{"2":{"136":1}}],["measure",{"2":{"136":1,"150":1}}],["meant",{"2":{"26":1}}],["meaning",{"2":{"3":3,"4":1,"6":4,"24":1,"37":1,"41":1,"103":4,"126":1}}],["means",{"2":{"3":1,"6":2,"36":1,"37":1,"41":1,"74":1,"97":3,"102":1,"103":1,"126":1,"134":1}}],["mean",{"2":{"0":1,"6":5,"17":1,"39":2,"40":5,"136":1}}],["meanvalue",{"2":{"0":1,"5":2,"6":3,"38":1,"39":2,"40":15}}],["meets",{"2":{"97":9,"103":1,"158":1}}],["meet",{"2":{"54":3,"74":1,"75":1,"89":1,"97":7,"106":1,"116":1}}],["memory",{"2":{"40":1,"172":1}}],["mesh",{"2":{"39":1,"136":1}}],["message",{"2":{"6":1,"166":1}}],["me",{"0":{"23":1}}],["mentioned",{"2":{"19":1}}],["mentions",{"2":{"6":1,"166":1}}],["menu",{"2":{"14":3}}],["median",{"2":{"13":4,"136":1}}],["mechanics",{"2":{"6":1,"40":1}}],["met",{"2":{"97":44}}],["meters",{"2":{"6":4,"151":1,"152":4,"171":1}}],["methoderror",{"2":{"31":3}}],["methods",{"0":{"2":1,"3":1,"4":1,"6":1},"1":{"3":1,"4":1},"2":{"1":1,"6":9,"9":1,"25":1,"27":1,"31":27,"40":3,"58":1,"75":1,"89":1,"106":1,"116":1,"128":1,"131":1,"134":1,"136":2,"151":1,"156":2,"161":1,"164":1,"170":1}}],["method",{"0":{"148":1},"2":{"1":1,"4":1,"5":10,"6":97,"24":1,"34":1,"37":1,"40":37,"41":2,"44":1,"47":1,"54":1,"57":1,"62":3,"63":2,"66":4,"69":1,"75":2,"89":2,"103":1,"106":2,"116":2,"128":1,"136":5,"147":1,"148":2,"151":2,"152":9,"153":14,"154":2,"165":1,"166":3,"175":1,"178":1}}],["mutation",{"2":{"173":1}}],["mutlipolygon",{"2":{"4":1,"6":1,"44":1}}],["muladd",{"2":{"40":2}}],["multifloats",{"2":{"13":1,"14":1,"15":1}}],["multifloat",{"2":{"7":1}}],["multilinestringtrait",{"2":{"141":1}}],["multilinestring",{"2":{"6":1,"136":1,"167":2}}],["multi",{"0":{"81":1,"82":1,"95":1,"96":1,"112":1,"113":1,"122":1,"123":1},"2":{"4":2,"6":3,"34":1,"37":1,"47":1,"69":2,"81":1,"82":1,"95":1,"96":1,"112":1,"113":1,"122":1,"123":1}}],["multicurves",{"2":{"37":1,"47":1}}],["multicurve",{"2":{"4":1,"6":1,"37":1}}],["multigeometry",{"2":{"4":2,"6":2,"66":2}}],["multiplication",{"2":{"153":1}}],["multiplied",{"2":{"40":3}}],["multiple",{"2":{"4":1,"6":1,"40":1,"97":1,"149":1,"160":1,"170":1,"174":1}}],["multiply",{"2":{"1":1,"6":1,"161":1}}],["multipolys",{"2":{"57":3}}],["multipoly`",{"2":{"51":2,"53":2,"56":2}}],["multipoly",{"2":{"6":9,"15":3,"51":1,"52":27,"53":1,"54":26,"56":1,"57":24,"145":21,"156":9}}],["multipolygon`",{"2":{"128":1}}],["multipolygons",{"2":{"3":1,"4":1,"6":11,"44":1,"51":3,"53":3,"54":3,"56":3,"65":1,"69":1,"103":2,"144":1,"170":1,"171":1}}],["multipolygon",{"2":{"3":2,"4":5,"6":16,"37":2,"43":1,"51":1,"52":7,"53":1,"54":5,"56":1,"57":6,"69":4,"103":2,"128":7,"136":1,"142":2,"143":7,"144":8,"145":2,"156":3,"170":8,"171":1}}],["multipolygontrait",{"2":{"1":1,"3":4,"4":2,"6":7,"23":1,"52":4,"54":4,"57":4,"69":6,"81":1,"82":1,"95":1,"96":1,"103":8,"112":1,"113":1,"122":1,"123":1,"136":1,"141":1,"145":4}}],["multipoint",{"2":{"4":5,"6":5,"37":1,"69":5,"83":6,"136":4,"156":1,"170":5}}],["multipoints",{"2":{"3":2,"4":1,"6":3,"37":1,"47":1,"69":2,"103":2,"156":1,"170":1}}],["multipointtrait",{"2":{"1":1,"3":2,"4":4,"6":8,"34":2,"37":1,"47":1,"69":8,"81":1,"82":1,"83":4,"95":1,"96":1,"103":4,"112":1,"113":1,"122":1,"123":1,"134":1,"141":1,"156":2,"167":1}}],["multithreading",{"2":{"1":2,"4":1,"6":5,"133":1}}],["must",{"2":{"1":1,"3":8,"4":2,"5":1,"6":23,"9":1,"34":1,"40":5,"41":1,"45":2,"47":3,"50":1,"54":2,"69":5,"72":2,"75":1,"85":1,"86":1,"89":1,"97":13,"103":1,"105":1,"106":1,"116":2,"128":1,"131":1,"136":1,"140":1,"141":3,"142":1,"147":1,"152":1,"153":1,"156":1,"160":4,"166":1}}],["much",{"2":{"0":1,"6":3,"51":1,"53":1,"56":1}}],["mdash",{"2":{"1":4,"3":9,"4":8,"5":3,"6":89,"131":3,"141":1,"142":4}}],["df",{"2":{"173":3,"174":4,"176":10,"177":12}}],["dp",{"2":{"156":3}}],["dy",{"2":{"126":2,"153":3}}],["dy2",{"2":{"126":2}}],["dy1",{"2":{"83":10,"126":2}}],["dyc",{"2":{"83":2}}],["dx",{"2":{"126":2,"153":3}}],["dx2",{"2":{"126":2}}],["dx1",{"2":{"83":10,"126":2}}],["dxc",{"2":{"83":2}}],["drop",{"2":{"57":1,"145":1,"153":1}}],["driven",{"2":{"25":1,"27":1}}],["driving",{"2":{"25":1,"27":1}}],["duplicated",{"2":{"54":2}}],["during",{"2":{"45":1}}],["due",{"2":{"44":1,"45":1,"54":3}}],["date",{"2":{"62":1}}],["datas",{"2":{"178":1}}],["datasets",{"2":{"171":1,"175":1,"176":1}}],["dataset",{"2":{"171":1,"175":1}}],["datainterpolations",{"2":{"150":1}}],["dataframes",{"2":{"173":3,"176":2,"177":1}}],["dataframe",{"2":{"29":1,"173":1,"175":1,"176":5,"177":2}}],["data",{"0":{"128":1,"174":1},"2":{"23":1,"25":1,"27":1,"61":1,"128":2,"156":10,"169":1,"171":2,"172":2,"173":2,"174":6,"176":1}}],["dataaspect",{"2":{"13":1,"14":1,"33":1,"36":1,"39":2,"43":1,"46":1,"65":2,"128":2,"151":1,"156":1}}],["dashboard",{"0":{"14":1},"2":{"13":1,"14":1}}],["d",{"2":{"1":2,"5":1,"6":1,"40":1,"147":1,"158":3}}],["deu",{"2":{"177":2}}],["demonstrates",{"2":{"176":1}}],["densify",{"2":{"152":3}}],["densifying",{"2":{"152":1}}],["densifies",{"2":{"150":1}}],["denoted",{"2":{"97":1}}],["denotes",{"2":{"45":1}}],["debug",{"2":{"141":1}}],["debugging",{"2":{"40":1,"45":1}}],["de",{"2":{"97":2,"175":1}}],["derivation",{"2":{"54":1}}],["dealing",{"2":{"47":1}}],["delete",{"2":{"83":1,"103":1,"128":1,"158":1}}],["deleteat",{"2":{"45":6,"158":1,"160":2}}],["deltri",{"2":{"63":1}}],["delayed",{"2":{"45":10,"52":2,"54":2,"57":2}}],["delay",{"2":{"45":14,"51":2,"52":2,"53":2,"54":2,"56":2,"57":2}}],["delaunay",{"2":{"6":1,"63":1}}],["delaunaytriangulation",{"2":{"6":1,"31":1,"58":1,"63":6}}],["depend",{"2":{"45":2}}],["depends",{"2":{"45":1,"50":1}}],["depending",{"2":{"1":1,"6":1,"23":1,"54":1,"136":1}}],["depth",{"2":{"40":2}}],["desktop",{"2":{"174":1}}],["dest",{"2":{"171":2}}],["destination",{"2":{"171":5}}],["desired",{"2":{"56":1,"174":1}}],["despite",{"2":{"34":1}}],["describe",{"2":{"17":1}}],["described",{"2":{"6":1,"40":1,"44":1,"45":1}}],["deconstruct",{"2":{"129":1}}],["decomposition",{"2":{"18":1,"129":1}}],["decomposing",{"2":{"18":1}}],["decompose",{"2":{"18":2,"29":1,"40":4,"137":1}}],["decrementing",{"2":{"128":1}}],["decrease",{"2":{"44":1}}],["decreasing",{"2":{"6":1,"156":1}}],["decide",{"2":{"62":1,"128":1}}],["decision",{"2":{"24":1}}],["degeneracies",{"2":{"9":1}}],["degenerate",{"2":{"6":1,"40":1,"50":2}}],["degrees",{"2":{"6":1,"33":1,"126":1,"152":1}}],["defines",{"2":{"45":1,"129":1,"140":1,"163":1}}],["define",{"2":{"39":1,"54":2,"68":1,"128":2,"129":1,"134":1,"136":1,"163":1,"178":2}}],["defined",{"2":{"4":1,"5":1,"6":3,"7":1,"22":1,"34":2,"40":1,"46":1,"47":4,"54":4,"66":2,"125":1,"136":1,"153":1,"163":1}}],["definitions",{"2":{"166":1}}],["definition",{"2":{"4":4,"6":6,"69":8,"74":1,"153":1}}],["default",{"2":{"1":2,"4":5,"6":14,"34":1,"37":2,"47":1,"51":1,"52":2,"53":1,"54":5,"56":1,"57":2,"63":1,"66":2,"128":5,"131":1,"136":2,"147":2,"156":2}}],["defaults",{"2":{"1":6,"4":2,"6":14,"133":3,"136":1}}],["deeper",{"2":{"1":1,"6":1,"135":1,"136":2}}],["detrimental",{"2":{"143":1}}],["detector",{"2":{"62":1}}],["detection",{"2":{"62":1,"128":1}}],["determined",{"2":{"45":1,"47":1}}],["determine",{"2":{"45":10,"47":3,"51":2,"53":2,"54":9,"56":2,"75":1,"89":1,"97":9,"103":1,"106":1,"116":1,"158":3,"175":1}}],["determines",{"2":{"37":1,"45":3,"54":1,"97":10}}],["determinant",{"2":{"6":1,"40":1}}],["details",{"2":{"131":3,"132":1,"151":2}}],["detail",{"2":{"26":1}}],["det",{"2":{"0":1,"6":2,"40":4}}],["dirname",{"2":{"156":4}}],["dirty",{"2":{"155":1}}],["directive",{"2":{"136":1}}],["direction",{"2":{"6":1,"45":1,"69":5,"128":3}}],["directly",{"2":{"6":1,"63":3,"128":1,"152":1}}],["dig",{"2":{"136":1}}],["dict",{"2":{"128":5}}],["didn",{"2":{"57":1,"97":1,"165":1}}],["division",{"2":{"39":1}}],["divided",{"2":{"26":1}}],["div",{"2":{"6":2}}],["div>",{"2":{"6":2}}],["ditance",{"2":{"4":1,"6":1,"66":1}}],["dimensional",{"2":{"5":1,"6":3,"36":1,"40":1,"63":2}}],["dimensions",{"2":{"3":1,"6":1,"103":2}}],["dimension",{"2":{"1":1,"3":4,"6":4,"83":2,"102":1,"103":4,"147":1}}],["discouraged",{"2":{"172":1}}],["discussion",{"2":{"25":1,"27":1,"50":1}}],["distributed",{"2":{"176":2}}],["distinct",{"2":{"54":1,"128":1}}],["dist",{"2":{"54":40,"66":19,"97":2,"152":8,"158":40}}],["distance`",{"2":{"152":3,"153":1,"166":1}}],["distances",{"2":{"54":1,"65":1,"152":1,"157":5}}],["distance",{"0":{"64":2,"65":2},"1":{"65":2,"66":2},"2":{"0":4,"4":26,"6":47,"31":1,"40":13,"41":3,"47":3,"54":32,"64":2,"65":17,"66":92,"97":1,"129":1,"150":1,"151":5,"152":13,"153":14,"156":1,"157":3,"158":6,"159":1,"168":1,"178":2}}],["disagree",{"2":{"37":1}}],["disparate",{"2":{"25":1,"27":1}}],["dispatches",{"2":{"6":1,"34":1,"37":1,"40":1,"44":1,"47":1,"66":1,"69":1,"75":1,"89":1,"103":1,"106":1,"116":1}}],["dispatch",{"2":{"4":1,"6":5,"24":1,"40":1,"69":1,"131":1,"136":2,"164":1,"166":1}}],["displaying",{"2":{"171":1}}],["display",{"2":{"13":1,"39":1,"171":1}}],["disjoint",{"0":{"87":1,"88":1,"91":1,"92":1,"93":1,"94":1,"95":1},"1":{"88":1,"89":1},"2":{"0":2,"3":5,"6":7,"23":1,"31":1,"57":2,"87":1,"88":3,"89":11,"90":6,"91":15,"92":18,"93":10,"94":5,"95":4,"96":2,"97":16,"100":3,"142":2,"143":2,"145":7,"175":1}}],["diffs",{"2":{"34":4}}],["diff",{"2":{"6":2,"34":17,"51":5,"52":3,"103":3,"145":8}}],["differs",{"2":{"171":1}}],["differ",{"2":{"4":1,"6":1,"66":1}}],["differently",{"2":{"4":3,"6":4,"34":1,"37":2,"47":1}}],["different",{"2":{"3":1,"4":4,"6":6,"20":1,"23":1,"34":1,"37":4,"45":3,"47":1,"54":2,"62":1,"103":3,"128":1,"134":1,"136":1,"143":2,"171":2,"174":1}}],["differences",{"0":{"52":1},"2":{"54":1,"158":1}}],["difference",{"0":{"51":1},"2":{"0":1,"6":7,"11":1,"23":1,"31":1,"45":3,"51":12,"52":14,"54":1,"56":1,"57":3,"142":1,"145":1,"152":1}}],["diffintersectingpolygons",{"2":{"0":1,"6":1,"142":1,"145":4}}],["doi",{"2":{"51":2,"53":2,"56":2,"97":1}}],["doing",{"2":{"17":1,"22":1,"136":1,"172":1}}],["dot",{"2":{"34":2,"40":1}}],["doable",{"2":{"9":1}}],["documenter",{"2":{"131":3,"132":1,"151":2}}],["documentation",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"26":1,"39":1}}],["docstring",{"2":{"131":6,"132":2,"151":4}}],["docstrings",{"0":{"130":1},"1":{"131":1},"2":{"7":1}}],["docs",{"0":{"26":1},"2":{"26":1,"128":1}}],["doc",{"2":{"9":1,"10":1}}],["does",{"0":{"22":1},"2":{"7":1,"19":1,"43":1,"54":2,"71":1,"74":3,"97":1}}],["doesn",{"2":{"4":1,"6":2,"37":1,"50":1,"69":1,"152":1,"166":1,"177":1}}],["download",{"2":{"171":1}}],["down",{"2":{"6":1,"18":1,"29":1,"40":1,"136":1}}],["doublets",{"2":{"177":2}}],["double",{"2":{"159":4}}],["doubled",{"2":{"6":1,"159":1}}],["douglas",{"2":{"154":2,"156":2,"158":1}}],["douglaspeucker",{"0":{"158":1},"2":{"0":1,"6":5,"154":1,"156":5,"158":6}}],["done",{"0":{"10":1},"2":{"13":1,"14":1,"97":2,"128":1,"129":1,"143":1,"170":1,"175":1}}],["don",{"2":{"4":2,"6":3,"45":4,"51":1,"57":1,"69":6,"92":1,"97":1,"105":1,"109":1,"128":2,"136":3,"153":1,"166":1}}],["do",{"0":{"9":1,"23":1,"55":1},"2":{"1":1,"6":2,"14":1,"23":1,"31":1,"34":1,"37":2,"40":2,"41":1,"44":1,"47":1,"50":1,"57":3,"66":2,"68":1,"69":1,"85":1,"92":2,"93":1,"94":2,"97":1,"128":4,"129":1,"136":11,"138":1,"139":1,"144":1,"146":2,"148":1,"152":1,"156":1,"161":2,"162":2,"171":2,"172":2,"173":3,"176":1,"177":1}}],["ay",{"2":{"126":2}}],["azimuth",{"2":{"126":2}}],["automatically",{"2":{"103":1,"171":1}}],["a3",{"2":{"61":1}}],["against",{"2":{"69":1,"97":2,"152":1,"156":1}}],["again",{"2":{"54":1,"136":1}}],["a``",{"2":{"52":2}}],["a`",{"2":{"52":7,"54":3,"57":2}}],["away",{"2":{"41":1,"83":1,"178":1}}],["a2y",{"2":{"54":4}}],["a2x",{"2":{"54":4}}],["a2",{"2":{"39":4,"54":54,"62":1,"103":6}}],["a1y",{"2":{"54":7}}],["a1x",{"2":{"54":7}}],["a1",{"2":{"39":2,"45":9,"54":66,"62":1,"103":6}}],["ams",{"2":{"168":2}}],["america",{"2":{"156":1}}],["am",{"2":{"97":1}}],["ambiguity",{"2":{"66":2,"136":5}}],["amounts",{"2":{"174":1}}],["amount",{"2":{"36":1,"46":1}}],["amp",{"2":{"6":1,"9":1}}],["axes",{"2":{"128":6}}],["ax",{"2":{"13":3,"14":3,"126":2,"170":5}}],["axislegend",{"2":{"60":1,"151":1,"155":1}}],["axis",{"2":{"13":2,"14":1,"33":1,"36":1,"39":4,"43":1,"46":1,"62":2,"65":1,"128":2,"151":1,"156":1,"168":1}}],["axs",{"2":{"13":2}}],["a>",{"2":{"6":2}}],["adjust",{"2":{"54":1}}],["adjacent",{"2":{"45":1,"52":1,"54":1,"57":1}}],["adaptivity",{"0":{"55":1}}],["adaptive",{"2":{"7":1,"13":3,"14":2,"55":1}}],["adapted",{"2":{"51":1,"53":1,"56":1,"126":1}}],["advance",{"2":{"44":2}}],["advised",{"2":{"6":1,"164":1}}],["administrative",{"2":{"177":1}}],["admin",{"2":{"11":1,"61":1,"156":2}}],["adm0",{"2":{"11":7,"61":4}}],["additional",{"2":{"174":1}}],["additionally",{"2":{"45":3,"69":1}}],["addition",{"2":{"39":1,"57":1}}],["adding",{"2":{"4":1,"6":4,"7":1,"57":2,"128":1,"149":1,"150":1,"152":2,"153":1}}],["added",{"2":{"6":1,"34":1,"45":6,"47":1,"57":2,"131":1,"136":1,"145":2,"158":1}}],["add",{"2":{"3":1,"6":1,"7":2,"40":1,"41":1,"45":16,"47":1,"50":4,"51":3,"53":1,"54":2,"56":2,"57":9,"63":1,"83":1,"128":4,"136":1,"150":1,"152":1,"158":10,"165":1,"171":1,"173":2,"175":1}}],["average",{"2":{"38":3,"44":4,"54":1}}],["available",{"0":{"142":1},"2":{"6":3,"31":1,"44":1,"141":3,"150":1,"151":1,"153":1,"156":1,"160":1,"164":1}}],["avoid",{"2":{"5":1,"6":7,"40":1,"51":1,"53":1,"54":1,"56":1,"57":1,"128":2,"136":5,"153":1,"157":1,"158":1,"159":1,"170":3}}],["achieve",{"2":{"143":1}}],["across",{"2":{"134":1}}],["acos",{"2":{"34":1}}],["activate",{"2":{"151":1}}],["action",{"2":{"20":2}}],["actions",{"2":{"20":2}}],["actual",{"2":{"10":1,"40":1,"126":1,"139":1,"147":1,"152":1}}],["actually",{"2":{"1":1,"6":1,"9":1,"40":4,"54":1,"57":3,"97":1,"128":1,"161":1,"174":1}}],["access",{"2":{"171":1}}],["accessed",{"2":{"166":1}}],["acceptable",{"2":{"97":1}}],["accepts",{"2":{"63":1}}],["accept",{"2":{"6":1,"166":1}}],["according",{"2":{"138":1,"143":1,"144":1,"176":1}}],["accordingly",{"2":{"45":1}}],["account",{"2":{"51":1,"53":1}}],["accurary",{"2":{"54":1}}],["accuratearithmetic",{"2":{"11":2}}],["accurate",{"0":{"11":1},"2":{"11":3,"151":1}}],["accumulators",{"2":{"40":1}}],["accumulator",{"2":{"40":1}}],["accumulate",{"2":{"37":1,"44":3}}],["accumulation",{"0":{"11":1},"2":{"40":1}}],["after",{"2":{"6":8,"34":1,"45":3,"136":1,"156":2}}],["ab",{"2":{"45":3,"51":1,"53":1,"54":5,"56":1}}],["able",{"2":{"20":1,"54":1}}],["ability",{"2":{"17":1}}],["about",{"2":{"6":1,"24":2,"30":1,"40":2,"97":1,"137":1}}],["above",{"2":{"4":1,"6":1,"34":1,"44":1,"45":1,"54":1,"57":1,"141":1}}],["abs",{"2":{"34":1,"37":4,"44":1,"47":2,"83":8,"103":2,"128":1,"159":1,"178":1}}],["absolute",{"2":{"4":1,"6":1,"36":1,"37":2}}],["abstractpolygon",{"2":{"136":1}}],["abstractpolygontrait",{"2":{"66":1}}],["abstractpoint",{"2":{"136":1}}],["abstractface",{"2":{"136":1}}],["abstractfloat",{"2":{"31":1,"34":1,"37":2,"45":1,"47":2,"50":1,"51":1,"53":1,"54":1,"56":1,"66":8}}],["abstractrange",{"2":{"128":6}}],["abstractmesh",{"2":{"136":1}}],["abstractmulticurvetrait",{"2":{"81":1,"82":1,"95":1,"96":1,"112":1,"113":1,"122":1,"123":1}}],["abstractmatrix",{"2":{"6":5,"128":13}}],["abstractcurvetrait",{"2":{"34":1,"37":1,"47":1,"77":1,"80":1,"81":1,"83":1,"91":1,"95":1,"108":1,"111":1,"112":1,"118":1,"121":1,"122":1,"126":1,"156":2,"167":3}}],["abstractarrays",{"2":{"134":1}}],["abstractarray",{"2":{"6":1,"131":1,"136":6,"167":2}}],["abstract",{"2":{"6":3,"40":3,"140":1,"141":4,"142":1,"156":3,"165":1}}],["abstractvector",{"2":{"5":1,"6":1,"40":26,"128":8}}],["abstractgeometrytrait`",{"2":{"141":1}}],["abstractgeometrytrait",{"2":{"6":3,"37":2,"47":1,"66":1,"82":1,"96":1,"113":1,"123":1,"131":1,"134":1,"141":4,"142":2,"167":5}}],["abstractgeometry",{"2":{"3":4,"6":4,"72":2,"86":2,"136":1}}],["abstracttrait",{"2":{"1":2,"3":2,"6":8,"50":1,"52":2,"54":4,"57":2,"103":4,"129":1,"131":2,"136":9,"164":3}}],["abstractbarycentriccoordinatemethod",{"2":{"0":1,"5":1,"6":7,"40":18}}],["attribute",{"2":{"174":1}}],["attributed",{"2":{"173":1}}],["attributes",{"0":{"173":1},"2":{"169":1,"173":3}}],["attempts",{"2":{"97":1}}],["attach",{"2":{"1":2,"4":1,"6":5,"133":1}}],["atomic",{"2":{"7":1}}],["at",{"2":{"3":4,"5":1,"6":6,"9":1,"18":1,"20":1,"24":1,"26":1,"34":2,"36":1,"37":1,"39":1,"40":2,"45":4,"47":2,"54":8,"57":2,"62":1,"97":17,"103":6,"105":1,"106":1,"109":3,"110":2,"111":2,"112":1,"113":1,"116":1,"122":1,"126":1,"134":1,"136":1,"151":1,"153":1,"158":1,"160":1,"171":1,"172":2}}],["arbitrarily",{"2":{"134":1}}],["arbitrary",{"2":{"38":1,"129":1,"170":1}}],["around",{"2":{"39":1,"40":2,"50":1,"65":1,"69":1,"128":1,"156":1,"176":1}}],["argmin",{"2":{"160":1}}],["argtypes",{"2":{"41":2,"148":1,"152":1}}],["args",{"2":{"13":2}}],["argumenterror",{"2":{"57":1,"128":1,"136":5}}],["argument",{"2":{"4":5,"6":10,"34":1,"37":2,"44":1,"47":1,"51":1,"53":1,"56":1,"66":2,"136":2,"166":2,"171":1,"172":1}}],["arguments",{"2":{"1":1,"3":1,"6":5,"45":1,"75":2,"89":1,"106":1,"116":1,"147":1,"152":2,"153":1,"166":1}}],["arithmetic",{"2":{"11":1}}],["archgdal",{"2":{"23":1}}],["arc",{"2":{"6":1,"152":1}}],["array",{"2":{"4":1,"6":2,"37":1,"47":1,"128":5,"136":7,"157":1,"160":1}}],["arrays",{"2":{"1":1,"6":2,"22":1,"128":1,"136":2}}],["aren",{"2":{"4":3,"6":5,"50":1,"52":1,"54":2,"57":4,"69":3,"142":2,"145":2}}],["are",{"2":{"1":1,"3":4,"4":18,"5":2,"6":50,"9":2,"20":2,"22":3,"24":1,"25":1,"26":2,"27":1,"33":1,"34":8,"36":1,"37":2,"38":6,"40":11,"43":1,"44":3,"45":31,"47":6,"50":3,"51":3,"52":15,"53":2,"54":16,"56":5,"57":9,"62":3,"65":1,"66":1,"68":3,"69":26,"71":1,"75":7,"77":1,"78":3,"79":3,"80":1,"82":1,"88":1,"89":5,"91":1,"92":1,"93":1,"95":1,"96":1,"97":12,"103":7,"106":5,"108":1,"110":2,"115":1,"116":5,"118":1,"119":3,"120":3,"121":1,"123":1,"126":1,"127":1,"128":14,"131":1,"134":1,"136":4,"137":1,"138":1,"139":1,"141":1,"142":3,"143":1,"144":1,"145":2,"149":1,"151":1,"152":1,"153":1,"156":4,"158":1,"160":2,"162":1,"163":2,"164":1,"166":1,"168":1,"170":1,"173":2,"174":2,"175":3,"176":6,"177":1,"178":1}}],["area2",{"2":{"44":4}}],["area1",{"2":{"44":4}}],["areas",{"2":{"4":2,"6":2,"37":3,"159":2}}],["area",{"0":{"35":2,"36":2},"1":{"36":2,"37":2},"2":{"0":5,"4":15,"6":25,"11":6,"31":1,"35":2,"36":9,"37":61,"42":1,"43":3,"44":49,"46":2,"47":44,"56":2,"57":1,"103":1,"129":1,"142":2,"145":2,"156":2,"159":4,"171":1}}],["ask",{"2":{"23":1}}],["aspect",{"2":{"13":1,"14":1,"33":1,"36":1,"39":2,"43":1,"46":1,"65":2,"128":2,"151":1,"156":1}}],["assign",{"2":{"169":1}}],["assigned",{"2":{"45":1,"128":7,"176":1}}],["assets",{"2":{"171":1}}],["assetpath",{"2":{"171":1}}],["assemble",{"2":{"139":1}}],["assert",{"2":{"40":23,"44":1,"45":1,"50":1,"52":1,"54":1,"153":1,"167":1}}],["assume",{"2":{"103":2,"136":3,"138":1,"145":1}}],["assumed",{"2":{"37":1,"69":1,"97":1}}],["assumes",{"2":{"6":1,"45":1,"66":1,"152":1,"160":1}}],["associativity",{"2":{"19":1}}],["associated",{"0":{"1":1},"2":{"38":2}}],["as",{"2":{"1":8,"3":18,"4":6,"5":1,"6":80,"7":1,"11":2,"13":3,"14":3,"15":3,"17":2,"18":2,"20":1,"22":1,"23":2,"24":1,"25":1,"27":1,"33":2,"34":4,"36":2,"37":3,"38":4,"39":1,"40":4,"41":3,"43":2,"44":1,"45":15,"46":2,"47":5,"49":3,"50":5,"51":8,"52":2,"53":7,"54":8,"56":7,"57":5,"58":1,"60":2,"61":2,"62":3,"63":3,"65":3,"66":1,"68":2,"69":2,"71":2,"72":2,"74":3,"75":3,"83":2,"85":2,"86":2,"88":2,"89":3,"97":7,"99":2,"100":2,"102":2,"103":2,"105":2,"106":3,"108":1,"115":2,"116":3,"126":8,"128":3,"129":3,"131":1,"134":2,"135":2,"136":15,"138":2,"139":2,"141":1,"142":1,"144":2,"147":3,"149":1,"150":2,"151":2,"152":3,"154":2,"155":2,"156":7,"158":2,"161":3,"164":2,"165":2,"166":2,"167":2,"168":3,"169":3,"170":2,"171":1,"172":1,"174":3,"175":2,"176":3,"177":2}}],["alone",{"2":{"136":1}}],["along",{"2":{"4":4,"6":5,"45":3,"47":2,"54":4,"69":4,"97":1}}],["although",{"2":{"119":1,"120":1}}],["alternate",{"2":{"45":1}}],["alternative",{"2":{"45":1}}],["already",{"2":{"69":1,"97":2,"158":1}}],["almost",{"2":{"54":1}}],["alg=nothing",{"2":{"156":1}}],["alg`",{"2":{"156":1}}],["alg",{"2":{"6":4,"156":21,"157":3,"158":8,"159":3,"160":7,"166":9}}],["algorithms",{"2":{"6":3,"58":1,"62":1,"138":1,"153":1,"154":1,"156":4,"158":1,"160":1}}],["algorithm",{"0":{"157":1,"158":1,"159":1},"2":{"6":12,"39":1,"45":2,"47":1,"50":3,"51":1,"53":1,"56":1,"58":1,"63":4,"97":1,"154":1,"156":8,"157":1,"158":3,"159":1,"166":4}}],["allocating",{"2":{"63":1}}],["allocations",{"2":{"5":1,"6":1,"40":1}}],["allocate",{"2":{"63":1}}],["allow=",{"2":{"97":1}}],["allows",{"2":{"11":1,"18":1,"23":1,"24":1,"29":1,"75":2,"77":3,"78":3,"79":3,"80":1,"89":2,"91":3,"92":3,"93":2,"94":1,"106":1,"109":1,"110":1,"111":1,"116":3,"118":3,"119":3,"120":3,"121":1,"129":1,"154":1,"171":1,"173":1,"175":1}}],["allowed",{"2":{"6":1,"75":3,"89":3,"97":6,"106":5,"108":1,"109":2,"116":3,"156":1}}],["allow",{"2":{"1":1,"6":1,"23":1,"54":1,"75":7,"83":3,"89":7,"97":73,"106":10,"116":10,"161":1}}],["all",{"2":{"1":3,"3":2,"4":3,"6":14,"9":1,"11":7,"22":1,"25":1,"27":1,"31":2,"34":5,"37":3,"40":1,"45":13,"47":3,"51":1,"52":3,"54":3,"57":5,"58":1,"61":3,"63":1,"65":1,"69":2,"71":1,"78":3,"79":3,"82":1,"95":1,"96":1,"97":7,"103":4,"115":1,"123":1,"126":1,"127":1,"128":3,"131":1,"134":2,"135":1,"136":8,"139":1,"141":1,"143":1,"146":1,"149":1,"156":1,"161":2,"162":1,"163":1,"170":1,"172":1,"174":1,"175":1}}],["always",{"2":{"1":7,"4":6,"6":10,"25":1,"27":1,"36":1,"37":4,"47":2,"62":1,"65":1,"66":1,"69":1,"136":2,"147":4,"175":1}}],["also",{"2":{"1":2,"6":11,"23":1,"34":1,"37":2,"44":2,"45":3,"47":1,"51":1,"53":1,"54":2,"56":1,"58":1,"62":1,"63":1,"65":1,"66":2,"69":3,"103":1,"128":1,"134":1,"136":1,"139":1,"142":3,"145":2,"148":1,"150":1,"151":1,"152":1,"154":1,"161":1,"164":1,"170":2,"173":1}}],["a",{"0":{"23":1,"171":1,"173":1},"2":{"1":13,"3":5,"4":79,"5":1,"6":196,"7":3,"9":1,"11":1,"15":2,"17":1,"18":6,"20":3,"22":3,"23":4,"24":2,"25":2,"27":2,"29":2,"30":2,"33":3,"34":22,"36":11,"37":20,"38":13,"39":4,"40":11,"41":2,"43":5,"44":8,"45":281,"46":2,"47":17,"49":3,"50":4,"51":39,"52":30,"53":38,"54":91,"55":3,"56":36,"57":45,"58":3,"60":3,"61":2,"62":1,"63":4,"65":15,"66":27,"68":2,"69":54,"71":2,"74":1,"75":3,"77":5,"78":3,"79":2,"81":2,"82":2,"83":1,"85":2,"88":1,"89":3,"91":4,"92":3,"93":1,"95":2,"96":2,"97":52,"99":2,"102":5,"103":27,"105":2,"106":4,"108":4,"109":2,"110":2,"111":1,"112":2,"113":2,"115":1,"116":3,"118":5,"119":2,"120":2,"122":2,"123":2,"125":1,"126":4,"128":79,"129":4,"131":2,"134":4,"136":36,"137":6,"138":2,"139":2,"140":5,"141":5,"142":9,"143":8,"145":6,"146":3,"147":8,"148":3,"149":2,"150":5,"151":4,"152":8,"153":10,"155":3,"156":5,"159":3,"160":1,"161":2,"162":1,"164":6,"165":1,"166":12,"167":2,"168":1,"169":1,"170":21,"171":12,"172":5,"173":5,"174":11,"175":5,"176":8,"177":3,"178":3}}],["annotation",{"2":{"165":1}}],["annotated",{"2":{"26":1}}],["angels",{"2":{"34":1}}],["angle",{"2":{"34":35,"126":1}}],["angles",{"0":{"32":1,"33":1},"1":{"33":1,"34":1},"2":{"0":2,"4":10,"6":10,"31":1,"32":1,"33":4,"34":42}}],["answers",{"2":{"143":1}}],["answer",{"2":{"6":3,"51":1,"53":1,"54":1,"56":1}}],["another",{"2":{"3":1,"6":1,"45":2,"54":1,"63":1,"65":1,"71":1,"74":1,"77":1,"79":1,"80":1,"85":1,"88":1,"91":1,"92":1,"93":1,"94":1,"97":1,"99":1,"102":1,"103":1,"105":1,"108":1,"109":1,"110":1,"111":1,"115":1,"118":1,"119":1,"120":1,"121":1,"128":1,"147":1}}],["anonymous",{"2":{"1":1,"6":1,"161":1}}],["an",{"2":{"1":3,"4":11,"5":1,"6":29,"9":1,"13":1,"14":1,"18":1,"20":1,"23":2,"33":1,"34":4,"36":1,"37":2,"39":1,"40":3,"41":2,"43":1,"45":15,"46":2,"47":2,"49":1,"50":1,"51":2,"52":5,"53":2,"54":9,"56":2,"57":2,"63":3,"65":2,"66":5,"68":1,"69":1,"71":1,"74":2,"77":2,"85":1,"88":1,"97":13,"99":1,"102":1,"103":1,"105":1,"115":1,"118":2,"119":1,"120":1,"127":1,"128":3,"131":1,"134":1,"135":1,"136":8,"139":1,"147":1,"149":1,"152":1,"161":2,"166":3,"167":1,"168":1,"170":2,"171":2,"173":1,"176":1}}],["anything",{"2":{"39":1,"97":1}}],["any",{"2":{"1":3,"3":1,"4":2,"6":19,"18":1,"24":1,"25":1,"27":1,"29":1,"38":2,"44":1,"45":7,"47":1,"50":1,"52":1,"54":4,"57":1,"66":2,"76":2,"77":1,"80":1,"88":1,"90":2,"91":1,"92":2,"93":1,"94":2,"97":8,"103":2,"107":2,"117":2,"121":1,"128":2,"129":2,"131":1,"136":2,"139":1,"140":1,"141":3,"142":4,"145":4,"147":2,"150":1,"152":1,"153":1,"158":1,"167":1,"175":2,"176":2}}],["and",{"0":{"1":1,"20":1,"22":1,"24":1,"35":1,"52":1,"54":1,"57":1,"64":1,"170":1,"171":1,"173":1},"1":{"36":1,"37":1,"65":1,"66":1},"2":{"0":2,"1":8,"3":11,"4":18,"6":84,"7":1,"9":2,"17":4,"18":4,"20":2,"22":1,"23":2,"24":3,"25":2,"26":5,"27":2,"29":2,"30":1,"31":2,"34":13,"36":1,"37":7,"38":2,"39":2,"40":20,"41":1,"42":2,"43":1,"44":29,"45":71,"46":2,"47":18,"49":1,"50":4,"51":4,"52":16,"53":4,"54":38,"56":6,"57":15,"62":1,"63":2,"65":2,"66":13,"68":2,"69":13,"71":3,"72":2,"74":2,"75":3,"78":3,"79":4,"80":1,"83":1,"85":2,"86":2,"89":3,"92":3,"93":1,"94":1,"97":36,"99":1,"102":2,"103":3,"106":2,"110":2,"111":2,"115":3,"116":4,"118":2,"119":3,"120":3,"121":1,"126":2,"128":16,"129":8,"131":1,"134":2,"135":3,"136":22,"137":1,"138":2,"139":1,"140":1,"141":4,"142":2,"143":1,"146":2,"147":2,"149":2,"151":1,"152":5,"153":4,"154":2,"155":1,"156":8,"158":8,"159":1,"160":1,"161":1,"164":1,"165":3,"166":4,"169":3,"170":9,"171":7,"172":2,"174":5,"175":2,"176":4,"177":2}}],["apart",{"2":{"145":1}}],["april",{"0":{"7":1}}],["appears",{"2":{"138":1}}],["append",{"2":{"34":1,"45":5,"51":1,"52":2,"54":2,"56":1,"57":5,"145":2}}],["approximately",{"2":{"45":1,"151":1}}],["approach",{"2":{"19":1}}],["appropriately",{"2":{"176":1}}],["appropriate",{"2":{"6":1,"166":2}}],["applies",{"2":{"134":2}}],["applied",{"2":{"6":3,"20":1,"131":1,"136":2,"140":2,"141":2,"142":1}}],["application",{"2":{"1":1,"6":3,"136":1,"139":1,"141":3,"142":1,"145":2,"150":1,"153":1}}],["apply`",{"2":{"136":1}}],["applys",{"2":{"37":1,"47":1}}],["applyreduce",{"0":{"19":1},"2":{"0":2,"1":1,"6":1,"17":1,"19":2,"29":1,"34":1,"37":1,"44":2,"47":1,"66":2,"129":3,"131":1,"136":39,"165":1}}],["apply",{"0":{"1":1,"18":1,"22":1,"29":1,"134":1},"1":{"19":1},"2":{"0":2,"1":4,"6":7,"17":1,"18":5,"20":1,"22":1,"24":1,"29":3,"129":5,"131":1,"133":1,"134":4,"135":1,"136":60,"141":4,"142":1,"146":3,"147":1,"149":1,"152":1,"153":1,"156":2,"161":3,"162":2,"165":1}}],["apis",{"2":{"17":1}}],["api",{"0":{"0":1,"40":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"6":3,"24":1,"40":1,"152":1,"156":1,"166":1}}],["snapped",{"2":{"128":1}}],["s3",{"2":{"45":3}}],["scratch",{"2":{"174":1}}],["sciences",{"2":{"171":1}}],["scalefactor",{"2":{"152":3}}],["scattered",{"2":{"176":1}}],["scatter",{"2":{"43":1,"65":2,"68":2,"71":2,"74":1,"85":1,"88":2,"102":2,"115":2,"176":1}}],["schema",{"2":{"136":6}}],["scheme",{"2":{"44":1}}],["scenario",{"2":{"97":2}}],["scene",{"2":{"14":1}}],["skipmissing",{"2":{"128":1}}],["skipped",{"2":{"128":1}}],["skip",{"2":{"37":1,"97":14,"128":1,"160":4}}],["skygering",{"2":{"7":1}}],["square",{"2":{"66":1,"157":1,"158":1}}],["squared",{"2":{"6":2,"47":2,"66":12,"157":2,"158":7}}],["sqrt",{"2":{"34":2,"44":1,"66":3}}],["sgn",{"2":{"34":5}}],["smallest",{"2":{"34":2,"54":1,"58":1}}],["sᵢ₋₁",{"2":{"40":25}}],["sᵢ₊₁",{"2":{"6":2,"40":41}}],["sᵢ",{"2":{"6":4,"40":46}}],["src",{"2":{"6":2}}],["syntax",{"2":{"173":1}}],["symdifference",{"2":{"127":1}}],["sym10100477",{"2":{"97":1}}],["symbol=",{"2":{"83":1}}],["symbol",{"2":{"6":1,"166":2}}],["system",{"0":{"171":1,"172":1},"2":{"1":2,"147":2,"169":2,"171":1}}],["switches",{"2":{"54":1,"57":1}}],["switch",{"2":{"45":1,"57":1,"165":1}}],["switching",{"2":{"6":1,"47":1}}],["swap",{"2":{"6":1,"57":1,"66":2,"146":1}}],["swapped",{"2":{"3":1,"6":1,"72":1,"75":1,"83":1,"86":1,"100":1,"103":1}}],["swapping",{"2":{"1":1,"6":1,"136":1}}],["s2",{"2":{"6":4,"40":6,"45":3}}],["s1",{"2":{"6":3,"40":6,"45":3}}],["saving",{"0":{"174":1}}],["saved",{"2":{"69":1}}],["save",{"2":{"34":1,"169":1,"174":3}}],["samples",{"2":{"13":1}}],["sample",{"2":{"13":1}}],["same",{"2":{"3":2,"4":12,"6":23,"18":1,"34":3,"37":1,"45":15,"47":1,"50":1,"51":3,"53":1,"54":1,"56":1,"57":1,"62":1,"65":1,"68":2,"69":30,"97":2,"102":1,"103":8,"131":1,"134":1,"136":6,"137":1,"142":2,"144":1,"145":2,"151":1,"170":1,"171":1,"174":1}}],["says",{"2":{"62":1}}],["say",{"2":{"6":1,"40":1,"152":1}}],["span",{"2":{"176":1}}],["spatial",{"0":{"175":1},"1":{"176":1,"177":1,"178":1},"2":{"175":6,"176":3,"178":1}}],["spawn",{"2":{"136":5}}],["space",{"2":{"6":2,"25":1,"27":1,"34":1,"36":1,"97":1,"152":1,"153":1}}],["sp",{"2":{"97":2}}],["split",{"2":{"50":1}}],["specialized",{"2":{"25":1,"27":1,"63":1}}],["specify",{"2":{"6":1,"131":1,"136":1,"171":1,"172":1,"175":1}}],["specification",{"2":{"138":1,"141":1,"143":1,"144":1}}],["specifically",{"2":{"6":2,"40":3,"154":1,"175":1}}],["specific",{"2":{"45":1,"75":1,"89":1,"106":1,"116":1,"136":5}}],["specified",{"2":{"3":1,"6":2,"45":1,"52":2,"54":2,"57":2,"103":1,"134":1,"156":1}}],["slow",{"2":{"177":1}}],["slower",{"2":{"6":1,"166":2}}],["slope2",{"2":{"126":2}}],["slope1",{"2":{"126":2}}],["slidergrid",{"2":{"14":1}}],["sliders",{"2":{"14":3}}],["slightly",{"2":{"4":2,"6":2,"37":2}}],["suite",{"2":{"152":5,"156":13}}],["suggestion",{"2":{"148":1}}],["sun",{"2":{"97":1}}],["surrounds",{"2":{"97":1}}],["sure",{"2":{"9":1,"34":1,"45":2,"66":1,"103":1,"160":1}}],["suppose",{"2":{"177":1,"178":1}}],["support",{"2":{"41":1,"150":1,"178":1}}],["supports",{"2":{"39":1,"40":1,"58":1,"174":1,"178":2}}],["supported",{"2":{"23":1,"174":1}}],["supertype",{"2":{"6":1,"40":1}}],["sukumar",{"2":{"6":1,"40":1}}],["such",{"2":{"4":1,"6":1,"36":1,"49":1,"58":1,"134":1,"149":1}}],["sum=1",{"2":{"40":1}}],["sum",{"2":{"4":2,"6":3,"11":6,"36":1,"37":2,"38":2,"40":8,"47":1,"66":2,"126":5,"160":1,"167":4}}],["sublevel",{"2":{"177":1}}],["subsequent",{"2":{"170":1}}],["substituted",{"2":{"1":1,"6":1,"136":1}}],["subgeom1",{"2":{"136":2}}],["subgeom",{"2":{"136":3}}],["subject",{"2":{"45":1}}],["subtype",{"2":{"136":1}}],["subtypes",{"2":{"6":2,"40":2}}],["subtracted",{"2":{"126":1}}],["subtitle",{"2":{"13":1,"39":2,"152":1,"156":2}}],["sub",{"2":{"4":6,"6":7,"34":1,"37":3,"47":1,"52":6,"54":3,"57":4,"66":2,"81":2,"82":2,"95":2,"96":2,"112":2,"113":2,"122":2,"123":2,"136":3,"143":4,"144":2,"145":4}}],["series",{"2":{"170":1}}],["serve",{"2":{"6":1,"40":1}}],["searchsortedfirst",{"2":{"158":1}}],["seg2",{"2":{"126":2}}],["seg1",{"2":{"126":3}}],["seg",{"2":{"97":23,"103":9}}],["segmentation",{"2":{"151":1}}],["segments",{"2":{"23":1,"31":1,"33":2,"34":1,"43":1,"44":2,"45":3,"47":1,"54":6,"97":18,"152":1,"153":3}}],["segmentization",{"2":{"150":1}}],["segmentizing",{"2":{"6":3,"151":1,"152":2,"153":1}}],["segmentized",{"2":{"151":1}}],["segmentizes",{"2":{"150":1}}],["segmentizemethod",{"2":{"6":1,"152":3,"153":2}}],["segmentize",{"0":{"150":1},"1":{"151":1,"152":1,"153":1},"2":{"0":1,"6":4,"31":1,"41":1,"129":1,"150":1,"151":5,"152":11,"153":13,"168":1}}],["segment",{"2":{"4":4,"6":7,"34":1,"44":5,"45":6,"47":3,"49":1,"54":17,"66":2,"83":3,"97":43,"103":3,"126":2,"150":1,"152":2,"153":1}}],["seperate",{"2":{"54":1}}],["separates",{"2":{"97":1}}],["separate",{"2":{"45":1,"128":1,"136":1,"165":1,"174":1,"176":1}}],["separately",{"2":{"40":1,"128":1}}],["sense",{"2":{"37":1,"66":1}}],["several",{"2":{"20":2,"37":1,"137":1,"145":1}}],["section",{"2":{"26":1,"97":3,"102":1}}],["sections",{"2":{"10":1,"26":1}}],["seconds=1",{"2":{"152":3,"156":8}}],["secondisleft",{"2":{"128":4}}],["secondisstraight",{"2":{"128":7}}],["secondary",{"2":{"3":3,"6":3,"72":1,"75":1,"116":1}}],["second",{"2":{"3":8,"6":9,"45":1,"54":4,"69":1,"71":2,"72":1,"74":1,"75":1,"78":1,"79":1,"80":1,"86":2,"89":2,"97":2,"106":1,"115":1,"116":1,"119":1,"120":1,"121":2,"158":1,"172":1,"175":1}}],["self",{"2":{"9":2}}],["selected",{"2":{"128":1}}],["selectednode",{"2":{"128":3}}],["selection",{"2":{"14":1}}],["select",{"2":{"6":1,"164":1}}],["seem",{"2":{"25":1,"27":1}}],["see",{"2":{"6":4,"7":1,"29":1,"43":1,"63":1,"66":1,"68":1,"71":1,"74":1,"88":1,"97":5,"99":1,"102":1,"105":1,"115":1,"128":2,"138":1,"139":1,"141":1,"142":3,"144":1,"145":2,"151":2,"158":1,"176":2}}],["setup=",{"2":{"75":1,"89":1,"106":1,"116":1}}],["sets",{"2":{"45":1,"62":1}}],["setting",{"2":{"23":1}}],["set",{"0":{"23":1},"2":{"3":2,"4":7,"6":19,"23":1,"34":1,"38":2,"40":8,"45":3,"51":2,"53":2,"54":7,"56":2,"58":2,"68":2,"69":10,"75":1,"83":1,"89":1,"97":2,"103":1,"106":1,"116":1,"126":1,"128":1,"142":2,"145":2,"158":2,"170":1,"174":1,"176":3}}],["sve",{"2":{"1":1,"6":1,"161":1}}],["svector",{"2":{"1":14,"6":14,"45":5,"51":1,"54":2,"57":6,"97":1,"128":1,"161":13,"170":6,"172":4}}],["solution",{"2":{"97":1}}],["solid",{"2":{"6":2}}],["south",{"2":{"47":7}}],["source",{"2":{"1":10,"3":19,"4":22,"5":3,"6":91,"26":4,"83":2,"131":3,"141":1,"142":4,"147":3,"171":13,"172":1}}],["sort",{"2":{"45":4,"50":2,"54":2,"56":2,"97":1,"103":2,"128":1,"158":1}}],["sorted",{"2":{"20":1,"45":1,"158":7,"175":1}}],["someone",{"2":{"63":1,"166":1}}],["something",{"0":{"55":1},"2":{"10":1}}],["some",{"2":{"3":1,"6":3,"9":1,"17":1,"40":4,"69":1,"97":3,"103":1,"127":1,"128":1,"129":2,"134":2,"136":2,"140":1,"141":2,"142":1,"160":1,"163":2,"169":2,"175":1,"178":1}}],["so",{"2":{"1":1,"4":4,"6":10,"9":1,"17":1,"19":1,"25":1,"27":1,"31":1,"39":1,"40":1,"45":1,"46":1,"54":1,"56":2,"57":2,"65":1,"66":1,"68":1,"69":4,"71":1,"88":1,"97":2,"99":1,"115":1,"128":3,"131":1,"136":6,"150":1,"151":1,"152":3,"153":1,"160":1,"161":1,"166":2,"171":1,"172":1}}],["step",{"2":{"45":7,"51":1,"52":3,"53":1,"54":3,"56":1,"57":3,"128":6,"167":1}}],["storing",{"2":{"174":1}}],["stored",{"2":{"45":2,"176":1}}],["stores",{"2":{"45":1}}],["store",{"2":{"40":1,"174":1}}],["stopping",{"2":{"158":2}}],["stops",{"2":{"134":1}}],["stop",{"2":{"18":2,"83":3,"97":4,"103":3}}],["style",{"2":{"6":2}}],["style=",{"2":{"6":2}}],["stay",{"2":{"57":1}}],["stackoverflow",{"2":{"54":1}}],["stack",{"2":{"50":1}}],["states",{"2":{"156":1}}],["state",{"2":{"56":1,"177":9}}],["status",{"2":{"45":31,"52":4,"54":5,"57":4,"128":1}}],["static",{"2":{"165":1}}],["staticarray",{"2":{"40":1}}],["staticarrays",{"2":{"31":1,"45":5,"51":1,"54":2,"57":6,"97":1,"128":1,"161":2}}],["staticarraysco",{"2":{"1":1,"6":1,"161":1}}],["staticarrayscore",{"2":{"1":10,"6":10,"40":1,"161":10,"170":6,"172":4}}],["statica",{"2":{"1":1,"6":1,"161":1}}],["statistics",{"2":{"13":2,"31":1}}],["stability",{"2":{"23":1,"30":1}}],["stable",{"2":{"13":1,"24":1,"153":1}}],["stage",{"2":{"7":1}}],["standardized",{"2":{"97":1}}],["standards",{"2":{"97":1}}],["standard",{"2":{"6":1,"63":1}}],["started",{"2":{"45":1}}],["starting",{"2":{"44":2,"45":1,"47":1,"54":1,"145":4}}],["startvalue",{"2":{"14":4}}],["start",{"2":{"6":1,"18":1,"34":7,"40":1,"45":76,"47":17,"52":4,"54":4,"57":5,"69":1,"83":4,"97":44,"103":3,"118":1,"128":2,"137":1,"158":16,"170":1}}],["straightline",{"2":{"128":3}}],["straight",{"2":{"128":6}}],["strait",{"2":{"128":1}}],["structs",{"2":{"20":1,"141":1}}],["structures",{"2":{"129":1}}],["structure",{"2":{"6":2,"131":1,"136":1,"146":1}}],["struct",{"2":{"6":3,"40":2,"45":2,"63":1,"139":1,"145":2,"152":2,"157":1,"158":1,"159":1,"164":3,"165":2,"166":4}}],["strings",{"2":{"6":1,"44":1,"54":1}}],["string",{"2":{"1":2,"14":1,"43":1,"44":1,"147":2}}],["still",{"2":{"0":1,"37":1,"44":1,"45":3,"74":1,"158":1}}],["shp",{"2":{"174":1}}],["ships",{"2":{"171":1}}],["shifting",{"2":{"172":1}}],["shift",{"2":{"170":3}}],["shewchuck",{"2":{"7":1}}],["short",{"2":{"136":1}}],["shorthand",{"2":{"63":1}}],["show",{"2":{"9":1,"11":1,"13":1,"14":1,"39":1,"171":1,"174":1,"175":2}}],["shoelace",{"2":{"4":1,"6":1,"37":2,"47":1}}],["shouldn",{"2":{"54":1}}],["should",{"2":{"1":1,"4":1,"6":14,"17":1,"18":1,"20":2,"25":1,"27":1,"34":3,"37":1,"44":1,"45":3,"46":1,"69":1,"97":4,"128":2,"131":1,"136":2,"138":1,"141":4,"142":2,"153":1,"156":2,"165":1}}],["sharing",{"2":{"88":1}}],["shares",{"2":{"54":1}}],["share",{"2":{"4":7,"6":8,"68":2,"69":8,"92":2,"93":1,"94":1,"103":1,"111":1}}],["shared",{"0":{"160":1},"2":{"3":1,"6":1,"45":2,"54":2,"103":3}}],["shapes",{"2":{"66":1,"174":7}}],["shape",{"2":{"43":1,"52":1,"54":1,"68":1,"144":1,"170":1}}],["shaped",{"2":{"39":1}}],["shapefiles",{"2":{"174":1}}],["shapefile",{"2":{"29":1,"174":4}}],["shallower",{"2":{"1":1,"6":1,"136":1}}],["sites",{"2":{"177":1}}],["sides",{"2":{"45":3,"138":1}}],["side",{"2":{"34":4,"45":26}}],["signals",{"2":{"135":1}}],["sign",{"2":{"13":2,"14":2,"34":7,"37":2,"126":3}}],["signed",{"0":{"35":1,"36":1,"64":1,"65":1},"1":{"36":1,"37":1,"65":1,"66":1},"2":{"0":4,"4":15,"6":18,"11":3,"35":1,"36":5,"37":23,"47":3,"64":1,"65":7,"66":19}}],["six",{"2":{"6":1,"156":1}}],["size=",{"2":{"171":1}}],["sizehint",{"2":{"45":2,"52":1,"153":1}}],["size",{"2":{"6":4,"13":2,"14":5,"39":1,"57":1,"128":2,"136":4,"156":1}}],["sin",{"2":{"170":3,"171":1,"172":2}}],["singed",{"2":{"66":1}}],["singular",{"2":{"54":1}}],["singlepoly",{"2":{"156":6}}],["single",{"2":{"4":6,"6":10,"23":1,"34":2,"37":1,"47":1,"69":5,"102":2,"128":2,"142":2,"143":1,"145":2,"170":3,"174":1}}],["since",{"2":{"1":1,"6":2,"26":1,"34":1,"37":1,"44":1,"47":2,"56":1,"66":1,"69":1,"97":1,"103":2,"110":1,"147":1,"165":1,"166":2,"177":1}}],["simulation",{"2":{"23":1}}],["simultaneously",{"2":{"20":1}}],["simply",{"2":{"7":1,"36":1,"41":1,"45":1,"54":1,"57":1,"72":1,"86":1,"100":1,"128":1,"140":1,"147":1,"148":1,"152":1,"170":1,"173":1}}],["simpler",{"2":{"6":1,"128":1}}],["simple",{"0":{"60":1,"176":1},"2":{"6":3,"40":1,"63":1,"129":3,"146":1,"147":1,"155":2,"156":2,"165":1}}],["simplifier",{"2":{"156":4}}],["simplified",{"2":{"23":1,"155":1}}],["simplifies",{"2":{"6":3,"157":1,"158":1,"159":1}}],["simplification",{"0":{"154":1},"1":{"155":1,"156":1},"2":{"6":2,"154":2,"156":3}}],["simplifying",{"2":{"154":1}}],["simplify",{"0":{"157":1,"158":1,"159":1},"2":{"0":1,"6":15,"9":1,"31":1,"45":1,"129":1,"155":1,"156":41,"157":1,"158":2,"159":1}}],["simplifyalgs",{"2":{"160":1}}],["simplifyalg",{"2":{"0":1,"6":8,"156":5,"157":2,"158":2,"159":2}}],["similarly",{"2":{"129":1}}],["similar",{"2":{"1":1,"6":4,"18":1,"25":1,"27":1,"29":1,"41":1,"58":1,"63":1,"128":2,"136":1,"152":2,"153":1,"162":1}}],["s",{"0":{"30":1},"2":{"0":1,"3":1,"6":10,"7":1,"9":1,"18":1,"19":1,"29":1,"34":1,"36":1,"37":4,"38":1,"39":2,"40":5,"43":3,"44":3,"45":3,"47":1,"49":1,"52":1,"54":2,"57":3,"62":1,"66":1,"69":1,"85":2,"91":3,"92":4,"93":2,"97":9,"103":1,"105":1,"106":1,"111":1,"128":5,"129":2,"131":3,"132":1,"136":1,"139":1,"142":4,"143":1,"145":3,"151":4,"152":1,"154":1,"156":2,"160":4,"164":2,"165":1,"166":6,"170":6,"171":4,"172":4,"173":2,"174":5,"178":2}}],["fn",{"2":{"174":8}}],["f5fpn",{"2":{"171":1}}],["fc",{"2":{"136":22,"156":3,"167":14}}],["fj",{"2":{"128":2}}],["f2",{"2":{"45":2}}],["f1",{"2":{"45":2}}],["f64",{"2":{"13":2,"14":2}}],["few",{"2":{"138":1}}],["fetch",{"2":{"136":2}}],["fetched",{"2":{"128":1}}],["feb",{"0":{"8":1},"1":{"9":1,"10":1}}],["featurecollection",{"2":{"6":2,"11":1,"18":1,"128":4,"136":7,"171":2}}],["featurecollectiontrait",{"2":{"1":1,"6":2,"131":1,"134":1,"136":14,"167":5}}],["features",{"0":{"76":1,"90":1,"107":1,"117":1},"2":{"1":1,"6":3,"11":1,"22":1,"63":1,"128":3,"135":1,"136":19,"171":1}}],["featuretrait",{"2":{"1":2,"6":3,"76":4,"83":2,"90":4,"107":4,"117":4,"131":1,"134":3,"136":15,"167":5}}],["feature",{"2":{"1":6,"4":1,"6":10,"18":2,"22":1,"37":1,"47":1,"128":2,"129":1,"135":1,"136":49,"156":2,"167":2,"174":1}}],["fra",{"2":{"177":2}}],["frame",{"2":{"173":1}}],["framework",{"2":{"129":4}}],["fracs",{"2":{"45":20,"50":1}}],["frac",{"2":{"40":1,"45":2,"54":17,"156":2}}],["fractional",{"2":{"45":1,"54":3}}],["fractions",{"2":{"45":1,"54":4}}],["fraction",{"2":{"6":4,"54":2,"66":1,"156":1}}],["front",{"2":{"34":1}}],["from",{"2":{"1":3,"3":4,"4":16,"6":29,"7":1,"11":1,"20":1,"22":1,"26":1,"31":1,"37":2,"39":1,"40":4,"41":1,"44":1,"45":6,"47":11,"50":1,"51":1,"52":3,"53":1,"54":11,"56":1,"57":6,"63":1,"66":25,"89":2,"91":5,"92":4,"93":2,"94":1,"95":2,"97":6,"103":2,"126":2,"128":7,"131":3,"136":3,"145":1,"147":4,"150":1,"156":1,"157":1,"158":3,"159":1,"167":1,"169":1,"171":5,"174":1,"175":1,"176":1,"178":1}}],["footprint",{"2":{"172":1}}],["foldable",{"2":{"136":3}}],["follows",{"2":{"45":2,"75":1,"89":1,"106":1,"116":1,"128":1}}],["followed",{"2":{"26":1}}],["following",{"2":{"6":1,"40":1,"49":1,"138":1,"144":1,"156":1,"175":1}}],["focusing",{"2":{"25":1,"27":1}}],["foundational",{"2":{"17":1}}],["found",{"2":{"6":8,"26":1,"47":1,"50":1,"51":2,"53":2,"54":1,"56":2,"69":1,"128":5,"134":3,"136":7,"153":1}}],["forward",{"2":{"54":1}}],["forwards",{"2":{"45":1,"52":1,"57":1}}],["formats",{"2":{"169":1,"172":1,"174":3}}],["format",{"2":{"50":1,"174":3}}],["form",{"2":{"18":1,"45":3,"54":8,"57":3,"136":1}}],["formed",{"2":{"4":2,"6":3,"33":1,"34":4,"40":1,"45":8,"56":1,"57":1,"158":1}}],["formula",{"2":{"4":1,"6":1,"37":2,"47":1}}],["force",{"2":{"1":1,"136":2,"147":1,"156":1}}],["for",{"0":{"52":1,"54":1,"57":1},"2":{"0":2,"1":3,"3":1,"4":4,"5":3,"6":46,"7":4,"9":2,"13":5,"14":1,"18":1,"20":1,"22":1,"23":5,"25":3,"26":1,"27":3,"29":1,"31":2,"34":5,"37":8,"38":1,"39":1,"40":19,"41":3,"44":7,"45":35,"47":11,"50":5,"51":2,"52":3,"53":1,"54":7,"56":1,"57":9,"58":2,"61":1,"63":3,"65":2,"66":7,"69":13,"75":3,"81":1,"82":1,"83":6,"85":1,"89":2,"95":1,"96":1,"97":22,"102":1,"103":11,"106":2,"112":1,"113":1,"116":3,"122":1,"123":1,"125":1,"126":5,"127":1,"128":13,"129":3,"131":6,"132":2,"136":6,"137":3,"138":2,"140":1,"141":5,"143":3,"144":1,"145":5,"147":3,"149":1,"150":4,"151":7,"152":6,"153":8,"154":4,"156":12,"157":2,"158":2,"159":1,"160":6,"164":1,"165":2,"166":5,"167":7,"169":1,"171":4,"172":1,"174":3,"175":1,"177":2,"178":1}}],["fi",{"2":{"128":2}}],["fine",{"2":{"151":1}}],["final",{"2":{"57":1,"141":4,"152":1}}],["finally",{"2":{"39":2,"54":1,"128":1,"136":3,"174":1}}],["findmin",{"2":{"160":1}}],["findmax",{"2":{"156":1,"158":1}}],["findall",{"2":{"141":1}}],["finding",{"2":{"54":1}}],["findfirst",{"2":{"45":6,"50":2,"61":1,"156":1}}],["findnext",{"2":{"45":3}}],["findlast",{"2":{"45":2}}],["findprev",{"2":{"45":2}}],["finds",{"2":{"45":1,"47":1}}],["find",{"2":{"34":6,"37":1,"45":12,"47":3,"50":2,"51":4,"53":2,"54":8,"56":1,"66":3,"69":1,"97":7,"128":2,"158":5,"177":1}}],["finish",{"2":{"9":1}}],["fill",{"2":{"45":1,"128":1,"153":3}}],["filled",{"2":{"45":5,"47":3,"65":1,"66":2,"97":16}}],["files",{"2":{"163":1,"174":2}}],["file",{"2":{"26":1,"45":1,"75":3,"89":3,"106":3,"116":3,"127":1,"128":1,"129":1,"140":1,"147":1,"153":1,"154":1,"163":2,"169":1,"174":2}}],["filters",{"2":{"45":1}}],["filtering",{"2":{"6":1,"156":1}}],["filter",{"2":{"4":1,"6":2,"45":2,"136":3,"145":2,"149":1,"156":1}}],["fit",{"2":{"17":1}}],["field",{"2":{"13":2,"45":2}}],["figure",{"2":{"13":1,"14":1,"36":1,"39":2,"62":1,"171":3}}],["fig",{"2":{"13":6,"14":6,"62":5,"168":2,"170":7,"171":4}}],["fix1",{"2":{"136":2,"153":1}}],["fixme",{"2":{"126":1}}],["fix2",{"2":{"45":2}}],["fixed",{"2":{"6":3,"51":1,"53":1,"56":1}}],["fix",{"0":{"20":1},"2":{"6":9,"9":3,"15":3,"17":1,"20":1,"51":1,"52":11,"53":1,"54":11,"56":1,"57":10,"62":2,"138":1,"140":1,"141":1,"144":1}}],["firstisright",{"2":{"128":2}}],["firstisleft",{"2":{"128":4}}],["firstisstraight",{"2":{"128":4}}],["firstnode",{"2":{"128":9}}],["first",{"2":{"3":9,"6":10,"34":14,"37":7,"39":1,"40":9,"41":1,"44":1,"45":17,"47":2,"50":1,"51":2,"53":1,"54":5,"56":3,"66":8,"69":4,"71":2,"72":2,"74":1,"75":2,"78":1,"79":1,"80":1,"86":2,"89":3,"97":22,"103":1,"106":2,"108":1,"115":1,"116":2,"119":1,"120":1,"121":2,"126":1,"128":16,"136":6,"138":1,"153":3,"157":1,"158":2,"167":2,"169":1,"170":1,"171":1,"172":1,"175":1,"176":1}}],["fancy",{"2":{"170":1}}],["fancis",{"2":{"6":1,"40":1}}],["fair",{"2":{"151":1}}],["fail",{"2":{"1":1,"6":2,"136":6,"152":1}}],["fallback",{"2":{"136":1}}],["falses",{"2":{"45":2,"50":1,"51":1,"53":1}}],["false",{"0":{"24":1},"2":{"1":29,"3":7,"4":3,"6":55,"34":2,"37":1,"39":5,"45":26,"47":5,"50":1,"51":1,"52":3,"54":1,"56":4,"66":2,"68":2,"69":27,"71":2,"75":8,"77":2,"78":4,"79":1,"80":1,"81":1,"82":1,"83":11,"85":2,"89":9,"91":1,"92":4,"95":1,"96":1,"97":39,"103":22,"106":8,"108":3,"109":4,"110":1,"112":1,"113":1,"115":1,"116":7,"118":2,"119":4,"120":1,"121":1,"122":1,"123":1,"126":10,"128":5,"136":20,"138":16,"144":44,"145":4,"153":2,"156":1,"160":2,"161":20,"165":2,"167":2,"170":242,"171":12,"172":18,"175":1}}],["fashion",{"2":{"36":1}}],["faster",{"2":{"40":1,"136":1}}],["fast",{"2":{"12":1}}],["f",{"2":{"1":12,"6":25,"15":1,"18":3,"19":1,"22":2,"33":1,"36":2,"39":4,"41":1,"43":2,"45":19,"46":2,"49":2,"51":2,"52":2,"53":2,"54":2,"56":2,"57":2,"60":2,"61":2,"65":5,"68":2,"71":2,"74":2,"85":2,"88":2,"97":7,"99":2,"102":2,"105":2,"115":2,"128":30,"131":2,"134":2,"136":172,"148":1,"151":2,"152":1,"155":2,"156":1,"160":6,"161":6,"166":5,"167":16,"170":6,"172":2,"176":3}}],["fulfilled",{"2":{"158":1}}],["fully",{"2":{"6":1,"45":4,"50":1,"103":4}}],["full",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"47":5,"141":1,"177":4}}],["furthest",{"2":{"128":1}}],["further",{"2":{"43":1,"136":1}}],["furthermore",{"2":{"3":2,"6":5,"45":1,"51":1,"53":1,"56":1,"75":1,"116":1}}],["fun",{"2":{"170":1}}],["fundamental",{"2":{"26":1,"163":1}}],["func",{"2":{"13":5}}],["funcs",{"2":{"13":2,"14":3}}],["functionality",{"2":{"54":1,"129":1,"146":1,"147":1,"153":1,"166":1}}],["functionalities",{"2":{"45":1}}],["functionally",{"2":{"1":1,"6":1,"18":1,"29":1,"136":1}}],["function",{"2":{"1":8,"3":9,"4":9,"5":3,"6":14,"7":2,"9":1,"13":3,"14":2,"18":2,"29":1,"31":1,"34":5,"37":3,"40":13,"44":6,"45":18,"47":7,"49":2,"50":4,"51":3,"52":3,"53":2,"54":7,"55":1,"56":2,"57":4,"63":2,"66":6,"68":1,"69":8,"71":1,"74":1,"75":1,"81":1,"82":1,"83":5,"85":1,"88":1,"89":1,"95":1,"96":1,"97":9,"99":1,"102":1,"103":7,"105":1,"106":1,"112":1,"113":1,"115":1,"116":1,"122":1,"123":1,"126":4,"127":3,"128":16,"131":3,"134":2,"136":30,"139":2,"141":7,"142":2,"145":2,"146":2,"147":1,"150":2,"152":2,"153":7,"156":3,"157":2,"158":3,"159":2,"160":7,"161":3,"162":1,"166":6,"167":12,"170":1,"175":1,"178":4}}],["functions",{"0":{"1":1,"52":1,"54":1,"57":1,"129":1,"131":1,"167":1},"1":{"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1},"2":{"6":1,"9":3,"17":1,"26":1,"29":1,"37":1,"40":1,"44":1,"45":2,"47":1,"49":1,"97":1,"127":1,"129":2,"134":1,"141":2,"142":1}}],["future",{"2":{"23":1,"58":1,"66":1,"150":2}}],["flexijoins",{"2":{"175":1,"176":3,"177":1,"178":5}}],["flags",{"2":{"45":5}}],["flag",{"2":{"45":12,"50":1}}],["flat",{"2":{"6":1,"160":2,"167":1}}],["flattened",{"2":{"18":1}}],["flattening",{"2":{"6":4,"152":2}}],["flatten",{"2":{"0":2,"6":4,"11":3,"13":1,"18":1,"40":1,"45":2,"47":3,"53":1,"57":1,"63":2,"83":1,"131":4,"136":27,"145":1}}],["floating",{"2":{"6":1,"45":1,"54":5,"128":2}}],["float",{"2":{"6":3,"51":1,"53":1,"56":1}}],["float64x2",{"2":{"13":6,"14":6,"15":2}}],["float64",{"2":{"1":6,"4":10,"6":30,"13":1,"33":1,"34":3,"37":6,"44":1,"47":4,"50":2,"51":2,"53":1,"54":3,"56":1,"62":1,"66":12,"97":4,"103":2,"126":4,"138":6,"144":26,"151":2,"152":2,"153":1,"157":4,"158":9,"159":2,"160":6,"161":6,"162":1,"167":8,"170":190,"171":7,"172":10}}],["flipping",{"0":{"146":1},"2":{"146":1}}],["flipped",{"2":{"1":2,"6":2,"136":2}}],["flipaxis",{"2":{"39":1}}],["flip",{"2":{"0":1,"6":1,"31":1,"129":2,"136":1,"146":2}}],["wgs84",{"2":{"171":1}}],["wglmakie",{"2":{"14":1}}],["wₜₒₜ",{"2":{"40":8}}],["wᵢ",{"2":{"40":18}}],["wt",{"2":{"40":3}}],["w",{"2":{"13":13,"14":7,"66":4,"128":1}}],["wrong",{"2":{"143":1,"160":1}}],["writing",{"2":{"174":1}}],["written",{"2":{"69":1}}],["write",{"2":{"7":1,"30":1,"128":1,"174":7}}],["wrap",{"2":{"4":1,"6":1,"149":1,"152":1}}],["wrapped",{"2":{"22":1,"128":2,"134":1,"136":1}}],["wrapper",{"0":{"30":1},"2":{"30":1,"34":1,"37":1,"44":1,"47":1,"66":1,"69":1,"75":1,"89":1,"103":1,"106":1,"116":1}}],["wrappers`",{"2":{"136":1}}],["wrappers",{"2":{"1":10,"6":12,"22":1,"126":2,"128":1,"131":1,"138":8,"139":1,"144":22,"151":1,"152":1,"156":1,"161":10,"167":1,"170":121,"171":5,"172":9}}],["wrappergeometry`",{"2":{"147":1}}],["wrappergeometry",{"2":{"1":1}}],["wrapping",{"2":{"1":1,"6":1,"69":1,"147":1,"162":1}}],["web",{"2":{"174":1}}],["west",{"2":{"47":8}}],["were",{"2":{"45":1,"128":1,"176":1}}],["welcome",{"2":{"25":1,"27":1}}],["well",{"2":{"17":1,"45":1,"47":1,"63":1,"150":1,"154":1,"165":1}}],["we",{"0":{"55":2},"2":{"7":1,"11":1,"13":1,"17":3,"19":1,"23":3,"24":1,"25":2,"26":1,"27":2,"34":1,"36":2,"37":2,"39":4,"40":8,"41":2,"44":1,"45":7,"47":4,"52":8,"53":2,"54":3,"57":1,"58":1,"62":3,"63":2,"66":1,"68":1,"69":5,"71":1,"72":1,"74":1,"75":1,"86":1,"88":1,"89":1,"97":2,"99":3,"100":1,"102":1,"103":2,"105":1,"106":1,"115":1,"116":1,"127":1,"128":21,"134":1,"136":21,"137":1,"148":1,"150":2,"151":2,"152":3,"153":1,"156":5,"160":2,"163":1,"165":4,"166":1,"169":2,"170":4,"171":6,"172":4,"173":1,"174":3,"175":3,"176":7}}],["weighting",{"2":{"43":2,"44":1}}],["weights",{"2":{"38":4}}],["weight",{"2":{"6":5,"40":14,"44":1}}],["weighted",{"2":{"0":1,"6":2,"38":3,"40":4,"44":4}}],["walk",{"2":{"50":1}}],["wall2",{"2":{"47":7}}],["wall1",{"2":{"47":12}}],["walls",{"2":{"47":3}}],["wall",{"2":{"47":69}}],["wachspress",{"2":{"40":1}}],["wasincreasing",{"2":{"128":10}}],["wasn",{"2":{"45":1}}],["was",{"2":{"31":1,"34":1,"37":1,"39":1,"40":4,"41":1,"44":1,"45":1,"47":1,"50":1,"51":1,"52":3,"53":1,"54":2,"55":1,"56":1,"57":3,"63":1,"66":1,"69":1,"72":1,"82":1,"83":1,"86":1,"96":1,"97":1,"100":1,"103":1,"113":1,"123":1,"126":1,"127":1,"128":1,"134":1,"136":1,"139":1,"142":1,"145":1,"146":1,"148":1,"149":1,"151":1,"153":1,"160":1,"161":1,"162":1,"166":2,"167":1}}],["wanted",{"2":{"178":1}}],["wants",{"2":{"63":1,"136":1}}],["want",{"0":{"23":1,"55":1},"2":{"13":1,"18":1,"23":1,"40":1,"45":1,"126":1,"171":2,"173":1,"177":1,"178":1}}],["ways",{"2":{"143":1}}],["way",{"2":{"6":1,"17":1,"18":1,"24":1,"29":1,"38":1,"129":1,"140":1,"153":1,"164":1,"166":2,"173":1}}],["warn",{"2":{"128":2}}],["warned",{"2":{"6":1,"166":1}}],["warning",{"2":{"0":1,"5":1,"6":3,"24":1,"40":1,"63":1,"136":1,"152":1,"163":1,"177":1}}],["wong",{"2":{"60":1,"61":1,"168":1}}],["won",{"2":{"23":1,"45":1,"136":1}}],["wouldn",{"2":{"54":1}}],["would",{"0":{"55":1},"2":{"6":3,"23":1,"51":1,"53":1,"54":1,"56":1,"63":4,"128":1,"165":2,"171":1,"177":1,"178":1}}],["wound",{"2":{"6":1,"63":1}}],["world",{"0":{"177":1},"2":{"175":1}}],["worrying",{"2":{"24":1}}],["words",{"2":{"3":1,"6":1,"71":1,"99":1,"105":1,"106":1}}],["workflow",{"2":{"83":1,"103":1}}],["workflows",{"2":{"23":1,"25":1,"27":1}}],["works",{"2":{"26":1,"147":1,"150":1}}],["working",{"2":{"3":1,"6":1,"83":1,"171":1}}],["work",{"2":{"1":3,"6":3,"9":1,"34":1,"37":2,"44":1,"47":2,"50":2,"58":1,"66":1,"69":1,"97":1,"103":1,"126":1,"136":2,"147":1,"161":1,"177":1}}],["whole",{"2":{"97":1}}],["whose",{"2":{"3":1,"6":1,"83":1}}],["white",{"2":{"39":1}}],["while",{"2":{"34":1,"43":1,"44":1,"45":5,"54":2,"62":2,"65":1,"69":1,"83":1,"97":1,"128":3,"145":1,"158":1,"160":2,"176":1}}],["whichever",{"2":{"6":1,"156":1}}],["which",{"2":{"1":1,"4":2,"5":1,"6":8,"7":1,"11":1,"13":1,"14":1,"17":1,"18":4,"20":1,"23":2,"36":1,"37":1,"38":1,"39":2,"40":5,"41":1,"45":11,"47":2,"54":2,"58":1,"63":1,"69":2,"97":3,"127":1,"128":3,"129":1,"136":1,"137":2,"138":1,"141":1,"143":1,"144":1,"148":1,"150":1,"151":1,"152":3,"153":2,"156":1,"158":2,"161":1,"164":1,"166":4,"174":3,"175":3,"176":6,"178":1}}],["what",{"0":{"22":1,"25":1,"30":1,"33":1,"36":2,"43":1,"46":1,"49":1,"65":2,"68":1,"71":1,"74":1,"85":1,"88":1,"99":1,"102":1,"105":1,"115":1,"134":1},"2":{"13":1,"14":1,"24":1,"43":1,"126":1,"128":1,"151":1,"165":1,"171":1,"177":1}}],["whatever",{"2":{"1":1,"6":1,"22":1,"136":1}}],["whyatt",{"2":{"154":1}}],["why",{"0":{"22":1,"23":1},"2":{"9":1,"17":1,"30":1,"37":1}}],["wheel",{"2":{"17":1}}],["whether",{"2":{"1":4,"4":1,"6":10,"125":1,"126":1,"133":2,"137":1}}],["when",{"2":{"1":1,"4":2,"5":1,"6":5,"18":1,"20":1,"23":2,"24":1,"37":1,"40":3,"44":1,"45":2,"52":5,"54":6,"57":7,"97":1,"128":1,"134":3,"136":1,"138":1,"141":1,"149":2,"156":1,"171":1,"172":2,"174":1,"178":1}}],["wherever",{"2":{"6":1,"162":1}}],["where",{"2":{"1":2,"4":5,"6":11,"20":1,"31":2,"34":8,"37":12,"38":2,"40":24,"44":8,"45":14,"47":8,"50":5,"51":2,"52":5,"53":3,"54":18,"56":2,"57":9,"66":25,"69":1,"97":9,"128":3,"136":53,"143":1,"147":1,"151":1,"162":1,"163":1,"164":5,"167":3,"170":4}}],["widely",{"2":{"174":1}}],["widths",{"2":{"14":1}}],["width",{"2":{"6":2}}],["wiki",{"2":{"97":1,"158":1}}],["wikipedia",{"2":{"97":1,"158":2}}],["wind",{"2":{"4":1,"6":2,"37":1,"69":1}}],["winding",{"0":{"62":1},"2":{"4":2,"6":3,"37":3,"45":7,"62":4,"63":1,"69":1,"128":1}}],["without",{"2":{"1":2,"6":1,"17":1,"24":1,"45":1,"88":1,"103":1,"136":3,"147":1,"161":1}}],["with",{"0":{"52":1,"54":1,"57":1,"157":1,"158":1,"159":1,"172":1,"173":1},"2":{"1":5,"3":5,"4":7,"6":27,"11":1,"20":1,"22":2,"23":1,"33":1,"34":2,"37":7,"38":4,"39":1,"40":2,"44":1,"45":14,"47":6,"52":8,"53":5,"54":15,"56":1,"57":12,"65":1,"66":2,"75":1,"88":1,"92":1,"97":28,"99":1,"102":2,"103":5,"105":1,"106":1,"109":3,"110":2,"111":2,"121":1,"128":7,"129":1,"131":2,"134":1,"136":17,"138":1,"143":1,"147":1,"149":1,"150":1,"153":2,"156":2,"158":2,"159":1,"161":1,"165":1,"166":1,"169":1,"170":4,"171":6,"172":2,"173":2,"174":2,"175":1,"176":1,"177":1}}],["within",{"0":{"114":1,"115":1,"118":1,"119":1,"121":1,"122":1,"123":1},"1":{"115":1,"116":1},"2":{"0":2,"3":9,"4":3,"5":1,"6":13,"7":1,"9":1,"31":1,"34":2,"37":1,"38":3,"40":1,"44":1,"45":9,"46":2,"47":5,"52":1,"54":2,"56":1,"57":6,"65":1,"66":5,"71":2,"72":3,"74":2,"91":1,"97":9,"102":1,"103":9,"114":1,"115":6,"116":11,"117":6,"118":14,"119":15,"120":15,"121":7,"122":4,"123":4,"129":1,"175":1,"176":4,"177":2}}],["will",{"2":{"1":8,"4":7,"5":1,"6":44,"11":1,"18":3,"23":2,"24":1,"34":4,"37":3,"40":2,"44":1,"45":5,"47":1,"50":1,"51":4,"52":4,"53":4,"54":4,"56":4,"57":4,"63":1,"65":2,"66":4,"69":1,"83":1,"126":1,"128":2,"131":2,"134":1,"135":2,"136":8,"138":1,"142":2,"143":1,"145":2,"147":3,"150":2,"152":3,"156":2,"158":1,"160":1,"161":2,"166":1,"171":1,"174":1,"175":2,"177":1,"178":1}}],["wip",{"2":{"0":1}}]],"serializationVersion":2}';export{e as default}; diff --git a/dev/assets/chunks/@localSearchIndexroot.DjI2oAK6.js b/dev/assets/chunks/@localSearchIndexroot.DjI2oAK6.js new file mode 100644 index 000000000..2af494ddd --- /dev/null +++ b/dev/assets/chunks/@localSearchIndexroot.DjI2oAK6.js @@ -0,0 +1 @@ +const e='{"documentCount":179,"nextId":179,"documentIds":{"0":"/GeometryOps.jl/dev/api#Full-GeometryOps-API-documentation","1":"/GeometryOps.jl/dev/api#apply-and-associated-functions","2":"/GeometryOps.jl/dev/api#General-geometry-methods","3":"/GeometryOps.jl/dev/api#OGC-methods","4":"/GeometryOps.jl/dev/api#Other-general-methods","5":"/GeometryOps.jl/dev/api#Barycentric-coordinates","6":"/GeometryOps.jl/dev/api#Other-methods","7":"/GeometryOps.jl/dev/call_notes#20th-April,-2024","8":"/GeometryOps.jl/dev/call_notes#29th-Feb,-2024","9":"/GeometryOps.jl/dev/call_notes#To-do","10":"/GeometryOps.jl/dev/call_notes#done","11":"/GeometryOps.jl/dev/experiments/accurate_accumulators#Accurate-accumulation","12":"/GeometryOps.jl/dev/experiments/predicates#predicates","13":"/GeometryOps.jl/dev/experiments/predicates#orient","14":"/GeometryOps.jl/dev/experiments/predicates#dashboard","15":"/GeometryOps.jl/dev/experiments/predicates#Testing-robust-vs-regular-predicates","16":"/GeometryOps.jl/dev/experiments/predicates#incircle","17":"/GeometryOps.jl/dev/explanations/paradigms#paradigms","18":"/GeometryOps.jl/dev/explanations/paradigms#apply","19":"/GeometryOps.jl/dev/explanations/paradigms#applyreduce","20":"/GeometryOps.jl/dev/explanations/paradigms#fix-and-prepare","21":"/GeometryOps.jl/dev/explanations/peculiarities#peculiarities","22":"/GeometryOps.jl/dev/explanations/peculiarities#What-does-apply-return-and-why?","23":"/GeometryOps.jl/dev/explanations/peculiarities#Why-do-you-want-me-to-provide-a-target-in-set-operations?","24":"/GeometryOps.jl/dev/explanations/peculiarities#_True-and-_False-(or-BoolsAsTypes)","25":"/GeometryOps.jl/dev/introduction#introduction","26":"/GeometryOps.jl/dev/introduction#Main-concepts","27":"/GeometryOps.jl/dev/introduction#The-apply-paradigm","28":"/GeometryOps.jl/dev/introduction#What\'s-this-GeoInterface.Wrapper-thing?","29":"/GeometryOps.jl/dev/#what-is-geometryops-jl","30":"/GeometryOps.jl/dev/#how-to-navigate-the-docs","31":"/GeometryOps.jl/dev/source/GeometryOps#geometryops-jl","32":"/GeometryOps.jl/dev/source/methods/area#Area-and-signed-area","33":"/GeometryOps.jl/dev/source/methods/area#What-is-area?-What-is-signed-area?","34":"/GeometryOps.jl/dev/source/methods/area#implementation","35":"/GeometryOps.jl/dev/source/methods/angles#angles","36":"/GeometryOps.jl/dev/source/methods/angles#What-is-angles?","37":"/GeometryOps.jl/dev/source/methods/angles#implementation","38":"/GeometryOps.jl/dev/source/methods/barycentric#Barycentric-coordinates","39":"/GeometryOps.jl/dev/source/methods/barycentric#example","40":"/GeometryOps.jl/dev/source/methods/barycentric#Barycentric-coordinate-API","41":"/GeometryOps.jl/dev/source/methods/buffer#buffer","42":"/GeometryOps.jl/dev/source/methods/centroid#centroid","43":"/GeometryOps.jl/dev/source/methods/centroid#What-is-the-centroid?","44":"/GeometryOps.jl/dev/source/methods/centroid#implementation","45":"/GeometryOps.jl/dev/source/methods/clipping/clipping_processor#Polygon-clipping-helpers","46":"/GeometryOps.jl/dev/source/methods/clipping/coverage#What-is-coverage?","47":"/GeometryOps.jl/dev/source/methods/clipping/coverage#implementation","48":"/GeometryOps.jl/dev/source/methods/clipping/cut#Polygon-cutting","49":"/GeometryOps.jl/dev/source/methods/clipping/cut#What-is-cut?","50":"/GeometryOps.jl/dev/source/methods/clipping/cut#implementation","51":"/GeometryOps.jl/dev/source/methods/clipping/difference#Difference-Polygon-Clipping","52":"/GeometryOps.jl/dev/source/methods/clipping/difference#Helper-functions-for-Differences-with-Greiner-and-Hormann-Polygon-Clipping","53":"/GeometryOps.jl/dev/source/methods/clipping/intersection#Geometry-Intersection","54":"/GeometryOps.jl/dev/source/methods/clipping/intersection#Helper-functions-for-Intersections-with-Greiner-and-Hormann-Polygon-Clipping","55":"/GeometryOps.jl/dev/source/methods/clipping/predicates#If-we-want-to-inject-adaptivity,-we-would-do-something-like:","56":"/GeometryOps.jl/dev/source/methods/clipping/union#Union-Polygon-Clipping","57":"/GeometryOps.jl/dev/source/methods/clipping/union#Helper-functions-for-Unions-with-Greiner-and-Hormann-Polygon-Clipping","58":"/GeometryOps.jl/dev/source/methods/convex_hull#Convex-hull","59":"/GeometryOps.jl/dev/source/methods/convex_hull#example","60":"/GeometryOps.jl/dev/source/methods/convex_hull#Simple-hull","61":"/GeometryOps.jl/dev/source/methods/convex_hull#Convex-hull-of-the-USA","62":"/GeometryOps.jl/dev/source/methods/convex_hull#Investigating-the-winding-order","63":"/GeometryOps.jl/dev/source/methods/convex_hull#implementation","64":"/GeometryOps.jl/dev/source/methods/distance#Distance-and-signed-distance","65":"/GeometryOps.jl/dev/source/methods/distance#What-is-distance?-What-is-signed-distance?","66":"/GeometryOps.jl/dev/source/methods/distance#implementation","67":"/GeometryOps.jl/dev/source/methods/equals#equals","68":"/GeometryOps.jl/dev/source/methods/equals#What-is-equals?","69":"/GeometryOps.jl/dev/source/methods/equals#implementation","70":"/GeometryOps.jl/dev/source/methods/geom_relations/contains#contains","71":"/GeometryOps.jl/dev/source/methods/geom_relations/contains#What-is-contains?","72":"/GeometryOps.jl/dev/source/methods/geom_relations/contains#implementation","73":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#coveredby","74":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#What-is-coveredby?","75":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#implementation","76":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Convert-features-to-geometries","77":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Points-coveredby-geometries","78":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Lines-coveredby-geometries","79":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Rings-covered-by-geometries","80":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Polygons-covered-by-geometries","81":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Geometries-coveredby-multi-geometry/geometry-collections","82":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Multi-geometry/geometry-collections-coveredby-geometries","83":"/GeometryOps.jl/dev/source/methods/geom_relations/covers#covers","84":"/GeometryOps.jl/dev/source/methods/geom_relations/covers#What-is-covers?","85":"/GeometryOps.jl/dev/source/methods/geom_relations/covers#implementation","86":"/GeometryOps.jl/dev/source/methods/geom_relations/crosses#Crossing-checks","87":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#disjoint","88":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#What-is-disjoint?","89":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#implementation","90":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Convert-features-to-geometries","91":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Point-disjoint-geometries","92":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Lines-disjoint-geometries","93":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Rings-disjoint-geometries","94":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Polygon-disjoint-geometries","95":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Geometries-disjoint-multi-geometry/geometry-collections","96":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Multi-geometry/geometry-collections-coveredby-geometries","97":"/GeometryOps.jl/dev/source/methods/geom_relations/geom_geom_processors#Line-curve-interaction","98":"/GeometryOps.jl/dev/source/methods/geom_relations/intersects#Intersection-checks","99":"/GeometryOps.jl/dev/source/methods/geom_relations/intersects#What-is-intersects?","100":"/GeometryOps.jl/dev/source/methods/geom_relations/intersects#implementation","101":"/GeometryOps.jl/dev/source/methods/geom_relations/overlaps#overlaps","102":"/GeometryOps.jl/dev/source/methods/geom_relations/overlaps#What-is-overlaps?","103":"/GeometryOps.jl/dev/source/methods/geom_relations/overlaps#implementation","104":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#touches","105":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#What-is-touches?","106":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#implementation","107":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Convert-features-to-geometries","108":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Point-touches-geometries","109":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Lines-touching-geometries","110":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Rings-touch-geometries","111":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Polygons-touch-geometries","112":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Geometries-touch-multi-geometry/geometry-collections","113":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Multi-geometry/geometry-collections-cross-geometries","114":"/GeometryOps.jl/dev/source/methods/geom_relations/within#within","115":"/GeometryOps.jl/dev/source/methods/geom_relations/within#What-is-within?","116":"/GeometryOps.jl/dev/source/methods/geom_relations/within#implementation","117":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Convert-features-to-geometries","118":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Points-within-geometries","119":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Lines-within-geometries","120":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Rings-covered-by-geometries","121":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Polygons-within-geometries","122":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Geometries-within-multi-geometry/geometry-collections","123":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Multi-geometry/geometry-collections-within-geometries","124":"/GeometryOps.jl/dev/source/methods/orientation#orientation","125":"/GeometryOps.jl/dev/source/methods/orientation#isclockwise","126":"/GeometryOps.jl/dev/source/methods/orientation#isconcave","127":"/GeometryOps.jl/dev/source/methods/polygonize#Polygonizing-raster-data","128":"/GeometryOps.jl/dev/source/not_implemented_yet#Not-implemented-yet","129":"/GeometryOps.jl/dev/source/primitives#Primitive-functions","130":"/GeometryOps.jl/dev/source/primitives#docstrings","131":"/GeometryOps.jl/dev/source/primitives#functions","132":"/GeometryOps.jl/dev/source/primitives#types","133":"/GeometryOps.jl/dev/source/primitives#implementation","134":"/GeometryOps.jl/dev/source/primitives#What-is-apply?","135":"/GeometryOps.jl/dev/source/primitives#embedding","136":"/GeometryOps.jl/dev/source/primitives#threading","137":"/GeometryOps.jl/dev/source/transformations/correction/geometry_correction#Geometry-Corrections","138":"/GeometryOps.jl/dev/source/transformations/correction/geometry_correction#interface","139":"/GeometryOps.jl/dev/source/transformations/correction/geometry_correction#Available-corrections","140":"/GeometryOps.jl/dev/source/transformations/correction/closed_ring#Closed-Rings","141":"/GeometryOps.jl/dev/source/transformations/correction/closed_ring#example","142":"/GeometryOps.jl/dev/source/transformations/correction/closed_ring#implementation","143":"/GeometryOps.jl/dev/source/transformations/correction/intersecting_polygons#Intersecting-Polygons","144":"/GeometryOps.jl/dev/source/transformations/correction/intersecting_polygons#example","145":"/GeometryOps.jl/dev/source/transformations/correction/intersecting_polygons#implementation","146":"/GeometryOps.jl/dev/source/transformations/extent#Extent-embedding","147":"/GeometryOps.jl/dev/source/transformations/flip#Coordinate-flipping","148":"/GeometryOps.jl/dev/source/transformations/reproject#Geometry-reprojection","149":"/GeometryOps.jl/dev/source/transformations/reproject#Method-error-handling","150":"/GeometryOps.jl/dev/source/transformations/segmentize#segmentize","151":"/GeometryOps.jl/dev/source/transformations/segmentize#examples","152":"/GeometryOps.jl/dev/source/transformations/segmentize#benchmark","153":"/GeometryOps.jl/dev/source/transformations/segmentize#implementation","154":"/GeometryOps.jl/dev/source/transformations/simplify#Geometry-simplification","155":"/GeometryOps.jl/dev/source/transformations/simplify#examples","156":"/GeometryOps.jl/dev/source/transformations/simplify#benchmark","157":"/GeometryOps.jl/dev/source/transformations/simplify#Simplify-with-RadialDistance-Algorithm","158":"/GeometryOps.jl/dev/source/transformations/simplify#Simplify-with-DouglasPeucker-Algorithm","159":"/GeometryOps.jl/dev/source/transformations/simplify#Simplify-with-VisvalingamWhyatt-Algorithm","160":"/GeometryOps.jl/dev/source/transformations/simplify#Shared-utils","161":"/GeometryOps.jl/dev/source/transformations/transform#Pointwise-transformation","162":"/GeometryOps.jl/dev/source/transformations/tuples#Tuple-conversion","163":"/GeometryOps.jl/dev/source/types#types","164":"/GeometryOps.jl/dev/source/types#TraitTarget","165":"/GeometryOps.jl/dev/source/types#BoolsAsTypes","166":"/GeometryOps.jl/dev/source/types#GEOS","167":"/GeometryOps.jl/dev/source/utils#Utility-functions","168":"/GeometryOps.jl/dev/tutorials/geodesic_paths#Geodesic-paths","169":"/GeometryOps.jl/dev/tutorials/creating_geometry#Creating-Geometry","170":"/GeometryOps.jl/dev/tutorials/creating_geometry#creating-geometry","171":"/GeometryOps.jl/dev/tutorials/creating_geometry#plot-geometry","172":"/GeometryOps.jl/dev/tutorials/creating_geometry#geom-crs","173":"/GeometryOps.jl/dev/tutorials/creating_geometry#attributes","174":"/GeometryOps.jl/dev/tutorials/creating_geometry#save-geometry","175":"/GeometryOps.jl/dev/tutorials/spatial_joins#Spatial-joins","176":"/GeometryOps.jl/dev/tutorials/spatial_joins#Simple-example","177":"/GeometryOps.jl/dev/tutorials/spatial_joins#Real-world-example","178":"/GeometryOps.jl/dev/tutorials/spatial_joins#Enabling-custom-predicates"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[4,1,91],"1":[4,4,248],"2":[3,4,1],"3":[2,7,208],"4":[3,7,258],"5":[2,4,84],"6":[2,4,1087],"7":[3,1,55],"8":[3,1,1],"9":[2,3,107],"10":[1,3,17],"11":[2,1,74],"12":[1,1,5],"13":[1,1,128],"14":[1,2,116],"15":[5,2,72],"16":[1,1,1],"17":[1,1,53],"18":[1,1,109],"19":[1,2,35],"20":[3,1,79],"21":[1,1,1],"22":[7,1,71],"23":[13,1,101],"24":[6,1,66],"25":[1,1,72],"26":[2,1,1],"27":[3,3,50],"28":[8,3,18],"29":[5,1,72],"30":[5,1,61],"31":[2,1,120],"32":[4,1,4],"33":[5,4,100],"34":[1,4,246],"35":[1,1,3],"36":[4,1,57],"37":[1,1,268],"38":[2,1,65],"39":[1,2,211],"40":[3,2,414],"41":[1,1,110],"42":[1,1,6],"43":[5,1,91],"44":[1,1,199],"45":[3,1,610],"46":[4,1,70],"47":[1,1,327],"48":[2,1,3],"49":[4,2,57],"50":[1,2,200],"51":[3,1,214],"52":[10,1,190],"53":[2,1,250],"54":[10,1,480],"55":[11,1,25],"56":[3,1,236],"57":[10,1,284],"58":[2,1,56],"59":[1,2,1],"60":[2,3,32],"61":[5,2,40],"62":[4,2,100],"63":[1,2,166],"64":[4,1,4],"65":[5,4,128],"66":[1,4,260],"67":[1,1,3],"68":[4,1,68],"69":[1,1,265],"70":[1,1,3],"71":[4,1,79],"72":[1,1,79],"73":[1,1,3],"74":[4,1,81],"75":[1,1,128],"76":[4,1,11],"77":[3,1,56],"78":[3,1,46],"79":[4,1,48],"80":[4,1,40],"81":[5,1,40],"82":[5,1,44],"83":[1,1,3],"84":[4,1,67],"85":[1,1,78],"86":[2,1,149],"87":[1,1,3],"88":[4,1,68],"89":[1,1,110],"90":[4,1,10],"91":[3,1,57],"92":[3,1,58],"93":[3,1,47],"94":[3,1,33],"95":[5,1,39],"96":[5,1,44],"97":[3,1,432],"98":[2,1,3],"99":[4,2,80],"100":[1,2,76],"101":[1,1,3],"102":[4,1,82],"103":[1,1,244],"104":[1,1,3],"105":[4,1,70],"106":[1,1,125],"107":[4,1,11],"108":[3,1,69],"109":[3,1,52],"110":[3,1,61],"111":[3,1,40],"112":[5,1,39],"113":[5,1,42],"114":[1,1,3],"115":[4,1,72],"116":[1,1,129],"117":[4,1,11],"118":[3,1,63],"119":[3,1,53],"120":[4,1,53],"121":[3,1,38],"122":[5,1,39],"123":[5,1,42],"124":[1,1,4],"125":[1,1,21],"126":[1,1,206],"127":[3,1,511],"128":[3,1,47],"129":[2,1,113],"130":[1,2,1],"131":[1,3,106],"132":[1,2,12],"133":[1,2,33],"134":[4,2,114],"135":[2,2,36],"136":[1,2,540],"137":[2,1,41],"138":[1,2,112],"139":[2,2,109],"140":[2,1,54],"141":[1,2,87],"142":[1,2,83],"143":[2,1,77],"144":[1,2,70],"145":[1,2,135],"146":[2,1,71],"147":[2,1,56],"148":[2,1,132],"149":[3,2,77],"150":[1,1,76],"151":[1,1,147],"152":[1,1,268],"153":[1,1,188],"154":[2,1,44],"155":[1,2,67],"156":[1,2,391],"157":[4,1,75],"158":[4,1,186],"159":[4,1,85],"160":[2,1,149],"161":[2,1,111],"162":[2,1,58],"163":[1,1,38],"164":[1,1,74],"165":[1,1,82],"166":[1,1,147],"167":[2,1,142],"168":[2,1,52],"169":[2,1,60],"170":[4,2,287],"171":[13,2,280],"172":[9,2,199],"173":[7,2,63],"174":[4,2,140],"175":[2,1,138],"176":[2,2,137],"177":[3,2,117],"178":[3,2,68]},"averageFieldLength":[2.8603351955307263,1.4692737430167602,108.2737430167598],"storedFields":{"0":{"title":"Full GeometryOps API documentation","titles":[]},"1":{"title":"apply and associated functions","titles":["Full GeometryOps API documentation"]},"2":{"title":"General geometry methods","titles":["Full GeometryOps API documentation"]},"3":{"title":"OGC methods","titles":["Full GeometryOps API documentation","General geometry methods"]},"4":{"title":"Other general methods","titles":["Full GeometryOps API documentation","General geometry methods"]},"5":{"title":"Barycentric coordinates","titles":["Full GeometryOps API documentation"]},"6":{"title":"Other methods","titles":["Full GeometryOps API documentation"]},"7":{"title":"20th April, 2024","titles":[]},"8":{"title":"29th Feb, 2024","titles":[]},"9":{"title":"To do","titles":["29th Feb, 2024"]},"10":{"title":"Done","titles":["29th Feb, 2024"]},"11":{"title":"Accurate accumulation","titles":[]},"12":{"title":"Predicates","titles":[]},"13":{"title":"Orient","titles":["Predicates"]},"14":{"title":"Dashboard","titles":["Predicates","Orient"]},"15":{"title":"Testing robust vs regular predicates","titles":["Predicates","Orient"]},"16":{"title":"Incircle","titles":["Predicates"]},"17":{"title":"Paradigms","titles":[]},"18":{"title":"apply","titles":["Paradigms"]},"19":{"title":"applyreduce","titles":["Paradigms","apply"]},"20":{"title":"fix and prepare","titles":["Paradigms"]},"21":{"title":"Peculiarities","titles":[]},"22":{"title":"What does apply return and why?","titles":["Peculiarities"]},"23":{"title":"Why do you want me to provide a target in set operations?","titles":["Peculiarities"]},"24":{"title":"_True and _False (or BoolsAsTypes)","titles":["Peculiarities"]},"25":{"title":"Introduction","titles":[]},"26":{"title":"Main concepts","titles":["Introduction"]},"27":{"title":"The apply paradigm","titles":["Introduction","Main concepts"]},"28":{"title":"What's this GeoInterface.Wrapper thing?","titles":["Introduction","Main concepts"]},"29":{"title":"What is GeometryOps.jl?","titles":[]},"30":{"title":"How to navigate the docs","titles":[]},"31":{"title":"GeometryOps.jl","titles":[]},"32":{"title":"Area and signed area","titles":[]},"33":{"title":"What is area? What is signed area?","titles":["Area and signed area"]},"34":{"title":"Implementation","titles":["Area and signed area"]},"35":{"title":"Angles","titles":[]},"36":{"title":"What is angles?","titles":["Angles"]},"37":{"title":"Implementation","titles":["Angles"]},"38":{"title":"Barycentric coordinates","titles":[]},"39":{"title":"Example","titles":["Barycentric coordinates"]},"40":{"title":"Barycentric-coordinate API","titles":["Barycentric coordinates"]},"41":{"title":"Buffer","titles":[]},"42":{"title":"Centroid","titles":[]},"43":{"title":"What is the centroid?","titles":["Centroid"]},"44":{"title":"Implementation","titles":["Centroid"]},"45":{"title":"Polygon clipping helpers","titles":[]},"46":{"title":"What is coverage?","titles":[]},"47":{"title":"Implementation","titles":[]},"48":{"title":"Polygon cutting","titles":[]},"49":{"title":"What is cut?","titles":["Polygon cutting"]},"50":{"title":"Implementation","titles":["Polygon cutting"]},"51":{"title":"Difference Polygon Clipping","titles":[]},"52":{"title":"Helper functions for Differences with Greiner and Hormann Polygon Clipping","titles":[]},"53":{"title":"Geometry Intersection","titles":[]},"54":{"title":"Helper functions for Intersections with Greiner and Hormann Polygon Clipping","titles":[]},"55":{"title":"If we want to inject adaptivity, we would do something like:","titles":[]},"56":{"title":"Union Polygon Clipping","titles":[]},"57":{"title":"Helper functions for Unions with Greiner and Hormann Polygon Clipping","titles":[]},"58":{"title":"Convex hull","titles":[]},"59":{"title":"Example","titles":["Convex hull"]},"60":{"title":"Simple hull","titles":["Convex hull","Example"]},"61":{"title":"Convex hull of the USA","titles":["Convex hull"]},"62":{"title":"Investigating the winding order","titles":["Convex hull"]},"63":{"title":"Implementation","titles":["Convex hull"]},"64":{"title":"Distance and signed distance","titles":[]},"65":{"title":"What is distance? What is signed distance?","titles":["Distance and signed distance"]},"66":{"title":"Implementation","titles":["Distance and signed distance"]},"67":{"title":"Equals","titles":[]},"68":{"title":"What is equals?","titles":["Equals"]},"69":{"title":"Implementation","titles":["Equals"]},"70":{"title":"Contains","titles":[]},"71":{"title":"What is contains?","titles":["Contains"]},"72":{"title":"Implementation","titles":["Contains"]},"73":{"title":"CoveredBy","titles":[]},"74":{"title":"What is coveredby?","titles":["CoveredBy"]},"75":{"title":"Implementation","titles":["CoveredBy"]},"76":{"title":"Convert features to geometries","titles":[]},"77":{"title":"Points coveredby geometries","titles":[]},"78":{"title":"Lines coveredby geometries","titles":[]},"79":{"title":"Rings covered by geometries","titles":[]},"80":{"title":"Polygons covered by geometries","titles":[]},"81":{"title":"Geometries coveredby multi-geometry/geometry collections","titles":[]},"82":{"title":"Multi-geometry/geometry collections coveredby geometries","titles":[]},"83":{"title":"Covers","titles":[]},"84":{"title":"What is covers?","titles":["Covers"]},"85":{"title":"Implementation","titles":["Covers"]},"86":{"title":"Crossing checks","titles":[]},"87":{"title":"Disjoint","titles":[]},"88":{"title":"What is disjoint?","titles":["Disjoint"]},"89":{"title":"Implementation","titles":["Disjoint"]},"90":{"title":"Convert features to geometries","titles":[]},"91":{"title":"Point disjoint geometries","titles":[]},"92":{"title":"Lines disjoint geometries","titles":[]},"93":{"title":"Rings disjoint geometries","titles":[]},"94":{"title":"Polygon disjoint geometries","titles":[]},"95":{"title":"Geometries disjoint multi-geometry/geometry collections","titles":[]},"96":{"title":"Multi-geometry/geometry collections coveredby geometries","titles":[]},"97":{"title":"Line-curve interaction","titles":[]},"98":{"title":"Intersection checks","titles":[]},"99":{"title":"What is intersects?","titles":["Intersection checks"]},"100":{"title":"Implementation","titles":["Intersection checks"]},"101":{"title":"Overlaps","titles":[]},"102":{"title":"What is overlaps?","titles":["Overlaps"]},"103":{"title":"Implementation","titles":["Overlaps"]},"104":{"title":"Touches","titles":[]},"105":{"title":"What is touches?","titles":["Touches"]},"106":{"title":"Implementation","titles":["Touches"]},"107":{"title":"Convert features to geometries","titles":[]},"108":{"title":"Point touches geometries","titles":[]},"109":{"title":"Lines touching geometries","titles":[]},"110":{"title":"Rings touch geometries","titles":[]},"111":{"title":"Polygons touch geometries","titles":[]},"112":{"title":"Geometries touch multi-geometry/geometry collections","titles":[]},"113":{"title":"Multi-geometry/geometry collections cross geometries","titles":[]},"114":{"title":"Within","titles":[]},"115":{"title":"What is within?","titles":["Within"]},"116":{"title":"Implementation","titles":["Within"]},"117":{"title":"Convert features to geometries","titles":[]},"118":{"title":"Points within geometries","titles":[]},"119":{"title":"Lines within geometries","titles":[]},"120":{"title":"Rings covered by geometries","titles":[]},"121":{"title":"Polygons within geometries","titles":[]},"122":{"title":"Geometries within multi-geometry/geometry collections","titles":[]},"123":{"title":"Multi-geometry/geometry collections within geometries","titles":[]},"124":{"title":"Orientation","titles":[]},"125":{"title":"isclockwise","titles":["Orientation"]},"126":{"title":"isconcave","titles":["Orientation"]},"127":{"title":"Polygonizing raster data","titles":[]},"128":{"title":"Not implemented yet","titles":[]},"129":{"title":"Primitive functions","titles":[]},"130":{"title":"Docstrings","titles":["Primitive functions"]},"131":{"title":"Functions","titles":["Primitive functions","Docstrings"]},"132":{"title":"Types","titles":["Primitive functions"]},"133":{"title":"Implementation","titles":["Primitive functions"]},"134":{"title":"What is apply?","titles":["Primitive functions"]},"135":{"title":"Embedding:","titles":["Primitive functions"]},"136":{"title":"Threading","titles":["Primitive functions"]},"137":{"title":"Geometry Corrections","titles":[]},"138":{"title":"Interface","titles":["Geometry Corrections"]},"139":{"title":"Available corrections","titles":["Geometry Corrections"]},"140":{"title":"Closed Rings","titles":[]},"141":{"title":"Example","titles":["Closed Rings"]},"142":{"title":"Implementation","titles":["Closed Rings"]},"143":{"title":"Intersecting Polygons","titles":[]},"144":{"title":"Example","titles":["Intersecting Polygons"]},"145":{"title":"Implementation","titles":["Intersecting Polygons"]},"146":{"title":"Extent embedding","titles":[]},"147":{"title":"Coordinate flipping","titles":[]},"148":{"title":"Geometry reprojection","titles":[]},"149":{"title":"Method error handling","titles":["Geometry reprojection"]},"150":{"title":"Segmentize","titles":[]},"151":{"title":"Examples","titles":["Segmentize"]},"152":{"title":"Benchmark","titles":["Segmentize"]},"153":{"title":"Implementation","titles":["Segmentize"]},"154":{"title":"Geometry simplification","titles":[]},"155":{"title":"Examples","titles":["Geometry simplification"]},"156":{"title":"Benchmark","titles":["Geometry simplification"]},"157":{"title":"Simplify with RadialDistance Algorithm","titles":[]},"158":{"title":"Simplify with DouglasPeucker Algorithm","titles":[]},"159":{"title":"Simplify with VisvalingamWhyatt Algorithm","titles":[]},"160":{"title":"Shared utils","titles":[]},"161":{"title":"Pointwise transformation","titles":[]},"162":{"title":"Tuple conversion","titles":[]},"163":{"title":"Types","titles":[]},"164":{"title":"TraitTarget","titles":["Types"]},"165":{"title":"BoolsAsTypes","titles":["Types"]},"166":{"title":"GEOS","titles":["Types"]},"167":{"title":"Utility functions","titles":[]},"168":{"title":"Geodesic paths","titles":[]},"169":{"title":"Creating Geometry","titles":[]},"170":{"title":"Creating and plotting geometries","titles":["Creating Geometry"]},"171":{"title":"Plot geometries on a map using GeoMakie and coordinate reference system (CRS)","titles":["Creating Geometry"]},"172":{"title":"Create geospatial geometries with embedded coordinate reference system information","titles":["Creating Geometry"]},"173":{"title":"Creating a table with attributes and geometry","titles":["Creating Geometry"]},"174":{"title":"Saving your geospatial data","titles":["Creating Geometry"]},"175":{"title":"Spatial joins","titles":[]},"176":{"title":"Simple example","titles":["Spatial joins"]},"177":{"title":"Real-world example","titles":["Spatial joins"]},"178":{"title":"Enabling custom predicates","titles":["Spatial joins"]}},"dirtCount":0,"index":[["⋮",{"2":{"171":1}}],["θ",{"2":{"170":7,"171":3,"172":5}}],["☁",{"2":{"170":1}}],["✈",{"2":{"170":1}}],["÷",{"2":{"136":2}}],["ϵ",{"2":{"54":5}}],["∘",{"2":{"54":1,"103":2,"127":2,"138":1,"156":2,"178":2}}],["⊻",{"2":{"45":1,"52":2}}],["≥",{"2":{"45":1,"97":2,"145":1,"158":1}}],["α≈1",{"2":{"54":1}}],["α≈0",{"2":{"54":1}}],["α2",{"2":{"45":4,"54":2}}],["α",{"2":{"45":3,"54":28,"97":7}}],["α1",{"2":{"45":4,"54":2}}],["β2",{"2":{"45":4,"54":2}}],["β",{"2":{"45":4,"54":28,"97":7}}],["β1",{"2":{"45":4,"54":2}}],["≤",{"2":{"45":5,"47":14,"97":6,"158":1,"160":1,"167":4}}],["^",{"2":{"171":1}}],["^3",{"2":{"171":1}}],["^n",{"2":{"126":1}}],["^2",{"2":{"44":2,"66":2}}],["^hormannpresentation",{"2":{"40":2}}],["∑λ",{"2":{"40":2}}],["∑i=2n",{"2":{"6":1}}],["`$",{"2":{"166":1}}],["`libgeos",{"2":{"166":1}}],["`linearring`",{"2":{"153":1}}],["`linearsegments`",{"2":{"153":1}}],["`linestring`",{"2":{"153":1}}],["`linestringtrait`",{"2":{"138":1}}],["`line2`",{"2":{"126":1}}],["`line1`",{"2":{"126":1}}],["`line",{"2":{"53":4}}],["`equatorial",{"2":{"152":2}}],["`extents",{"2":{"146":1}}],["`inf`",{"2":{"148":1}}],["`intersects`",{"2":{"100":1}}],["`intersectingpolygons`",{"2":{"51":1,"53":1,"56":1}}],["`prefilter",{"2":{"156":1}}],["`proj",{"2":{"148":1,"152":2}}],["`polgontrait`",{"2":{"136":1}}],["`polygontrait`",{"2":{"136":1,"138":1}}],["`polygonize`",{"2":{"127":2}}],["`polygon`",{"2":{"40":3}}],["`polys`",{"2":{"52":1}}],["`poly",{"2":{"52":3,"54":1,"57":1}}],["`pointrait`",{"2":{"156":1}}],["`pointtrait`",{"2":{"136":3,"138":1}}],["`point",{"2":{"97":3}}],["`point`",{"2":{"40":4,"66":1}}],["`point2f`",{"2":{"39":1}}],["`obj`",{"2":{"136":1,"161":1,"162":1}}],["`op`",{"2":{"136":2}}],["`+`",{"2":{"136":1}}],["`alg",{"2":{"166":1}}],["`alg`",{"2":{"160":1}}],["`always",{"2":{"148":1}}],["`application",{"2":{"138":1}}],["`apply`",{"2":{"136":1,"164":1}}],["`abstractgeometrytrait`",{"2":{"136":1}}],["`abstractarray`",{"2":{"136":1}}],["`abstractmatrix`",{"2":{"127":1}}],["`calc",{"2":{"133":1}}],["`crs`",{"2":{"133":1}}],["`components`",{"2":{"136":1}}],["`collect`",{"2":{"136":1}}],["`covers`",{"2":{"75":1,"85":1}}],["`coveredby`",{"2":{"75":1,"85":1}}],["`contains`",{"2":{"72":1,"116":1}}],["`convex",{"2":{"63":2}}],["`union",{"2":{"127":2}}],["`unionintersectingpolygons`",{"2":{"145":1}}],["`unionintersectingpolygons",{"2":{"51":1,"52":2,"53":1,"54":2,"56":1,"57":2}}],["`ys`",{"2":{"127":1}}],["`flattening`",{"2":{"152":1}}],["`flattening",{"2":{"152":1}}],["`flatten`",{"2":{"136":1}}],["`f",{"2":{"136":1}}],["`featurecollectiontrait`",{"2":{"136":2}}],["`featurecollection`",{"2":{"127":2}}],["`featuretrait`",{"2":{"136":3}}],["`feature`s",{"2":{"127":1}}],["`f`",{"2":{"127":5,"136":6,"161":2,"166":1}}],["`false`",{"2":{"126":1,"127":1,"133":4,"148":1}}],["`fix",{"2":{"51":2,"52":2,"53":2,"54":2,"56":2,"57":2}}],["`douglaspeucker`",{"2":{"156":1}}],["`d`",{"2":{"148":1}}],["`difference`",{"2":{"145":1}}],["`disjoint`",{"2":{"100":1}}],["`delaunaytriangulation",{"2":{"63":1}}],["`within`",{"2":{"72":1,"116":1}}],["`weight`",{"2":{"40":1}}],["`geos`",{"2":{"166":3}}],["`geodesic`",{"2":{"152":1}}],["`geodesicsegments`",{"2":{"151":1,"152":1,"153":1}}],["`geointerface`",{"2":{"138":1}}],["`geointerface",{"2":{"136":2,"148":2}}],["`geom`",{"2":{"66":3,"136":1,"153":1}}],["`geometrycorrection`",{"2":{"138":1,"142":1,"145":2}}],["`geometry`",{"2":{"136":1,"148":2}}],["`geometrybasics",{"2":{"40":3}}],["`geometries`",{"2":{"63":1}}],["`g1`",{"2":{"66":1}}],["`gi",{"2":{"63":1,"127":1}}],["`tuple",{"2":{"167":1}}],["`tuple`s",{"2":{"162":1}}],["`tuple`",{"2":{"127":1,"162":1}}],["`time`",{"2":{"148":1}}],["`transform`",{"2":{"148":1}}],["`true`",{"2":{"75":1,"86":1,"89":2,"106":1,"116":1,"126":2,"127":1,"133":2,"148":1}}],["`threaded==true`",{"2":{"136":1}}],["`threaded`",{"2":{"133":1}}],["`tol`",{"2":{"156":2,"157":3,"158":2,"159":3,"160":4}}],["`to",{"2":{"54":1}}],["`target",{"2":{"148":3}}],["`target`",{"2":{"53":1,"136":4,"164":1}}],["`tables",{"2":{"136":1}}],["`taget`",{"2":{"51":1,"56":1}}],["`method",{"2":{"153":1}}],["`method`",{"2":{"40":3,"153":1}}],["`max",{"2":{"152":4,"153":2,"166":1}}],["`makie",{"2":{"127":1}}],["`multipointtrait`",{"2":{"136":1,"156":1}}],["`multipolygontrait`",{"2":{"136":1}}],["`multipolygon`",{"2":{"127":3}}],["`multipolygon",{"2":{"52":3,"54":3,"57":2}}],["`multipoly",{"2":{"52":7,"54":3,"57":3}}],["`minpoints`",{"2":{"127":2}}],["`number`",{"2":{"156":2,"160":3}}],["`namedtuple`",{"2":{"136":1}}],["`nothing`",{"2":{"45":1,"133":1}}],["`next",{"2":{"45":1}}],["`bool`",{"2":{"127":2}}],["`buffer`",{"2":{"41":1}}],["`barycentric",{"2":{"40":3}}],["`radialdistance`",{"2":{"156":1}}],["`ratio`",{"2":{"156":2,"160":3}}],["`reproject`",{"2":{"149":1}}],["`rebuild`",{"2":{"136":1}}],["`r`",{"2":{"40":1}}],["`rᵢ`",{"2":{"40":1}}],["`segmentize`",{"2":{"166":1}}],["`svector`",{"2":{"161":3}}],["`simplifyalg`",{"2":{"156":2}}],["`simplify",{"2":{"156":1}}],["`simplify`",{"2":{"156":2}}],["`source",{"2":{"148":3}}],["`s`",{"2":{"40":1}}],["`sᵢ`",{"2":{"40":2}}],["`s2`",{"2":{"40":1}}],["`s1`",{"2":{"40":1}}],["`hcat`",{"2":{"40":1}}],["`x`",{"2":{"136":1}}],["`xs`",{"2":{"127":1}}],["`x1",{"2":{"40":1}}],["`x1`",{"2":{"40":2}}],["`x2`",{"2":{"40":1}}],["`visvalingamwhyatt`",{"2":{"156":1}}],["`vector",{"2":{"148":1}}],["`vector`",{"2":{"127":1,"136":1}}],["`vᵢ`",{"2":{"40":1}}],["`v`",{"2":{"40":1}}],["`values`",{"2":{"40":1,"127":1}}],["`λs`",{"2":{"40":2}}],["`",{"2":{"40":2,"51":1,"52":2,"53":1,"54":3,"56":1,"57":2,"127":3,"136":1,"138":2,"148":2,"153":1,"156":3,"166":2,"167":1}}],["```jldoctest",{"2":{"50":1,"51":1,"53":1,"54":1,"56":1,"69":1,"72":1,"75":1,"85":1,"89":1,"100":1,"103":1,"106":1,"116":1,"126":1,"156":1}}],["```julia",{"2":{"6":2,"40":1,"86":1,"126":1,"136":1,"161":2,"164":1}}],["```math",{"2":{"40":1,"126":1}}],["```",{"2":{"11":1,"40":3,"50":1,"51":1,"53":1,"56":1,"69":1,"72":1,"75":1,"85":1,"89":1,"100":1,"103":1,"106":1,"116":1,"126":3,"127":11,"136":1,"156":1,"161":2,"167":1}}],["λ₁",{"2":{"40":2}}],["λn",{"2":{"38":1}}],["λ3",{"2":{"38":1}}],["λ2",{"2":{"38":2}}],["λ1",{"2":{"38":2}}],["λs",{"2":{"5":3,"6":4,"40":27}}],["π",{"2":{"37":1,"156":1}}],["δbay",{"2":{"54":3}}],["δbax",{"2":{"54":3}}],["δby",{"2":{"54":5}}],["δbx",{"2":{"54":5}}],["δb",{"2":{"54":2}}],["δay",{"2":{"54":5}}],["δax",{"2":{"54":5}}],["δa",{"2":{"54":2}}],["δintrs",{"2":{"45":2}}],["δy2",{"2":{"126":2}}],["δy1",{"2":{"126":2}}],["δyl",{"2":{"103":4}}],["δy",{"2":{"37":8,"47":3,"97":7}}],["δys",{"2":{"37":1}}],["δx2",{"2":{"126":2}}],["δx1",{"2":{"126":2}}],["δxl",{"2":{"103":4}}],["δx",{"2":{"37":9,"47":3,"97":7}}],["∈",{"2":{"14":1}}],["~",{"2":{"14":3}}],["$ratio",{"2":{"160":1}}],["$rectangle",{"2":{"152":2}}],["$number",{"2":{"160":1}}],["$name",{"2":{"31":2}}],["$min",{"2":{"160":1}}],["$douglas",{"2":{"156":1,"158":1}}],["$simplify",{"2":{"156":1,"157":1,"159":1}}],["$lg",{"2":{"152":1}}],["$lin",{"2":{"152":2}}],["$geom",{"2":{"156":8}}],["$geo",{"2":{"152":1}}],["$apply",{"2":{"136":1,"147":1,"148":1,"156":1}}],["$calc",{"2":{"133":1}}],["$crs",{"2":{"133":1,"146":1}}],["$tol",{"2":{"160":1}}],["$threaded",{"2":{"133":1}}],["$t",{"2":{"69":1,"136":4}}],["$target",{"2":{"52":1,"54":1,"57":1,"136":3}}],["$trait",{"2":{"50":1,"52":2,"54":2,"57":2}}],["$",{"2":{"13":4,"14":1,"40":4,"45":2,"127":3,"138":4,"153":1,"156":12,"166":1}}],["|=",{"2":{"97":4,"103":1}}],["||",{"2":{"37":2,"45":13,"47":8,"50":1,"53":1,"54":5,"56":1,"69":18,"86":2,"97":8,"103":1,"108":1,"127":7,"158":1,"160":3}}],["|",{"2":{"11":4,"97":1}}],["|>",{"2":{"11":8,"13":2,"136":1,"151":1,"152":1,"156":3,"177":2}}],["↩︎",{"2":{"6":1}}],["ᵢᵢᵢ₊₁ᵢᵢ₊₁ᵢᵢ₊₁tᵢ=det",{"2":{"6":1}}],["⋅",{"2":{"6":1,"40":1}}],["qy",{"2":{"13":2,"14":2}}],["qx",{"2":{"13":2,"14":2}}],["q",{"2":{"13":13,"14":12,"45":4}}],["qhull",{"2":{"6":1,"63":1}}],["queue",{"2":{"158":41}}],["questions",{"2":{"54":1}}],["quite",{"2":{"141":1,"177":1}}],["quickhull",{"2":{"6":1,"58":1,"63":2}}],["quick",{"2":{"4":1,"6":1,"40":1,"146":1,"155":1}}],["quality",{"2":{"6":1,"156":1}}],["quantity",{"2":{"6":1,"152":1}}],["quot",{"2":{"1":4,"6":10,"20":2,"45":8,"65":2,"66":2,"69":2,"84":4,"97":10,"134":2,"136":8,"150":6,"170":2,"176":2}}],["zone",{"2":{"171":1}}],["zoom",{"2":{"14":1}}],["zs",{"2":{"127":5}}],["zip",{"2":{"13":1,"14":1,"170":4,"171":1,"172":1}}],["zeros",{"2":{"40":1,"47":1}}],["zero",{"2":{"4":6,"6":8,"34":11,"44":3,"45":4,"47":11,"54":22,"65":1,"66":3,"126":1,"136":1,"158":4}}],["z",{"2":{"4":1,"5":1,"6":2,"40":3,"69":3,"127":3,"147":1,"161":1,"162":1}}],["0e6",{"2":{"171":6}}],["0example",{"2":{"6":1}}],["097075198097933",{"2":{"172":1}}],["09707519809793252",{"2":{"172":2}}],["091887951911644",{"2":{"172":3}}],["0999933334666654",{"2":{"170":1}}],["09801605542096",{"2":{"170":1}}],["098016055420953",{"2":{"170":3}}],["09297443860091348",{"2":{"170":4}}],["09",{"2":{"39":1}}],["08506974233813636",{"2":{"172":2}}],["08",{"2":{"39":1}}],["062749678615475",{"2":{"172":1}}],["06274967861547665",{"2":{"172":2}}],["06592462566760626",{"2":{"170":1}}],["0650624499034016",{"2":{"170":4}}],["06",{"2":{"39":1}}],["02017324484778",{"2":{"172":1}}],["020173244847778715",{"2":{"172":2}}],["027886421973952302",{"2":{"170":4}}],["02",{"2":{"39":3}}],["04500741774392",{"2":{"172":1}}],["045007417743918",{"2":{"172":2}}],["049999166670833324",{"2":{"170":1}}],["0438052480035",{"2":{"170":1}}],["043805248003498",{"2":{"170":3}}],["04",{"2":{"39":6}}],["07518688541961",{"2":{"172":1}}],["075186885419612",{"2":{"172":2}}],["071",{"2":{"151":2,"152":2}}],["07",{"2":{"39":6,"151":6,"152":6}}],["009176636029576",{"2":{"172":1}}],["0091766360295773",{"2":{"172":2}}],["003135308800957",{"2":{"172":1}}],["0031353088009582475",{"2":{"172":2}}],["0035114210915891397",{"2":{"170":4}}],["006784125578492062",{"2":{"172":2}}],["0020133807972559925",{"2":{"172":2}}],["00839489109211",{"2":{"172":3}}],["008696",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["005465967083412071",{"2":{"170":4}}],["00111595449914",{"2":{"170":1}}],["001115954499138",{"2":{"170":3}}],["0010075412835199304",{"2":{"170":4}}],["001",{"2":{"156":1}}],["00085222666982",{"2":{"172":3}}],["000577332369005",{"2":{"172":1}}],["0005773323690041465",{"2":{"172":2}}],["000510363870095e6",{"2":{"171":2}}],["00025191811248184703",{"2":{"172":2}}],["000215611503127e6",{"2":{"171":2}}],["0007260527263e6",{"2":{"171":2}}],["000342160541625e6",{"2":{"171":2}}],["000124843834609e6",{"2":{"171":2}}],["000063948817746e6",{"2":{"171":2}}],["000026987852369e6",{"2":{"171":2}}],["000008144045314",{"2":{"172":1}}],["000007998400139e6",{"2":{"171":2}}],["000000999950001e6",{"2":{"171":2}}],["00001e6",{"2":{"171":1}}],["0004397316773170068",{"2":{"170":4}}],["000",{"2":{"156":1,"168":1}}],["00",{"2":{"39":2}}],["053798628882221644",{"2":{"172":2}}],["05877989361332",{"2":{"170":1}}],["058779893613323",{"2":{"170":3}}],["05416726609360478",{"2":{"170":4}}],["05",{"2":{"39":1}}],["052704767595",{"2":{"15":1}}],["037564867762832",{"2":{"172":1}}],["03756486776283019",{"2":{"172":2}}],["031245035570328428",{"2":{"172":2}}],["033518309870985",{"2":{"172":3}}],["03503632062070827",{"2":{"170":4}}],["03",{"2":{"39":4}}],["01458815628695",{"2":{"172":3}}],["016044338630866517",{"2":{"172":2}}],["01592650896568995",{"2":{"170":1}}],["01597247419241532",{"2":{"170":4}}],["01908693278165",{"2":{"170":1}}],["019086932781654",{"2":{"170":3}}],["01098781325325",{"2":{"170":1}}],["010987813253244",{"2":{"170":3}}],["011814947665167774",{"2":{"170":4}}],["01362848005",{"2":{"15":1}}],["01",{"2":{"14":1,"39":1,"151":1,"152":1,"170":1,"171":1,"172":1}}],["0^",{"2":{"13":2,"14":2}}],["0+2",{"2":{"13":2,"14":2}}],["0",{"2":{"3":35,"4":12,"6":190,"11":1,"13":5,"14":8,"15":32,"33":9,"34":4,"36":20,"37":3,"39":155,"40":2,"43":6,"44":6,"45":49,"46":13,"47":5,"49":22,"50":49,"51":42,"53":2,"54":21,"56":46,"57":2,"61":1,"65":20,"66":2,"68":13,"69":18,"71":16,"74":6,"75":6,"84":6,"85":12,"86":9,"88":15,"97":37,"102":13,"103":9,"105":12,"106":11,"115":16,"126":21,"127":7,"141":24,"144":64,"145":4,"151":16,"152":13,"153":1,"156":11,"158":7,"160":4,"167":2,"170":129,"171":2,"172":46,"176":13}}],[">=",{"2":{"40":6,"86":4,"103":1,"160":1}}],[">",{"2":{"1":1,"6":6,"11":2,"13":1,"15":2,"37":1,"40":1,"45":17,"47":3,"50":5,"51":1,"52":1,"54":2,"56":1,"57":3,"65":1,"69":1,"86":8,"97":10,"103":2,"126":4,"127":12,"136":5,"138":1,"145":3,"153":2,"156":1,"158":12,"160":3,"161":1,"167":1,"177":1}}],["914930257661865",{"2":{"172":1}}],["96875496442967",{"2":{"172":1}}],["961329",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["983955661369134",{"2":{"172":1}}],["9833",{"2":{"15":1}}],["9877550012664",{"2":{"170":1}}],["9840085315131",{"2":{"170":1}}],["98271048511609",{"2":{"170":1}}],["98661575256801",{"2":{"170":1}}],["99321587442151",{"2":{"172":1}}],["99375130197483",{"2":{"170":1}}],["997986619202745",{"2":{"172":1}}],["997750168744936",{"2":{"170":1}}],["997247091122496",{"2":{"170":1}}],["99600053330489",{"2":{"170":1}}],["991002699676024",{"2":{"170":1}}],["990022362600165",{"2":{"170":1}}],["99292997455441",{"2":{"170":1}}],["99533829767195",{"2":{"170":1}}],["99865616402829",{"2":{"170":1}}],["999999967681458e6",{"2":{"171":2}}],["999997707902938e6",{"2":{"171":2}}],["999987539891298e6",{"2":{"171":2}}],["999963474314044e6",{"2":{"171":2}}],["999919535736425e6",{"2":{"171":2}}],["999974634566875",{"2":{"170":1}}],["999849768598615e6",{"2":{"171":2}}],["999748081887518",{"2":{"172":1}}],["999748243174828e6",{"2":{"171":2}}],["999750002083324",{"2":{"170":1}}],["999609061508909e6",{"2":{"171":2}}],["999426363321033e6",{"2":{"171":2}}],["999194331880103e6",{"2":{"171":2}}],["99900003333289",{"2":{"170":1}}],["999565375483215",{"2":{"170":1}}],["9im",{"2":{"97":2,"175":1}}],["97976366505997",{"2":{"170":1}}],["9783069507679",{"2":{"170":1}}],["97",{"2":{"39":1}}],["946201371117777",{"2":{"172":1}}],["94",{"2":{"39":1}}],["92",{"2":{"39":1}}],["95770326033",{"2":{"15":1}}],["95",{"2":{"13":1,"14":1,"168":1}}],["900",{"2":{"152":1}}],["90063612163",{"2":{"11":2}}],["90",{"2":{"36":9,"39":1}}],["909318372607",{"2":{"11":3}}],["9",{"2":{"1":1,"6":1,"97":2,"126":12,"151":1,"161":1}}],["873633668827033",{"2":{"172":1}}],["8135804051007",{"2":{"170":1}}],["813580405100698",{"2":{"170":3}}],["897070",{"2":{"168":1}}],["88",{"2":{"39":1}}],["86641841658641",{"2":{"170":1}}],["866418416586406",{"2":{"170":3}}],["86",{"2":{"39":1}}],["868447876892",{"2":{"15":2}}],["84",{"2":{"39":1}}],["821068835162155",{"2":{"172":1}}],["82",{"2":{"39":1}}],["800",{"2":{"39":1}}],["80000",{"2":{"15":5}}],["80",{"2":{"39":1}}],["80869813739",{"2":{"15":2}}],["856614689791036e",{"2":{"15":2}}],["83572303404496",{"2":{"6":2,"53":1,"54":1}}],["8",{"2":{"1":3,"6":9,"13":1,"14":1,"51":2,"56":4,"97":1,"127":3,"151":1,"161":3,"172":2}}],["karnataka",{"2":{"177":1}}],["kbn",{"2":{"11":2}}],["kinds",{"2":{"23":1}}],["kind",{"2":{"9":1,"127":1}}],["k",{"2":{"6":1,"14":6,"40":1,"45":5,"97":5,"170":5,"172":5}}],["kernel",{"2":{"153":4}}],["keepat",{"2":{"56":1,"145":2}}],["keep",{"2":{"45":3,"127":1,"145":14,"151":1,"176":1}}],["keeping",{"2":{"6":1,"136":1,"147":1}}],["keys",{"2":{"127":4}}],["key",{"2":{"6":1,"127":4,"166":5}}],["keyword",{"2":{"6":8,"23":1,"51":1,"53":1,"56":1,"133":6,"136":1,"146":2,"152":2,"166":4,"171":1,"172":1}}],["keywords",{"2":{"1":2,"4":1,"6":10,"97":2,"127":1,"133":1,"136":1,"146":1,"147":2,"148":3,"156":8,"157":1,"158":1,"159":1,"160":1,"162":2}}],["known",{"2":{"47":2}}],["know",{"2":{"6":3,"37":2,"45":1,"47":1,"51":1,"53":1,"54":2,"56":1,"57":1,"136":1,"176":1}}],["kwargs",{"2":{"41":3,"47":1,"50":1,"51":3,"52":3,"53":4,"54":5,"56":3,"57":5,"138":2,"149":1,"152":1}}],["kwdef",{"2":{"31":1,"45":1,"152":1,"157":1,"158":1,"159":1}}],["kw",{"2":{"1":1,"6":11,"97":10,"127":20,"136":21,"147":3,"156":15,"159":1,"161":3,"162":3,"166":6}}],["json",{"2":{"174":3}}],["jstep",{"2":{"69":3}}],["jstart",{"2":{"69":7}}],["joined",{"2":{"176":4}}],["joins",{"0":{"175":1},"1":{"176":1,"177":1,"178":1},"2":{"175":3}}],["joinpath",{"2":{"156":2}}],["join",{"2":{"136":2,"175":4,"176":5,"178":1}}],["joining",{"2":{"6":2,"156":1,"175":1}}],["jpn",{"2":{"177":2}}],["jp",{"2":{"69":2}}],["jhole",{"2":{"69":2}}],["jh",{"2":{"57":5}}],["j+1",{"2":{"45":1,"127":1,"160":1}}],["j",{"2":{"45":24,"69":8,"86":9,"97":12,"126":2,"127":8,"160":2}}],["jet",{"2":{"39":1}}],["just",{"2":{"4":1,"6":1,"44":1,"45":2,"54":4,"57":1,"62":1,"66":2,"127":1,"134":1,"136":3,"152":1,"175":1}}],["julialand",{"2":{"171":2}}],["julialines",{"2":{"33":1}}],["julialinearsegments",{"2":{"6":1}}],["juliahole",{"2":{"170":1}}],["juliaplot",{"2":{"171":2}}],["juliap1",{"2":{"170":1}}],["juliapoly",{"2":{"171":1}}],["juliapolygon3",{"2":{"171":1}}],["juliapolygon1",{"2":{"170":1}}],["juliapolygonize",{"2":{"6":1}}],["juliapolygon",{"2":{"6":1}}],["juliapoints",{"2":{"176":1}}],["juliapoint",{"2":{"170":1}}],["juliaxoffset",{"2":{"170":3,"172":1}}],["juliax",{"2":{"170":2}}],["juliaxrange",{"2":{"65":1}}],["julia$apply",{"2":{"162":1}}],["julia$threaded",{"2":{"146":1}}],["julia6",{"2":{"156":1}}],["julia```jldoctest",{"2":{"167":1}}],["julia```julia",{"2":{"127":1}}],["julia```",{"2":{"86":1,"164":1}}],["julia1",{"2":{"51":1,"53":1,"54":1,"56":1}}],["julia2",{"2":{"50":1}}],["juliabase",{"2":{"40":1,"66":4,"136":1,"166":1}}],["juliabarycentric",{"2":{"5":3,"6":3}}],["juliafig",{"2":{"170":1,"171":1}}],["juliafalse",{"2":{"126":1}}],["juliafunction",{"2":{"37":2,"40":3,"41":2,"44":1,"45":11,"47":2,"50":1,"52":1,"54":2,"57":1,"63":1,"66":8,"97":6,"103":2,"108":1,"128":1,"136":5,"149":1,"152":1,"160":2}}],["juliafor",{"2":{"31":1,"136":2}}],["juliaflexijoins",{"2":{"178":1}}],["juliaflipped",{"2":{"129":1}}],["juliaflip",{"2":{"6":1}}],["juliaflatten",{"2":{"6":1,"131":1}}],["juliagi",{"2":{"11":2}}],["juliago",{"2":{"11":1,"33":1,"36":1,"46":1,"68":1,"71":1,"74":1,"84":1,"88":1,"99":1,"102":1,"105":1,"115":1,"175":1}}],["juliageopoly1",{"2":{"172":1}}],["juliageointerface",{"2":{"167":1}}],["juliageometry",{"2":{"63":1}}],["juliageo",{"2":{"6":2}}],["juliageodesicsegments",{"2":{"6":1}}],["juliageos",{"2":{"6":1}}],["juliaweighted",{"2":{"6":1}}],["juliawithin",{"2":{"3":1,"6":1}}],["juliaunwrap",{"2":{"6":1,"136":6}}],["juliaunion",{"2":{"6":1}}],["juliaunionintersectingpolygons",{"2":{"6":1,"139":1}}],["juliausing",{"2":{"6":1,"13":1,"14":1,"39":1,"151":2,"152":1,"155":1,"156":1,"173":1}}],["juliascatter",{"2":{"176":1}}],["juliasource",{"2":{"171":2}}],["juliasimplify",{"2":{"6":1,"156":3}}],["juliasigned",{"2":{"4":2,"6":2}}],["juliasegmentize",{"2":{"6":1}}],["julias1",{"2":{"6":1}}],["juliavisvalingamwhyatt",{"2":{"6":1}}],["juliaring3",{"2":{"171":1}}],["juliaring1",{"2":{"170":1}}],["juliar",{"2":{"170":2,"171":1,"172":1}}],["juliareconstruct",{"2":{"6":1,"131":1}}],["juliarebuild",{"2":{"6":1,"131":1}}],["juliareproject",{"2":{"1":1}}],["juliaradialdistance",{"2":{"6":1}}],["juliamy",{"2":{"178":1}}],["juliamultipoly",{"2":{"156":1}}],["juliamodule",{"2":{"31":1}}],["juliamonotonechainmethod",{"2":{"6":1}}],["juliameanvalue",{"2":{"6":1}}],["juliadf",{"2":{"173":1}}],["juliadestination",{"2":{"171":1}}],["juliadouglaspeucker",{"2":{"6":1}}],["juliadifference",{"2":{"6":1}}],["juliadiffintersectingpolygons",{"2":{"6":1,"139":1}}],["juliadistance",{"2":{"4":1,"6":1}}],["juliadisjoint",{"2":{"3":1,"6":1}}],["juliaexport",{"2":{"32":1,"35":1,"38":1,"42":1,"48":1,"51":1,"53":1,"56":1,"64":1,"67":1,"70":1,"73":1,"83":1,"87":1,"98":1,"101":1,"104":1,"114":1,"124":1,"127":1,"129":1,"137":1,"140":1,"143":1,"148":1,"150":1,"156":1,"163":1}}],["juliaend",{"2":{"66":1}}],["juliaenforce",{"2":{"6":1}}],["juliaenum",{"2":{"6":2}}],["juliaembed",{"2":{"4":1,"6":1}}],["juliaequals",{"2":{"4":15,"6":15,"45":1}}],["juliaaccuratearithmetic",{"2":{"11":2}}],["juliaabstract",{"2":{"6":3,"138":1,"139":1,"152":1,"165":1}}],["juliaangles",{"2":{"4":1,"6":1}}],["juliaarea",{"2":{"4":1,"6":1}}],["juliaapplyreduce",{"2":{"1":1,"6":1}}],["juliaapply",{"2":{"1":1,"6":1,"18":1}}],["juliacent",{"2":{"43":1}}],["juliacentroid",{"2":{"4":1,"6":3}}],["juliacut",{"2":{"6":1}}],["juliaclosedring",{"2":{"6":1,"139":1}}],["juliaconst",{"2":{"34":1,"37":1,"40":1,"45":1,"47":2,"66":1,"75":1,"89":1,"106":1,"116":1,"133":1}}],["juliaconvex",{"2":{"6":1,"63":1}}],["juliacontains",{"2":{"3":1,"6":1}}],["juliacoverage",{"2":{"6":1}}],["juliacovers",{"2":{"3":1,"6":1}}],["juliacoveredby",{"2":{"3":1,"6":1}}],["juliatrue",{"2":{"69":1,"72":1,"75":1,"85":1,"89":1,"100":1,"103":1,"106":1,"116":1,"126":1}}],["juliatraittarget",{"2":{"6":2,"164":1}}],["juliatransform",{"2":{"1":1,"6":1}}],["juliatuples",{"2":{"6":1}}],["juliat",{"2":{"6":1}}],["juliatouches",{"2":{"3":1,"6":1}}],["juliaoverlaps",{"2":{"3":9,"6":9}}],["juliainnerjoin",{"2":{"177":1}}],["juliaintersection",{"2":{"6":2}}],["juliaintersects",{"2":{"3":1}}],["juliaisconcave",{"2":{"6":1}}],["juliaisclockwise",{"2":{"6":1}}],["juliaimport",{"2":{"1":1,"3":9,"4":1,"6":18,"11":1,"33":1,"36":1,"43":1,"46":1,"49":1,"60":1,"61":1,"62":1,"65":1,"68":1,"71":1,"74":1,"84":1,"88":1,"99":1,"102":1,"105":1,"115":1,"141":2,"144":2,"151":1,"168":1,"174":4,"176":1,"177":1}}],["julia",{"2":{"3":1,"6":5,"9":1,"15":1,"25":1,"29":1,"31":1,"34":10,"37":4,"40":8,"44":19,"45":60,"47":18,"50":10,"51":6,"52":1,"53":5,"54":29,"56":6,"57":4,"58":1,"63":5,"65":1,"66":4,"69":15,"72":1,"76":1,"77":5,"78":1,"79":1,"80":2,"81":1,"82":1,"85":1,"86":3,"90":1,"91":3,"92":1,"93":1,"94":1,"95":1,"96":1,"97":50,"100":1,"103":7,"107":1,"108":3,"109":1,"110":1,"111":1,"112":1,"113":1,"117":1,"118":3,"119":1,"120":1,"121":2,"122":1,"123":1,"126":9,"127":40,"128":2,"136":64,"138":1,"142":5,"145":3,"146":1,"147":1,"148":1,"152":1,"153":2,"156":1,"157":2,"158":15,"159":3,"161":1,"162":1,"163":1,"164":1,"166":4,"167":1,"169":2,"171":2,"174":2,"175":1,"176":1}}],["julia>",{"2":{"1":5,"6":7,"126":3,"161":7}}],["juliajulia>",{"2":{"1":2,"6":3}}],["jl`",{"2":{"63":1,"148":1,"166":1}}],["jldoctest",{"2":{"6":1}}],["jl",{"0":{"29":1,"31":1},"2":{"1":10,"4":1,"6":16,"10":2,"11":1,"22":2,"25":2,"29":2,"31":42,"34":1,"37":1,"40":1,"41":3,"44":1,"45":1,"47":1,"50":1,"52":1,"54":1,"55":1,"57":1,"58":3,"63":6,"66":1,"69":1,"72":1,"82":1,"85":1,"86":1,"96":1,"97":1,"100":1,"103":1,"113":1,"123":1,"126":2,"127":1,"128":1,"131":1,"136":3,"139":1,"142":1,"145":1,"146":2,"147":1,"148":4,"149":3,"150":1,"152":3,"153":2,"156":2,"160":1,"161":6,"162":2,"165":1,"166":2,"167":1,"171":1,"175":1}}],["+5000000",{"2":{"171":1}}],["+proj=natearth2",{"2":{"171":2}}],["+=",{"2":{"34":2,"40":11,"44":6,"45":17,"47":10,"50":1,"69":1,"86":1,"97":5,"126":1,"145":2,"158":4,"167":3}}],["+",{"2":{"1":1,"6":2,"13":1,"14":1,"34":1,"37":4,"40":20,"44":10,"45":15,"47":7,"50":1,"54":10,"66":3,"69":2,"86":2,"97":6,"126":6,"127":2,"145":3,"153":2,"158":3,"159":2,"160":2,"170":6,"171":1,"172":4}}],["yticklabelsvisible",{"2":{"171":1}}],["york",{"2":{"177":1}}],["yoffset",{"2":{"170":7,"172":2}}],["your",{"0":{"174":1},"2":{"18":1,"41":1,"127":1,"129":1,"149":1,"152":1,"173":1,"174":1,"178":2}}],["you",{"0":{"23":1},"2":{"1":1,"4":1,"5":2,"6":11,"9":1,"11":1,"17":1,"18":5,"23":1,"27":2,"34":1,"37":1,"40":8,"41":1,"44":1,"51":1,"53":1,"56":1,"62":1,"63":1,"129":1,"141":1,"144":1,"149":1,"151":1,"152":1,"153":1,"161":1,"164":1,"171":1,"173":2,"174":3,"176":2,"177":3,"178":4}}],["y=y",{"2":{"167":1}}],["yvec",{"2":{"127":4}}],["ybounds",{"2":{"127":4}}],["yhalf",{"2":{"127":2}}],["ylast",{"2":{"66":3}}],["yfirst",{"2":{"66":5}}],["y0",{"2":{"66":5}}],["yw",{"2":{"47":4}}],["ye",{"2":{"47":4}}],["yet",{"0":{"128":1},"2":{"31":1,"40":1,"50":1,"52":1,"54":1,"57":1,"69":1,"127":1,"128":1,"138":2,"177":1}}],["y2",{"2":{"44":2,"47":18,"66":7,"86":10,"97":5,"103":4,"127":5,"153":6,"167":2}}],["y1",{"2":{"44":2,"47":22,"66":7,"86":11,"97":6,"103":5,"127":5,"153":7,"167":2}}],["yind+1",{"2":{"127":1}}],["yind",{"2":{"127":2}}],["yinterior",{"2":{"44":2}}],["yield",{"2":{"54":1,"152":1}}],["yi+yi−1",{"2":{"6":1}}],["ycentroid",{"2":{"44":13}}],["yrange",{"2":{"39":3,"65":3}}],["yautolimits",{"2":{"39":2}}],["yp2",{"2":{"37":4}}],["ys",{"2":{"6":3,"127":30}}],["ymax",{"2":{"6":1,"46":2,"47":48}}],["ymin",{"2":{"6":1,"46":2,"47":49}}],["y",{"2":{"1":2,"4":1,"6":4,"13":9,"14":10,"34":2,"37":8,"39":8,"43":1,"44":10,"45":6,"46":1,"47":8,"52":6,"54":8,"65":2,"66":7,"69":3,"86":21,"97":16,"103":7,"126":10,"129":2,"136":1,"147":4,"148":1,"153":2,"160":1,"161":2,"162":2,"167":7,"170":8,"171":2,"172":2,"175":1}}],["75",{"2":{"65":2,"71":1,"88":1,"115":1}}],["78",{"2":{"39":1}}],["749907",{"2":{"168":1}}],["74",{"2":{"39":1}}],["72",{"2":{"39":1}}],["726711609794",{"2":{"15":1}}],["76",{"2":{"39":1}}],["76085",{"2":{"15":1}}],["768946",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["70440582002419",{"2":{"170":1}}],["704405820024185",{"2":{"170":3}}],["704377648755",{"2":{"15":2}}],["700",{"2":{"14":1}}],["700454",{"2":{"6":1,"155":1,"156":1}}],["701141",{"2":{"6":1,"155":1,"156":1}}],["70",{"2":{"6":20,"39":1,"155":20,"156":20,"170":20}}],["738281",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["7",{"2":{"1":5,"6":5,"97":1,"136":1,"151":4,"152":4,"161":4,"172":1}}],["65533525026046",{"2":{"170":1}}],["655335250260467",{"2":{"170":3}}],["659942",{"2":{"6":1,"155":1,"156":1}}],["6area",{"2":{"44":2}}],["66",{"2":{"39":1}}],["668869",{"2":{"6":1,"155":1,"156":1}}],["64744840486518",{"2":{"172":3}}],["64",{"2":{"39":1,"151":2,"152":2}}],["646209",{"2":{"6":1,"155":1,"156":1}}],["629",{"2":{"171":1}}],["62",{"2":{"39":1}}],["624923",{"2":{"6":1,"155":1,"156":1}}],["61366192682",{"2":{"15":1}}],["614624",{"2":{"6":1,"155":1,"156":1}}],["605000000000004",{"2":{"151":2}}],["60",{"2":{"39":1,"151":2}}],["60000",{"2":{"15":3}}],["609817",{"2":{"6":1,"155":1,"156":1}}],["603637",{"2":{"6":2,"155":2,"156":2}}],["68",{"2":{"39":1}}],["682601",{"2":{"6":1,"155":1,"156":1}}],["683975",{"2":{"6":1,"155":1,"156":1}}],["69159119078359",{"2":{"172":3}}],["694274",{"2":{"6":1,"155":1,"156":1}}],["697021",{"2":{"6":1,"155":1,"156":1}}],["639343",{"2":{"6":1,"155":1,"156":1}}],["6",{"2":{"1":12,"3":4,"6":23,"51":3,"56":3,"97":1,"103":4,"136":3,"156":1,"161":9,"172":2}}],["51695367760999",{"2":{"172":1}}],["516953677609987",{"2":{"172":2}}],["51030066635026",{"2":{"170":4}}],["5e6",{"2":{"171":2}}],["55715336218991",{"2":{"172":1}}],["557153362189904",{"2":{"172":2}}],["55",{"2":{"170":3}}],["55494217175954",{"2":{"170":4}}],["57",{"2":{"151":4,"152":4}}],["57725",{"2":{"15":2}}],["5x",{"2":{"136":1}}],["563198",{"2":{"54":1}}],["56",{"2":{"39":1}}],["54",{"2":{"39":1,"170":19}}],["50",{"2":{"39":1,"151":4,"152":4,"170":3}}],["500000",{"2":{"171":1}}],["50000",{"2":{"15":1}}],["500",{"2":{"14":1,"171":1}}],["5d",{"2":{"25":1,"29":1}}],["52",{"2":{"39":1,"168":1}}],["52521",{"2":{"15":1}}],["52709",{"2":{"15":2}}],["594711",{"2":{"6":1,"155":1,"156":1}}],["590591",{"2":{"6":1,"155":1,"156":1}}],["595397",{"2":{"6":1,"155":1,"156":1}}],["535",{"2":{"151":4}}],["5355",{"2":{"151":2}}],["53333",{"2":{"15":4}}],["53",{"2":{"6":10,"151":2,"167":10}}],["58",{"2":{"39":1}}],["58059",{"2":{"15":2}}],["587158",{"2":{"6":2,"155":2,"156":2}}],["58375366067548",{"2":{"6":2,"53":1,"54":1}}],["584961",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["5",{"2":{"1":29,"3":4,"4":8,"6":84,"13":1,"39":1,"49":5,"50":8,"51":16,"56":18,"65":8,"69":8,"97":1,"103":4,"127":1,"136":2,"151":1,"152":1,"161":27,"170":32,"171":25,"178":1}}],["4983491639274692e6",{"2":{"171":2}}],["4986507085647392e6",{"2":{"171":2}}],["497205585568957e6",{"2":{"171":2}}],["4976022389592e6",{"2":{"171":2}}],["4957639801366436e6",{"2":{"171":2}}],["4940253560034204e6",{"2":{"171":2}}],["4946113281484335e6",{"2":{"171":2}}],["491990928929295e6",{"2":{"171":2}}],["4904357734399722e6",{"2":{"171":2}}],["4926709788709967e6",{"2":{"171":2}}],["4962554647802354e6",{"2":{"171":2}}],["499984780817334e6",{"2":{"171":2}}],["4997392479570867e6",{"2":{"171":2}}],["4991939151049731e6",{"2":{"171":2}}],["4994001399837343e6",{"2":{"171":2}}],["4998500087497458e6",{"2":{"171":2}}],["49",{"2":{"127":1}}],["43541888381864",{"2":{"172":3}}],["4326",{"2":{"171":2,"172":3}}],["43787",{"2":{"15":1}}],["439295815226",{"2":{"15":1}}],["434306",{"2":{"6":1,"155":1,"156":1}}],["4896621210021754e6",{"2":{"171":2}}],["489271",{"2":{"6":4,"167":4}}],["4870405593989636e6",{"2":{"171":2}}],["4879072738504685e6",{"2":{"171":2}}],["484003",{"2":{"126":4}}],["482551",{"2":{"126":4}}],["48268",{"2":{"15":1}}],["48",{"2":{"39":1}}],["48001",{"2":{"15":1}}],["45",{"2":{"39":2,"126":12,"170":2}}],["450",{"2":{"13":1}}],["458369",{"2":{"6":2,"155":2,"156":2}}],["42004014766201",{"2":{"170":1}}],["420040147662014",{"2":{"170":3}}],["4219350464667047e",{"2":{"170":4}}],["42",{"2":{"13":1,"14":1,"39":3}}],["426283",{"2":{"6":1,"155":1,"156":1}}],["400",{"2":{"39":3}}],["40000",{"2":{"15":1}}],["40",{"2":{"14":1,"39":3}}],["406224",{"2":{"6":1,"155":1,"156":1}}],["404504",{"2":{"6":1,"155":1,"156":1}}],["41544701408748197",{"2":{"170":1}}],["41",{"2":{"39":1,"172":20}}],["41878",{"2":{"15":1}}],["414248",{"2":{"6":1,"155":1,"156":1}}],["419406",{"2":{"6":1,"155":1,"156":1}}],["4493927459900552",{"2":{"170":1}}],["44121252392",{"2":{"15":1}}],["44",{"2":{"14":1,"39":2}}],["442901",{"2":{"6":1,"155":1,"156":1}}],["446339",{"2":{"6":1,"155":1,"156":1}}],["477985",{"2":{"126":4}}],["47",{"2":{"39":3}}],["473835",{"2":{"6":1,"155":1,"156":1}}],["472117",{"2":{"6":2,"155":2,"156":2}}],["46525251631344455",{"2":{"170":1}}],["465816",{"2":{"6":1,"155":1,"156":1}}],["46",{"2":{"39":3}}],["468107",{"2":{"6":1,"155":1,"156":1}}],["464547",{"2":{"6":6,"167":6}}],["4",{"2":{"1":11,"3":4,"6":15,"9":2,"13":2,"14":1,"36":1,"47":1,"72":1,"85":1,"89":1,"97":2,"116":1,"126":1,"136":3,"151":1,"158":1,"161":8,"168":1,"171":20,"174":2}}],["358421",{"2":{"168":1}}],["3585",{"2":{"151":1}}],["35",{"2":{"39":3}}],["354492",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["38042741557976",{"2":{"170":1}}],["380427415579764",{"2":{"170":3}}],["38",{"2":{"39":3}}],["3655999675063154",{"2":{"170":1}}],["36",{"2":{"39":2}}],["360",{"2":{"37":1}}],["36022",{"2":{"15":1}}],["327284472232776",{"2":{"172":3}}],["32610",{"2":{"171":3}}],["32",{"2":{"39":3}}],["377956",{"2":{"168":1}}],["37",{"2":{"39":5}}],["3497142366876638",{"2":{"170":1}}],["34",{"2":{"39":3}}],["31571636123306385",{"2":{"170":1}}],["31",{"2":{"39":2}}],["30151010318639",{"2":{"170":4}}],["30527612515520186",{"2":{"170":4}}],["300",{"2":{"65":1}}],["30",{"2":{"14":2,"39":3,"170":2}}],["3376428491230612",{"2":{"170":4}}],["3390",{"2":{"97":1}}],["33333333333",{"2":{"15":1}}],["333333333336",{"2":{"15":3}}],["33",{"2":{"6":20,"155":20,"156":20}}],["3d",{"2":{"4":1,"6":1,"40":2,"69":1,"136":1,"150":1}}],["3",{"2":{"1":13,"3":4,"5":1,"6":29,"14":2,"40":13,"43":6,"45":1,"51":6,"56":5,"68":1,"72":1,"85":1,"89":1,"97":2,"102":1,"116":1,"127":7,"136":3,"144":16,"151":4,"156":3,"158":2,"160":1,"161":11,"171":1,"172":1,"176":1}}],["39945867303846",{"2":{"172":3}}],["3995734698458635",{"2":{"170":1}}],["399918",{"2":{"6":2,"155":2,"156":2}}],["394759",{"2":{"6":1,"155":1,"156":1}}],["392466",{"2":{"6":1,"155":1,"156":1}}],["395332",{"2":{"6":1,"155":1,"156":1}}],["39",{"0":{"28":1},"2":{"0":1,"3":1,"4":5,"6":21,"7":1,"9":2,"17":2,"18":1,"19":1,"23":1,"27":1,"33":1,"34":1,"37":1,"38":1,"39":3,"40":2,"43":6,"44":3,"45":28,"47":1,"49":1,"50":1,"52":1,"53":4,"54":1,"57":2,"62":2,"66":4,"69":7,"74":1,"84":2,"91":2,"97":19,"103":1,"105":2,"108":2,"127":3,"129":2,"131":3,"132":1,"136":5,"139":6,"143":1,"151":6,"152":1,"154":1,"156":2,"164":2,"165":3,"166":6,"169":1,"170":6,"171":6,"172":4,"173":4,"174":5,"175":1,"177":1,"178":2}}],["2pi",{"2":{"170":1,"171":1,"172":1}}],["2nd",{"2":{"54":6}}],["2335447787454",{"2":{"172":1}}],["233544778745394",{"2":{"172":2}}],["23",{"2":{"39":3,"97":1}}],["23699059147",{"2":{"15":1}}],["28",{"2":{"39":2}}],["28083",{"2":{"15":2}}],["2658011835867806",{"2":{"170":1}}],["26745668457025",{"2":{"170":1}}],["267456684570245",{"2":{"170":3}}],["26",{"2":{"39":5,"97":2}}],["24989584635339165",{"2":{"170":1}}],["24279488312757858",{"2":{"170":4}}],["24",{"2":{"39":7,"97":1,"172":9}}],["274364",{"2":{"51":1,"53":1,"56":1}}],["274363",{"2":{"51":1,"53":1,"56":1}}],["27",{"2":{"39":2}}],["275543",{"2":{"6":6,"167":6}}],["2d",{"2":{"25":1,"29":1,"150":1}}],["2^",{"2":{"14":1}}],["2158594260436434",{"2":{"170":1}}],["215118",{"2":{"6":4,"167":4}}],["21664550952386064",{"2":{"170":4}}],["21",{"2":{"39":4,"97":2,"172":40}}],["21427",{"2":{"11":5}}],["295828190107045",{"2":{"172":1}}],["29582819010705",{"2":{"172":2}}],["299820032397223",{"2":{"170":1}}],["29",{"2":{"39":3,"168":1}}],["29th",{"0":{"8":1},"1":{"9":1,"10":1}}],["298",{"2":{"6":2,"152":2}}],["20340",{"2":{"174":1}}],["20682326747054",{"2":{"172":1}}],["206823267470536",{"2":{"172":2}}],["20093817218219",{"2":{"170":1}}],["200938172182195",{"2":{"170":3}}],["2018",{"2":{"97":1}}],["2017",{"2":{"6":1,"40":1}}],["20",{"2":{"39":3,"97":2,"170":60,"172":1}}],["2024",{"0":{"7":1,"8":1},"1":{"9":1,"10":1}}],["20th",{"0":{"7":1}}],["25",{"2":{"39":3,"71":1,"97":1,"115":1,"172":12}}],["258",{"2":{"11":1}}],["25px",{"2":{"6":2}}],["257223563`",{"2":{"152":1}}],["257223563",{"2":{"6":2,"152":1}}],["22",{"2":{"39":3,"97":1}}],["22168",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["224758",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["2",{"2":{"1":19,"3":9,"5":1,"6":50,"13":1,"14":1,"15":3,"25":2,"29":2,"34":1,"37":3,"39":6,"40":32,"43":2,"44":4,"45":10,"46":6,"47":7,"49":1,"50":2,"54":2,"56":1,"60":1,"61":1,"62":3,"63":1,"65":1,"66":3,"69":4,"72":2,"85":2,"86":2,"88":2,"89":3,"97":11,"116":2,"126":2,"127":23,"136":5,"145":1,"153":1,"156":5,"158":7,"159":7,"160":5,"161":18,"167":11,"168":1,"170":7,"171":6,"172":10,"173":1}}],["1st",{"2":{"54":6}}],["198232937815632",{"2":{"172":1}}],["19823293781563178",{"2":{"172":2}}],["1999466709331708",{"2":{"170":1}}],["1998",{"2":{"51":1,"53":1,"56":1}}],["19",{"2":{"39":2,"97":2}}],["16589608273778408",{"2":{"170":1}}],["165644",{"2":{"126":2}}],["16692537029320365",{"2":{"170":4}}],["166644",{"2":{"126":2}}],["163434",{"2":{"126":2}}],["169356",{"2":{"126":2}}],["164434",{"2":{"126":2}}],["16111",{"2":{"15":1}}],["16",{"2":{"13":1,"14":1,"39":2,"97":2}}],["180",{"2":{"37":1,"126":1}}],["18593721105",{"2":{"15":1}}],["18",{"2":{"13":1,"14":1,"39":3,"97":2}}],["1em",{"2":{"6":2}}],["1px",{"2":{"6":2}}],["11591614996189725",{"2":{"170":1}}],["11966707868197",{"2":{"170":1}}],["119667078681967",{"2":{"170":3}}],["110m",{"2":{"171":2}}],["110",{"2":{"61":1,"171":1}}],["1145",{"2":{"51":1,"53":1,"56":1}}],["114",{"2":{"7":1}}],["11",{"2":{"6":2,"15":2,"39":2,"97":1}}],["13309630561615",{"2":{"172":3}}],["13401805979",{"2":{"15":2}}],["13",{"2":{"6":3,"39":1,"51":1,"56":2,"97":1}}],["10n",{"2":{"171":1}}],["10832215707812454",{"2":{"170":4}}],["10^9",{"2":{"13":1}}],["1000000",{"2":{"171":1}}],["1000",{"2":{"13":2,"151":2,"171":1,"176":2}}],["100",{"2":{"6":2,"14":3,"60":1,"62":1,"127":2,"168":1}}],["10",{"2":{"6":12,"11":1,"33":1,"39":5,"49":4,"50":10,"51":2,"53":1,"56":2,"68":2,"97":3,"102":2,"152":1,"156":4,"170":1}}],["14182952335953",{"2":{"172":1}}],["14182952335952814",{"2":{"172":2}}],["14404531208901e",{"2":{"172":2}}],["1499775010124783",{"2":{"170":1}}],["1464721641710074",{"2":{"170":4}}],["14",{"2":{"3":1,"6":5,"39":2,"53":2,"54":2,"97":1,"99":1,"100":1,"151":2,"152":2}}],["15488729606723",{"2":{"172":3}}],["15",{"2":{"3":1,"6":4,"39":1,"49":1,"50":1,"53":1,"54":1,"97":1,"99":1,"100":1}}],["17893116483784577",{"2":{"172":2}}],["17289902010158",{"2":{"170":1}}],["172899020101585",{"2":{"170":3}}],["170356",{"2":{"126":2}}],["17",{"2":{"3":1,"6":3,"39":3,"53":1,"54":1,"97":2,"99":1,"100":1}}],["125",{"2":{"6":2,"53":1,"54":1}}],["127",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1,"171":1}}],["123",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["12636633117296836",{"2":{"172":2}}],["126",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["12",{"2":{"3":1,"6":3,"39":2,"53":1,"54":1,"97":1,"99":1,"100":1,"177":1}}],["124",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["1",{"2":{"1":8,"3":38,"6":63,"13":1,"14":4,"15":1,"33":7,"36":4,"37":15,"38":2,"39":11,"40":16,"43":4,"44":7,"45":72,"46":9,"47":15,"49":1,"50":10,"52":3,"54":9,"56":4,"57":11,"62":6,"65":7,"66":6,"69":16,"71":2,"72":6,"74":2,"75":2,"84":2,"85":8,"86":12,"88":2,"89":5,"97":38,"103":6,"105":4,"106":5,"108":1,"115":2,"116":6,"126":16,"127":27,"136":10,"141":12,"142":2,"145":9,"152":1,"153":4,"156":8,"158":15,"159":3,"160":15,"161":6,"167":9,"170":8,"171":44,"172":12,"173":1,"176":8,"177":3}}],["bx",{"2":{"126":2}}],["b2y",{"2":{"54":4}}],["b2x",{"2":{"54":4}}],["b2",{"2":{"54":47,"66":3,"103":6}}],["b``",{"2":{"52":1}}],["b`",{"2":{"52":3,"54":4,"57":4}}],["bigger",{"2":{"45":1}}],["bit",{"2":{"25":1,"29":1,"160":8,"170":2}}],["b1y",{"2":{"54":7}}],["b1x",{"2":{"54":7}}],["b1",{"2":{"45":8,"54":63,"103":6}}],["building",{"2":{"170":1}}],["build",{"2":{"45":13,"50":1,"51":1,"53":1,"56":1,"131":3,"132":1,"151":2,"159":1,"160":1}}],["built",{"2":{"17":1,"20":1}}],["buffers",{"2":{"127":1}}],["buffered",{"2":{"41":2}}],["buffering",{"2":{"40":1,"41":1}}],["buffer",{"0":{"41":1},"2":{"31":2,"41":5,"44":2,"45":1,"128":1}}],["but",{"2":{"1":2,"3":5,"4":3,"6":15,"18":1,"22":1,"25":1,"29":1,"33":1,"34":1,"37":1,"47":1,"54":2,"57":2,"62":2,"63":2,"69":4,"74":2,"97":1,"102":1,"103":5,"105":1,"106":1,"109":2,"110":1,"115":1,"126":1,"127":1,"128":1,"131":1,"134":1,"136":16,"147":1,"148":1,"153":1,"156":1,"164":1,"166":2,"171":2,"172":2,"174":1,"175":1,"176":1,"177":2}}],["b>",{"2":{"6":4}}],["bloat",{"2":{"172":1}}],["block",{"2":{"170":1}}],["blob",{"2":{"6":2,"156":1}}],["blue",{"2":{"14":1,"49":1,"68":2,"71":2,"88":2,"102":2,"115":2,"176":2}}],["black",{"2":{"6":2,"49":1,"171":1}}],["breaks",{"2":{"145":1}}],["break",{"2":{"45":3,"47":1,"52":2,"69":4,"97":11,"103":1,"127":6,"145":2}}],["brevity",{"2":{"40":1}}],["br>",{"2":{"6":2}}],["broadcasting",{"2":{"6":1,"40":1}}],["broken",{"2":{"3":1,"6":1,"86":1}}],["balancing",{"2":{"136":2}}],["barrier",{"2":{"136":1}}],["barycentric",{"0":{"5":1,"38":1,"40":1},"1":{"39":1,"40":1},"2":{"0":6,"5":10,"6":17,"9":1,"31":1,"38":9,"39":4,"40":52}}],["basicsgeoms",{"2":{"136":1}}],["basic",{"2":{"127":1}}],["base",{"2":{"31":4,"40":15,"41":1,"45":2,"127":6,"136":5,"149":1,"152":2,"153":1,"164":1,"166":3}}],["based",{"2":{"4":2,"6":3,"19":1,"34":2,"37":2,"39":2,"44":1,"47":1,"66":2,"69":1,"75":1,"89":1,"97":2,"103":1,"106":1,"116":1,"164":1,"174":1,"175":1,"176":1}}],["backs",{"2":{"50":4}}],["backwards",{"2":{"45":1,"52":1,"54":1,"57":1}}],["backing",{"2":{"45":1}}],["backend",{"2":{"41":2,"166":1}}],["back",{"2":{"6":1,"18":1,"22":1,"23":1,"50":4,"166":1}}],["b",{"2":{"3":2,"4":7,"6":13,"45":206,"47":9,"51":26,"52":18,"53":26,"54":77,"55":3,"56":27,"57":39,"69":29,"97":2,"103":22,"173":1}}],["box",{"2":{"46":2,"47":3,"176":1}}],["bounce",{"2":{"45":8,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1}}],["bouncings",{"2":{"45":1}}],["bouncing",{"2":{"45":13,"52":3,"54":4,"57":4}}],["bound",{"2":{"55":1}}],["bounding",{"2":{"45":1,"46":2,"47":3}}],["boundscheck",{"2":{"40":14}}],["bounds",{"2":{"6":1,"127":4}}],["boundaries",{"2":{"3":2,"6":2,"84":2,"88":1,"89":1,"97":2,"99":1,"100":1,"127":1}}],["boundary",{"2":{"3":7,"6":7,"65":1,"71":1,"72":1,"74":1,"75":3,"78":4,"85":2,"86":9,"89":2,"91":1,"92":6,"93":3,"97":18,"105":2,"106":4,"108":3,"109":5,"110":3,"111":3,"115":1,"116":3}}],["bold",{"2":{"41":1,"149":1,"152":1}}],["border",{"2":{"6":8}}],["both",{"2":{"3":5,"6":6,"45":2,"54":4,"56":1,"57":1,"62":2,"65":1,"69":3,"72":1,"86":4,"89":1,"97":2,"103":1,"110":1,"116":1,"151":1,"153":1}}],["booltype",{"2":{"136":3,"153":1,"165":3}}],["booleans",{"2":{"45":1,"97":2}}],["boolean",{"2":{"24":2,"45":1,"52":1,"54":1,"57":1,"136":1,"165":1,"175":1}}],["boolsastypes",{"0":{"24":1,"165":1},"2":{"153":2,"165":6}}],["bools",{"2":{"10":1}}],["bool",{"2":{"3":17,"4":14,"6":40,"45":3,"69":17,"72":1,"75":1,"85":2,"86":13,"89":1,"97":2,"100":1,"103":10,"106":2,"116":1,"126":7,"127":6,"153":2,"165":2,"167":5}}],["bypred",{"2":{"178":1}}],["by",{"0":{"79":1,"80":1,"120":1},"2":{"1":3,"3":2,"4":8,"6":31,"7":1,"17":1,"18":2,"19":1,"22":1,"24":1,"25":1,"29":1,"30":1,"33":1,"34":1,"36":1,"37":6,"40":4,"41":1,"43":5,"44":4,"45":14,"46":1,"47":6,"49":1,"50":6,"51":1,"53":1,"54":5,"56":4,"57":3,"63":2,"66":5,"69":8,"72":1,"74":1,"75":1,"79":2,"80":2,"81":1,"82":2,"84":1,"96":2,"97":10,"126":2,"127":4,"131":2,"136":7,"139":2,"143":1,"145":3,"147":1,"148":2,"149":1,"150":1,"152":3,"153":1,"154":1,"156":1,"157":1,"158":3,"159":1,"161":1,"170":1,"171":1,"172":1,"174":1,"175":2,"176":1,"177":2,"178":1}}],["berlin",{"2":{"177":1}}],["bearing",{"2":{"126":4}}],["beauty",{"2":{"9":1}}],["better",{"2":{"86":1,"136":2,"156":1}}],["between",{"2":{"4":4,"6":18,"23":1,"37":2,"40":13,"45":1,"47":18,"51":1,"52":4,"53":1,"54":11,"56":2,"57":4,"66":8,"69":1,"97":4,"103":4,"127":1,"152":3,"153":1,"157":2,"158":2,"159":1,"171":1,"175":2,"176":1}}],["been",{"2":{"52":1,"127":1,"129":2,"165":1}}],["because",{"2":{"45":1,"63":1,"129":1,"163":1}}],["become",{"2":{"22":1}}],["being",{"2":{"37":1,"54":1,"97":1,"103":1,"143":1}}],["behind",{"2":{"25":1,"29":1,"30":1,"39":1,"129":1}}],["behaviour",{"2":{"6":1,"18":1,"23":1,"156":1}}],["best",{"2":{"19":1,"136":2,"156":1}}],["beware",{"2":{"18":1}}],["benchmarking",{"2":{"152":1,"156":1}}],["benchmarkgroup",{"2":{"152":2,"156":3}}],["benchmark",{"0":{"152":1,"156":1},"2":{"152":1,"156":1}}],["benchmarktools",{"2":{"13":1,"152":1,"156":1}}],["benchmarks",{"2":{"9":2}}],["beginning",{"2":{"47":1,"170":1}}],["begin+1",{"2":{"40":5}}],["begin",{"2":{"9":1,"40":7,"136":2,"157":1,"174":1}}],["before",{"2":{"6":4,"40":1,"51":1,"53":1,"54":1,"56":1,"156":1,"171":1}}],["below",{"2":{"6":2,"17":1,"41":1,"138":1,"158":1,"159":1,"160":1,"174":1}}],["be",{"2":{"1":7,"3":3,"4":11,"5":4,"6":66,"7":1,"9":1,"13":2,"20":3,"23":2,"24":1,"25":3,"29":3,"30":1,"34":7,"37":8,"38":2,"39":1,"40":10,"41":2,"43":1,"44":3,"45":14,"46":1,"47":2,"50":1,"51":7,"52":4,"53":7,"54":12,"56":6,"57":5,"63":6,"65":2,"66":4,"69":15,"75":6,"84":2,"85":1,"89":6,"97":21,"103":2,"106":6,"116":6,"118":1,"119":1,"120":1,"121":1,"126":2,"127":1,"131":2,"134":2,"135":2,"136":12,"137":1,"138":3,"139":4,"141":1,"142":1,"143":2,"145":2,"146":1,"148":3,"149":1,"150":1,"152":8,"153":2,"156":10,"158":1,"160":3,"161":1,"165":1,"166":2,"170":2,"172":1,"175":4}}],["human",{"2":{"174":1}}],["hull`",{"2":{"63":2}}],["hulls",{"2":{"6":1,"58":1,"63":1}}],["hull",{"0":{"58":1,"60":1,"61":1},"1":{"59":1,"60":1,"61":1,"62":1,"63":1},"2":{"0":1,"6":8,"31":2,"58":2,"60":4,"61":1,"62":10,"63":15}}],["hypot",{"2":{"153":1}}],["h2",{"2":{"97":6}}],["h1",{"2":{"97":11}}],["hm",{"2":{"39":2}}],["h",{"2":{"37":2,"45":2,"57":8}}],["href=",{"2":{"6":2}}],["https",{"2":{"6":2,"51":1,"53":1,"54":1,"56":1,"63":1,"97":2,"158":1}}],["high",{"2":{"174":1}}],["highest",{"2":{"172":1}}],["higher",{"2":{"6":1,"63":1}}],["hit",{"2":{"45":1,"136":5}}],["hits",{"2":{"18":1}}],["hidedecorations",{"2":{"39":2}}],["hinter",{"2":{"31":3,"41":1,"149":1,"152":1}}],["hint",{"2":{"31":3,"41":1,"152":1}}],["hinge=2",{"2":{"53":1}}],["hinge`",{"2":{"53":1}}],["hinge",{"2":{"6":1,"45":1,"54":13,"97":15}}],["hist",{"2":{"13":1}}],["histogram",{"2":{"13":1}}],["hcat",{"2":{"6":1}}],["heavily",{"2":{"136":1}}],["heatmap",{"2":{"13":5,"14":6,"39":2,"65":2,"127":1}}],["help",{"2":{"165":1}}],["helpers",{"0":{"45":1},"2":{"86":1,"103":1}}],["helper",{"0":{"52":1,"54":1,"57":1},"2":{"44":1,"45":1,"50":1}}],["helps",{"2":{"28":1}}],["held",{"2":{"1":1,"6":1,"136":1}}],["here",{"2":{"6":2,"9":1,"13":1,"14":1,"20":1,"40":1,"54":1,"63":2,"86":1,"127":2,"136":5,"141":1,"152":1,"171":2,"175":2,"176":3}}],["hours",{"2":{"177":1}}],["hood",{"2":{"174":1}}],["hook",{"2":{"6":1,"156":1}}],["home",{"2":{"171":1}}],["horizontal",{"2":{"47":1,"54":1,"127":1,"156":1}}],["hormann",{"0":{"52":1,"54":1,"57":1},"2":{"6":2,"40":2,"45":3,"50":2,"51":1,"53":1,"56":1}}],["how",{"0":{"30":1},"2":{"6":2,"30":2,"33":1,"40":1,"45":1,"54":1,"69":1,"127":2,"131":1,"136":1,"147":1,"156":1,"171":1,"174":1,"175":2,"176":2,"177":1,"178":1}}],["however",{"2":{"3":1,"6":2,"37":1,"40":1,"44":1,"45":1,"54":1,"62":1,"65":1,"69":1,"71":1,"85":1,"143":1}}],["hole",{"2":{"34":3,"37":1,"39":2,"40":9,"44":4,"45":60,"47":3,"51":6,"53":2,"57":15,"66":3,"78":1,"79":1,"80":1,"97":33,"127":5,"142":2,"170":1}}],["holes=",{"2":{"45":1}}],["holes",{"2":{"4":3,"5":1,"6":4,"9":2,"33":1,"37":2,"40":2,"44":1,"45":19,"50":4,"51":2,"53":2,"56":6,"57":29,"66":3,"69":3,"94":1,"97":11,"118":1,"127":17,"142":2,"170":4}}],["holding",{"2":{"6":1,"127":1,"136":2}}],["holds",{"2":{"6":1,"45":1,"154":1,"164":2}}],["hold",{"2":{"6":1,"127":1,"156":1,"165":1,"174":1}}],["halign",{"2":{"156":1}}],["half",{"2":{"46":2}}],["hail",{"2":{"142":1}}],["handling",{"0":{"149":1},"2":{"129":1}}],["handler",{"2":{"41":1,"149":1}}],["handle",{"2":{"31":1,"126":1,"134":2,"136":1,"171":1}}],["handled",{"2":{"18":1}}],["hao",{"2":{"97":1}}],["had",{"2":{"51":1,"53":1,"69":1,"151":1,"165":1}}],["happens",{"2":{"45":1}}],["happen",{"2":{"24":1}}],["have",{"2":{"3":3,"4":9,"6":17,"19":1,"23":1,"34":3,"37":2,"40":6,"41":1,"45":4,"54":1,"63":2,"65":1,"66":2,"69":10,"97":5,"102":1,"103":3,"105":1,"106":1,"127":1,"128":1,"129":2,"131":2,"135":1,"136":4,"156":1,"158":1,"165":1,"166":1,"170":1,"171":1,"175":1,"176":1,"177":3}}],["haskey",{"2":{"166":1}}],["hash",{"2":{"127":1}}],["hasn",{"2":{"127":1}}],["hassle",{"2":{"1":1,"6":1,"161":1}}],["has",{"2":{"1":4,"6":4,"33":2,"36":1,"40":2,"45":2,"52":2,"54":1,"57":1,"65":1,"66":1,"69":11,"108":1,"126":1,"136":4,"140":1,"151":2,"160":1,"171":1}}],["xticklabelsvisible",{"2":{"171":1}}],["xticklabelrotation",{"2":{"13":2}}],["xoffset",{"2":{"170":4,"172":1}}],["x=x",{"2":{"167":1}}],["x`",{"2":{"136":1}}],["xvec",{"2":{"127":4}}],["xbounds",{"2":{"127":4}}],["xhalf",{"2":{"127":2}}],["xlast",{"2":{"66":3}}],["xfirst",{"2":{"66":5}}],["x0",{"2":{"66":5}}],["xn",{"2":{"47":4}}],["xind+1",{"2":{"127":1}}],["xind",{"2":{"127":2}}],["xinterior",{"2":{"44":2}}],["xi−xi−1",{"2":{"6":1}}],["xcentroid",{"2":{"44":13}}],["xrange",{"2":{"39":3,"65":2}}],["xautolimits",{"2":{"39":2}}],["xp2",{"2":{"37":5}}],["x2",{"2":{"6":3,"40":4,"44":2,"47":18,"66":8,"86":10,"97":5,"103":4,"127":5,"153":6,"167":2}}],["x26",{"2":{"6":4,"34":6,"37":2,"40":1,"41":4,"45":58,"47":36,"51":4,"52":4,"54":24,"57":2,"66":3,"69":14,"81":2,"82":2,"86":48,"95":2,"96":2,"97":170,"103":22,"108":2,"112":2,"113":2,"122":2,"123":2,"126":4,"127":12,"138":2,"145":6,"149":2,"152":2,"158":10,"159":2,"167":4,"175":1}}],["x1",{"2":{"6":4,"40":3,"44":2,"47":22,"66":8,"86":11,"97":6,"103":5,"127":5,"153":7,"167":2}}],["xs",{"2":{"6":3,"47":4,"127":30,"167":4}}],["xmax",{"2":{"6":1,"46":2,"47":48}}],["xmin",{"2":{"6":1,"46":2,"47":49}}],["x3c",{"2":{"5":1,"6":36,"31":1,"34":2,"37":4,"40":66,"45":17,"47":11,"50":3,"51":1,"53":1,"54":6,"56":1,"65":1,"66":13,"69":2,"86":33,"97":13,"103":10,"126":1,"127":4,"131":2,"136":20,"139":3,"142":2,"145":5,"152":2,"157":2,"158":6,"159":3,"160":9,"164":4,"165":2,"178":1}}],["xy`",{"2":{"148":1}}],["xy",{"2":{"1":4,"40":1,"148":3}}],["x",{"2":{"1":4,"4":1,"6":6,"7":1,"9":5,"11":6,"13":11,"14":10,"15":4,"34":2,"37":9,"39":8,"43":1,"44":10,"45":21,"46":1,"47":8,"50":6,"52":9,"54":18,"57":9,"65":2,"66":7,"69":3,"86":21,"97":16,"103":7,"126":11,"127":2,"129":2,"136":17,"138":2,"146":2,"147":4,"148":1,"153":2,"156":2,"158":2,"160":1,"161":2,"162":2,"165":4,"167":33,"170":6,"171":2,"172":2,"175":1,"177":2}}],["=>",{"2":{"136":2}}],["=float64",{"2":{"44":3,"53":1,"56":1}}],["=false",{"2":{"37":1}}],["===",{"2":{"86":8,"126":4}}],["==",{"2":{"9":1,"19":1,"34":2,"37":4,"40":9,"41":2,"44":1,"45":34,"47":30,"52":1,"54":20,"56":2,"57":1,"61":1,"65":1,"69":16,"97":44,"103":2,"126":3,"127":18,"136":1,"138":1,"142":1,"145":1,"149":1,"152":2,"156":1,"160":3}}],["=",{"2":{"1":5,"3":17,"4":7,"5":2,"6":62,"11":1,"13":19,"14":33,"15":18,"31":4,"33":6,"34":25,"36":4,"37":56,"39":35,"40":110,"41":3,"43":6,"44":36,"45":324,"46":6,"47":96,"49":7,"50":29,"51":21,"52":30,"53":18,"54":143,"56":21,"57":78,"60":6,"61":4,"62":14,"63":4,"65":15,"66":52,"68":7,"69":40,"71":7,"72":3,"74":4,"75":23,"76":3,"77":7,"78":14,"79":14,"80":4,"81":2,"82":2,"84":5,"85":3,"86":57,"88":7,"89":18,"90":3,"91":11,"92":17,"93":9,"94":3,"95":2,"96":2,"97":189,"99":3,"100":3,"102":7,"103":40,"105":3,"106":22,"107":3,"108":9,"109":14,"110":10,"111":6,"112":2,"113":2,"115":7,"116":22,"117":3,"118":11,"119":14,"120":14,"121":4,"122":2,"123":2,"126":32,"127":110,"129":1,"133":4,"136":93,"138":9,"141":2,"142":4,"144":3,"145":30,"146":1,"149":2,"151":16,"152":21,"153":18,"154":2,"155":5,"156":60,"157":11,"158":49,"159":7,"160":43,"161":2,"162":1,"164":6,"165":2,"166":3,"167":44,"168":7,"170":45,"171":19,"172":13,"173":3,"174":4,"176":12,"177":6,"178":2}}],["utm",{"2":{"171":1}}],["utility",{"0":{"167":1},"2":{"40":1,"136":2}}],["utils",{"0":{"160":1},"2":{"31":1}}],["u2",{"2":{"97":4}}],["u1",{"2":{"97":4}}],["update",{"2":{"45":6,"127":10}}],["updated",{"2":{"45":6,"136":3}}],["updates",{"2":{"40":1}}],["up",{"2":{"45":2,"54":1,"97":1,"110":1,"134":1,"144":1,"158":2,"170":2}}],["upper",{"2":{"6":1,"127":1,"176":1}}],["uv",{"2":{"40":1}}],["u>",{"2":{"6":2}}],["u>geometryops",{"2":{"6":2}}],["usage",{"2":{"177":1}}],["usa",{"0":{"61":1},"2":{"61":4,"156":15,"177":3}}],["us",{"2":{"34":1,"63":1,"171":1,"177":1}}],["usually",{"2":{"6":1,"30":2,"58":1,"131":1,"136":1,"174":1}}],["usual",{"2":{"6":1,"139":1,"142":1}}],["usecases",{"2":{"25":1,"29":1}}],["uses",{"2":{"6":2,"58":1,"63":1,"97":1,"148":1,"152":1,"156":1,"174":1}}],["users",{"2":{"31":1,"129":1,"143":1}}],["user",{"2":{"6":12,"23":1,"44":1,"51":3,"53":3,"56":3,"157":1,"158":1,"159":1,"175":1}}],["useful",{"2":{"6":10,"40":1,"127":1,"150":1,"153":1,"156":2,"166":1}}],["used",{"2":{"1":1,"5":1,"6":8,"34":1,"37":1,"38":1,"40":1,"44":2,"45":7,"47":1,"50":1,"54":1,"65":1,"66":1,"69":1,"103":1,"127":2,"131":1,"136":3,"140":1,"153":1,"156":1,"158":2,"163":2,"164":1,"171":1,"174":1,"175":2,"176":1}}],["use",{"2":{"1":2,"4":1,"5":1,"6":10,"11":1,"20":1,"23":1,"30":1,"40":1,"45":1,"57":1,"63":2,"86":2,"103":1,"127":1,"128":1,"133":1,"136":7,"142":1,"147":1,"151":1,"153":1,"156":1,"158":2,"166":3,"170":1,"174":1,"175":2,"178":2}}],["using",{"0":{"171":1},"2":{"1":4,"4":1,"5":3,"6":12,"11":4,"13":4,"14":1,"15":1,"31":6,"33":2,"34":2,"36":1,"37":1,"39":4,"40":7,"41":3,"43":2,"44":1,"45":5,"46":2,"47":1,"49":2,"50":1,"52":3,"54":4,"55":1,"57":3,"60":1,"61":2,"62":1,"63":2,"65":2,"66":2,"68":2,"69":1,"71":2,"72":1,"74":2,"75":1,"82":1,"84":2,"85":1,"86":1,"88":2,"89":1,"96":1,"97":1,"99":2,"100":1,"102":2,"103":1,"105":2,"106":1,"113":1,"115":2,"116":1,"123":1,"126":1,"127":5,"128":1,"129":2,"134":1,"136":4,"139":1,"142":1,"145":1,"146":2,"147":1,"148":1,"149":3,"151":1,"152":5,"153":1,"156":3,"158":1,"160":1,"161":4,"162":2,"166":2,"167":1,"168":1,"169":4,"170":1,"172":1,"173":2,"175":1,"176":4,"177":2}}],["until",{"2":{"127":3,"134":1,"158":1,"166":1}}],["unprocessed",{"2":{"45":1}}],["unknown",{"2":{"45":4,"47":15}}],["unknown=3",{"2":{"45":1}}],["unmatched",{"2":{"45":9,"47":26}}],["undef",{"2":{"37":2,"45":1,"157":1,"158":1,"160":2,"167":2}}],["understand",{"2":{"163":1}}],["under",{"2":{"34":2,"174":1}}],["undergrad",{"2":{"9":1}}],["unless",{"2":{"22":1,"45":1,"52":2,"54":2,"57":2}}],["unlike",{"2":{"18":1,"163":1}}],["unstable",{"2":{"13":1,"136":1,"165":1}}],["unneeded",{"2":{"6":3,"45":1,"51":2,"53":2,"56":2}}],["unnecessary",{"2":{"6":3,"127":1,"157":1,"158":1,"159":1}}],["universal",{"2":{"171":1}}],["united",{"2":{"156":1}}],["unify",{"2":{"25":1,"29":1}}],["unique",{"2":{"6":2,"54":3,"139":2,"145":2}}],["unioning",{"2":{"57":1}}],["unionintersectingpolygons",{"2":{"0":1,"6":8,"51":1,"52":2,"53":1,"54":2,"56":1,"57":2,"139":2,"143":2,"144":1,"145":4}}],["unions",{"0":{"57":1},"2":{"18":1,"164":1}}],["union",{"0":{"56":1},"2":{"0":1,"1":2,"3":2,"4":4,"6":22,"11":3,"23":2,"31":1,"34":1,"37":2,"40":1,"44":4,"45":7,"47":1,"53":2,"56":18,"57":30,"66":1,"69":8,"77":2,"78":4,"79":1,"81":2,"82":1,"91":2,"92":6,"95":2,"96":1,"103":4,"108":2,"109":4,"110":1,"112":2,"113":1,"118":2,"119":4,"120":1,"122":2,"123":1,"126":1,"127":5,"129":1,"134":3,"136":6,"139":1,"143":1,"145":9,"153":4,"156":2,"157":3,"158":3,"159":3,"164":4,"167":1}}],["unchanged",{"2":{"1":1,"6":2,"136":1,"156":1}}],["unwrap",{"2":{"0":1,"6":3,"131":1,"136":16}}],["nselected",{"2":{"160":3}}],["nmax",{"2":{"160":2}}],["nice",{"2":{"158":1}}],["null",{"2":{"152":1}}],["numeric",{"2":{"11":1}}],["numbers",{"2":{"6":1,"7":1,"38":2,"40":1,"152":1}}],["number=6",{"2":{"6":1,"155":1,"156":1}}],["number",{"2":{"6":11,"40":1,"45":2,"50":1,"58":1,"62":1,"65":1,"69":2,"97":2,"150":1,"151":1,"153":1,"156":2,"157":4,"158":7,"159":4,"160":12}}],["n+1",{"2":{"141":1}}],["nfeature",{"2":{"136":2}}],["nkeys",{"2":{"127":8}}],["nc",{"2":{"97":13}}],["ncoord",{"2":{"69":2}}],["nl",{"2":{"97":11}}],["nhole",{"2":{"45":2,"51":2,"53":2,"56":2,"57":1,"69":2}}],["nbpts",{"2":{"45":2}}],["nbsp",{"2":{"1":4,"3":9,"4":8,"5":3,"6":89,"131":3,"138":1,"139":4}}],["ngeom",{"2":{"44":1,"136":3,"167":1}}],["nt",{"2":{"166":2}}],["ntasks",{"2":{"136":6}}],["nthreads",{"2":{"136":3}}],["nthe",{"2":{"41":1,"149":1,"152":1}}],["ntuple",{"2":{"40":3,"153":1}}],["n2",{"2":{"40":8,"69":10}}],["n1",{"2":{"40":8,"69":9}}],["np2",{"2":{"86":4}}],["npolygon",{"2":{"52":1,"69":3,"145":2}}],["npoints",{"2":{"37":6,"45":5,"97":3,"152":6,"158":7}}],["npoint",{"2":{"6":1,"33":1,"34":1,"37":2,"47":2,"62":2,"66":1,"69":6,"86":6,"97":6,"108":1,"126":2,"142":1,"152":3,"153":1,"156":14,"160":1,"167":13}}],["npts",{"2":{"45":6,"158":3}}],["np",{"2":{"34":2,"66":5}}],["n",{"2":{"6":1,"9":1,"38":2,"40":36,"41":2,"45":51,"50":10,"56":4,"57":4,"97":11,"108":2,"126":6,"127":5,"141":1,"145":25,"149":2,"152":2,"153":3,"156":2,"160":7,"167":32}}],["naive",{"2":{"55":1}}],["napts",{"2":{"45":3}}],["navigate",{"0":{"30":1}}],["natearth2",{"2":{"171":1}}],["natural",{"2":{"156":1,"171":2,"175":1}}],["naturalearth",{"2":{"11":2,"61":2,"156":3,"171":1}}],["nature",{"2":{"127":1}}],["native",{"2":{"6":1,"128":1,"166":4,"174":1}}],["nan",{"2":{"9":1}}],["named",{"2":{"136":1}}],["namedtuple",{"2":{"22":2,"136":2,"166":2}}],["name",{"2":{"6":1,"31":2,"156":1,"166":1,"173":1,"174":2,"177":1}}],["names",{"2":{"6":1,"31":3,"136":6,"166":1}}],["nodestatus",{"2":{"127":6}}],["nodes",{"2":{"45":1,"127":4}}],["node",{"2":{"45":26,"127":17}}],["north",{"2":{"47":12}}],["nor",{"2":{"41":1,"149":1,"152":1}}],["normalized",{"2":{"40":1}}],["normalize",{"2":{"40":1}}],["norm",{"2":{"6":1,"40":22}}],["now",{"2":{"6":1,"13":1,"25":1,"29":1,"33":1,"39":2,"40":4,"41":1,"45":1,"50":1,"57":1,"58":1,"66":1,"126":1,"127":2,"144":1,"150":1,"151":3,"152":1,"156":1,"170":5,"171":6,"172":2,"173":1,"174":3,"176":2}}],["no",{"2":{"6":6,"37":1,"40":2,"45":4,"51":1,"52":1,"53":1,"54":14,"56":1,"69":2,"75":3,"89":3,"97":2,"106":2,"108":1,"110":1,"111":2,"116":2,"118":1,"119":3,"120":3,"121":1,"127":2,"128":1,"129":1,"136":3,"150":1,"152":2,"153":1,"156":1,"166":1,"174":1}}],["nonzero",{"2":{"153":1}}],["none",{"2":{"6":4,"45":1,"50":1,"51":1,"53":1,"56":1,"57":1,"86":4,"88":1}}],["nondimensional",{"2":{"6":1,"152":1}}],["nonintersecting",{"2":{"6":1,"23":1,"139":1,"145":1}}],["non",{"2":{"3":2,"6":2,"22":1,"38":2,"45":15,"51":2,"52":1,"53":1,"54":4,"56":1,"57":2,"65":1,"103":2,"110":1,"134":1,"165":1}}],["note",{"2":{"4":4,"6":11,"19":1,"27":1,"34":2,"37":1,"40":1,"43":2,"44":2,"45":3,"47":1,"50":2,"52":3,"54":5,"57":3,"63":1,"66":1,"69":5,"97":1,"102":1,"103":1,"148":1,"153":1,"157":1,"158":2,"159":1,"165":1,"171":2,"172":1}}],["not",{"0":{"128":1},"2":{"1":2,"3":8,"4":1,"6":18,"18":1,"19":1,"22":1,"24":1,"31":1,"34":1,"37":4,"40":4,"41":1,"43":1,"45":18,"50":1,"53":1,"54":7,"57":3,"62":1,"68":2,"69":4,"71":2,"72":1,"74":2,"75":2,"84":1,"85":2,"89":3,"91":5,"92":3,"93":2,"94":2,"97":5,"102":1,"103":2,"106":1,"115":2,"116":2,"118":1,"126":4,"127":2,"128":1,"134":1,"135":1,"136":11,"138":2,"141":2,"144":3,"147":1,"148":1,"149":1,"150":1,"152":2,"153":1,"163":1,"164":1,"165":1,"166":2,"171":1,"172":1,"175":1}}],["nothing`",{"2":{"52":2,"54":2,"57":2}}],["nothing",{"2":{"1":34,"4":1,"6":42,"15":3,"45":4,"50":1,"52":2,"53":1,"54":2,"57":2,"69":1,"97":1,"126":9,"127":3,"136":8,"138":1,"141":24,"144":60,"149":1,"153":1,"156":2,"157":6,"158":6,"159":6,"160":1,"161":32,"167":7,"170":252,"171":16,"172":20}}],["ne",{"2":{"171":2}}],["net",{"2":{"138":2}}],["ness",{"2":{"136":1}}],["nesting",{"2":{"134":2}}],["nestedloopfast",{"2":{"178":1}}],["nested",{"2":{"1":2,"4":1,"6":5,"18":1,"37":1,"134":2,"136":4,"156":1,"162":1}}],["never",{"2":{"134":1,"157":1}}],["neumann",{"2":{"127":1}}],["neither",{"2":{"57":1}}],["neighborhood",{"2":{"127":2}}],["neighbor",{"2":{"45":27}}],["neighboring",{"2":{"6":6,"45":1,"156":1,"157":1,"158":1,"159":2}}],["nearly",{"2":{"174":1}}],["nearest",{"2":{"45":1,"54":2}}],["neatly",{"2":{"17":1}}],["nedge",{"2":{"45":2,"167":13}}],["nextnode",{"2":{"127":27}}],["nextnodes",{"2":{"127":6}}],["next",{"2":{"44":1,"45":81,"47":3,"50":4,"97":14,"127":3,"145":13,"158":5}}],["necessarily",{"2":{"6":1,"126":1,"147":1}}],["necessary",{"2":{"6":1,"134":1,"156":1}}],["newfeature",{"2":{"136":2}}],["newnodes",{"2":{"127":2}}],["new",{"2":{"6":1,"41":1,"45":58,"47":9,"51":3,"52":1,"57":16,"97":2,"127":4,"135":1,"136":19,"138":2,"139":1,"143":1,"145":19,"153":8,"157":1,"158":2,"159":1,"172":1,"173":1,"177":1}}],["negative",{"2":{"4":3,"6":3,"33":2,"34":1,"38":2,"65":2,"66":3}}],["needs",{"2":{"44":1}}],["needing",{"2":{"4":1,"6":1,"17":1,"146":1}}],["need",{"2":{"1":1,"3":1,"4":2,"5":1,"6":5,"40":2,"43":1,"45":2,"52":1,"62":1,"69":4,"84":1,"85":1,"97":1,"127":2,"129":1,"136":1,"146":1,"160":1,"161":1,"171":1,"172":2,"178":2}}],["needed",{"2":{"1":2,"6":4,"37":1,"40":1,"45":4,"47":1,"51":1,"53":1,"56":1,"66":2,"97":5,"127":1,"136":2,"138":1,"148":3,"172":1}}],["gdal",{"2":{"174":1}}],["gml",{"2":{"174":1}}],["gpkg",{"2":{"174":3}}],["global",{"2":{"171":1}}],["gft",{"2":{"169":1,"171":2}}],["gadm",{"2":{"177":4}}],["ga",{"2":{"168":2,"171":3}}],["gaps",{"2":{"127":1}}],["gc",{"2":{"138":6}}],["g",{"2":{"34":3,"37":3,"41":1,"44":3,"47":3,"66":6,"134":1,"136":6,"156":2,"167":2,"174":1}}],["gb",{"2":{"31":1,"136":10}}],["guarantee",{"2":{"19":1,"28":1}}],["guaranteed",{"2":{"1":1,"6":1,"37":1,"136":1}}],["grand",{"2":{"177":1}}],["grained",{"2":{"151":1}}],["grahamscanmethod",{"2":{"63":1}}],["graphics",{"2":{"6":1,"40":1}}],["great",{"2":{"170":1,"172":1,"174":1}}],["greater",{"2":{"6":1,"126":1,"153":1}}],["greiner",{"0":{"52":1,"54":1,"57":1},"2":{"45":3,"50":2,"51":1,"53":1,"56":1}}],["green",{"2":{"14":1,"171":1}}],["grouped",{"2":{"170":1}}],["groups",{"2":{"6":1,"127":1}}],["grouping",{"2":{"1":1,"6":1,"136":2}}],["grid",{"2":{"6":1,"39":1,"47":4}}],["g2",{"2":{"3":5,"6":5,"72":4,"75":12,"76":6,"77":9,"78":6,"79":6,"80":3,"81":4,"82":2,"85":3,"86":21,"89":10,"90":6,"91":10,"92":8,"93":4,"94":2,"95":4,"96":2,"106":10,"107":6,"108":10,"109":6,"110":5,"111":4,"112":4,"113":2,"116":10,"117":6,"118":9,"119":6,"120":6,"121":3,"122":4,"123":2}}],["g1",{"2":{"3":5,"4":1,"6":6,"72":4,"75":12,"76":6,"77":9,"78":6,"79":6,"80":3,"81":2,"82":4,"85":3,"86":21,"89":9,"90":6,"91":10,"92":8,"93":4,"94":2,"95":2,"96":4,"106":10,"107":6,"108":9,"109":6,"110":5,"111":4,"112":2,"113":4,"116":10,"117":6,"118":9,"119":6,"120":6,"121":3,"122":2,"123":4}}],["generic",{"2":{"22":1}}],["generation",{"2":{"156":2}}],["generated",{"2":{"31":1,"34":1,"37":1,"40":1,"41":1,"44":1,"45":1,"47":1,"50":1,"52":1,"54":1,"55":1,"57":1,"63":1,"66":1,"69":1,"72":1,"82":1,"85":1,"86":1,"96":1,"97":1,"100":1,"103":1,"113":1,"123":1,"126":1,"127":1,"128":1,"136":1,"139":1,"142":1,"145":1,"146":1,"147":1,"149":1,"153":1,"156":1,"160":1,"161":1,"162":1,"166":1,"167":1,"176":1}}],["generate",{"2":{"7":1,"13":2,"156":1,"176":2}}],["generalization",{"2":{"38":1}}],["generalized",{"2":{"6":1,"38":3,"40":1}}],["generalise",{"2":{"6":4,"156":1}}],["generally",{"2":{"6":2,"166":3}}],["general",{"0":{"2":1,"4":1},"1":{"3":1,"4":1},"2":{"18":1,"20":1,"25":1,"29":1,"129":1,"149":1}}],["getfeature",{"2":{"136":5,"167":5}}],["getcolumn",{"2":{"136":4}}],["getgeom",{"2":{"81":1,"82":1,"95":1,"96":1,"103":2,"112":1,"113":1,"122":1,"123":1,"136":8,"156":3,"167":6}}],["getring",{"2":{"45":1}}],["getindex",{"2":{"40":2}}],["gethole",{"2":{"34":1,"37":1,"44":1,"45":4,"47":1,"50":1,"51":2,"53":2,"57":6,"66":1,"69":2,"97":5,"142":1,"170":1}}],["getexterior",{"2":{"34":1,"37":1,"40":1,"44":1,"45":3,"47":1,"50":1,"51":2,"53":2,"56":3,"57":6,"66":1,"69":2,"97":5,"126":1,"127":1,"142":1,"170":1}}],["getpolygon",{"2":{"52":3,"54":2,"57":2,"69":3}}],["getpoint",{"2":{"33":2,"34":1,"36":1,"37":5,"40":1,"43":1,"44":6,"45":3,"46":2,"47":3,"49":3,"65":1,"66":6,"68":4,"69":13,"71":4,"74":1,"84":1,"86":7,"88":4,"97":28,"99":2,"102":4,"103":2,"105":2,"108":2,"115":4,"126":5,"142":3,"151":4,"153":2,"160":1,"167":3,"170":2}}],["getproperty",{"2":{"13":2,"14":1}}],["get",{"2":{"6":1,"13":1,"33":1,"41":1,"45":9,"51":1,"52":1,"53":1,"54":2,"56":2,"63":2,"127":4,"136":4,"149":1,"152":3,"156":1,"157":1,"159":1,"160":2,"166":5,"167":1,"170":2,"177":2}}],["geoparquet",{"2":{"174":4}}],["geopoly1",{"2":{"172":1,"173":1}}],["geopoly2",{"2":{"172":1,"173":1}}],["geographic",{"2":{"171":1,"174":1}}],["geographiclib",{"2":{"6":1,"152":1}}],["geoaxis",{"2":{"168":1,"171":4}}],["geointeface",{"2":{"134":1}}],["geointerace",{"2":{"22":1}}],["geointerfacemakie",{"2":{"155":1,"176":1,"177":1}}],["geointerface",{"0":{"28":1},"2":{"1":20,"3":9,"4":2,"6":41,"11":1,"13":1,"14":1,"15":1,"22":3,"25":1,"28":1,"29":1,"31":7,"33":1,"34":1,"36":1,"37":1,"40":23,"43":1,"44":1,"45":1,"46":1,"47":1,"49":1,"50":1,"51":1,"53":1,"54":1,"56":1,"60":1,"61":1,"62":1,"65":1,"66":11,"68":1,"69":2,"71":1,"72":2,"74":1,"75":2,"84":1,"85":2,"86":1,"88":1,"89":3,"99":1,"100":2,"102":1,"103":2,"105":1,"106":2,"115":1,"116":2,"126":5,"127":1,"131":3,"134":3,"136":7,"138":1,"139":1,"141":9,"144":23,"146":1,"148":2,"151":1,"152":1,"155":1,"156":2,"161":13,"162":1,"167":1,"168":1,"169":1,"170":122,"171":5,"172":9,"176":1,"177":1}}],["geo",{"2":{"127":1,"152":4,"171":2}}],["geotable",{"2":{"27":1}}],["geojson",{"2":{"11":1,"156":2,"169":1,"171":4,"174":3}}],["geodataframes",{"2":{"174":3}}],["geod",{"2":{"6":2,"152":3}}],["geodesic`",{"2":{"152":2}}],["geodesic",{"0":{"168":1},"2":{"6":5,"31":1,"151":6,"152":8,"153":1,"168":1}}],["geodesicsegments",{"2":{"0":1,"6":2,"150":1,"151":3,"152":6,"153":2,"168":1}}],["geoformattypes",{"2":{"1":2,"148":2,"169":1,"171":2,"172":8}}],["geomakie",{"0":{"171":1},"2":{"168":2,"169":2,"171":5}}],["geomfromgeos",{"2":{"152":1}}],["geomtype",{"2":{"136":3}}],["geoms",{"2":{"6":1,"63":1,"97":1,"131":1,"136":20}}],["geom2",{"2":{"3":8,"4":1,"6":9,"66":6,"69":1,"86":6,"89":1,"100":3,"103":6,"106":1,"116":2}}],["geom1",{"2":{"3":8,"4":1,"6":9,"66":6,"69":1,"86":4,"89":1,"100":3,"103":6,"106":1,"116":2}}],["geometrical",{"2":{"175":1}}],["geometric",{"2":{"25":2,"29":2,"43":1}}],["geometries",{"0":{"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"107":1,"108":1,"109":1,"110":1,"111":1,"112":1,"113":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"170":1,"171":1,"172":1},"2":{"1":6,"3":8,"4":14,"6":63,"18":3,"20":1,"22":3,"25":2,"27":4,"29":2,"34":4,"36":1,"37":3,"44":1,"47":2,"50":1,"51":5,"53":5,"54":4,"56":5,"63":6,"65":1,"66":4,"68":1,"69":7,"72":1,"74":1,"75":1,"86":2,"89":2,"97":1,"99":1,"100":1,"102":2,"103":3,"105":2,"106":2,"116":2,"118":1,"129":1,"131":4,"133":1,"135":2,"136":13,"146":1,"148":2,"150":3,"151":1,"152":4,"153":1,"154":1,"157":1,"158":1,"159":1,"162":1,"167":1,"169":5,"171":1,"172":2,"173":2,"174":1,"175":5,"176":1,"178":1}}],["geometry=",{"2":{"173":1}}],["geometrybasics",{"2":{"31":3,"39":2,"40":10,"63":1,"65":1,"75":1,"106":1,"116":1}}],["geometrycolumns",{"2":{"136":3}}],["geometrycollections",{"2":{"175":1}}],["geometrycollection",{"2":{"23":1,"177":1}}],["geometrycollectiontrait",{"2":{"23":1,"81":1,"82":1,"95":1,"96":1,"112":1,"113":1,"122":1,"123":1}}],["geometrycorrections",{"2":{"138":1}}],["geometrycorrection",{"2":{"0":1,"6":11,"137":2,"138":13,"139":11,"142":2,"145":4}}],["geometry",{"0":{"2":1,"53":1,"81":2,"82":2,"95":2,"96":2,"112":2,"113":2,"122":2,"123":2,"137":1,"148":1,"154":1,"169":1,"173":1},"1":{"3":1,"4":1,"138":1,"139":1,"149":1,"155":1,"156":1,"170":1,"171":1,"172":1,"173":1,"174":1},"2":{"1":10,"3":24,"4":12,"6":70,"9":1,"11":2,"18":4,"20":1,"23":3,"27":1,"31":1,"34":4,"37":7,"41":4,"44":3,"46":1,"47":4,"50":4,"61":1,"65":4,"66":6,"69":8,"71":5,"72":2,"74":4,"75":5,"76":4,"77":1,"81":3,"82":4,"84":4,"85":4,"86":3,"88":2,"89":5,"90":4,"91":2,"92":2,"95":3,"96":4,"97":2,"99":2,"103":3,"105":3,"106":4,"107":4,"108":2,"112":3,"113":4,"115":4,"116":5,"117":4,"122":3,"123":4,"125":1,"129":3,"131":2,"134":2,"136":43,"137":2,"138":23,"139":6,"141":1,"142":1,"146":1,"147":1,"148":6,"150":3,"151":1,"152":5,"153":8,"156":6,"167":6,"170":1,"171":1,"172":4,"173":2,"174":2,"175":1,"176":7,"177":4,"178":2}}],["geometryopsprojext",{"2":{"148":1,"149":1,"152":1,"153":1}}],["geometryopslibgeosext",{"2":{"41":1}}],["geometryops",{"0":{"0":1,"29":1,"31":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":117,"1":6,"3":18,"4":9,"5":3,"6":114,"7":2,"11":1,"13":1,"14":1,"15":1,"17":2,"25":1,"29":1,"30":4,"31":1,"33":1,"36":1,"39":5,"41":1,"43":1,"46":1,"49":1,"50":1,"51":1,"53":1,"54":1,"56":1,"58":1,"60":1,"61":1,"62":3,"65":1,"68":1,"69":1,"71":1,"72":2,"74":1,"75":2,"84":1,"85":2,"86":2,"88":1,"89":2,"99":1,"100":1,"102":1,"103":1,"105":1,"106":2,"115":1,"116":2,"126":3,"127":2,"131":4,"136":1,"138":1,"139":4,"141":1,"144":1,"149":1,"151":1,"152":2,"155":1,"156":2,"161":1,"163":1,"166":2,"167":1,"168":1,"169":1,"170":3,"175":1,"176":2,"177":2}}],["geom",{"2":{"1":7,"4":21,"6":48,"18":3,"31":12,"34":17,"37":25,"44":28,"45":16,"47":6,"50":15,"51":8,"52":2,"53":12,"54":10,"56":9,"57":9,"66":28,"69":45,"75":4,"86":1,"89":4,"97":3,"103":1,"106":4,"116":4,"126":3,"127":1,"129":2,"131":3,"136":96,"145":11,"147":4,"153":13,"156":36,"160":3,"161":7,"162":4,"167":17,"177":6}}],["geospatial",{"0":{"172":1,"174":1},"2":{"169":5,"171":1,"172":3,"174":5}}],["geoscontext",{"2":{"152":1}}],["geosdensify",{"2":{"152":3}}],["geos",{"0":{"166":1},"2":{"0":1,"6":6,"41":4,"58":1,"62":4,"63":1,"154":5,"156":2,"163":1,"166":12}}],["got",{"2":{"160":3}}],["goes",{"2":{"6":2,"126":2}}],["good",{"2":{"6":1,"40":1,"166":2,"172":1}}],["going",{"2":{"4":4,"6":5,"47":2,"62":1,"69":5,"126":1,"127":1,"169":1}}],["go",{"2":{"1":5,"3":17,"4":2,"6":43,"11":9,"13":1,"14":1,"15":6,"18":1,"31":2,"33":1,"36":1,"40":1,"43":2,"46":1,"49":2,"50":2,"51":2,"53":2,"54":2,"56":2,"60":3,"61":2,"62":8,"63":2,"65":6,"68":1,"69":2,"71":2,"72":2,"74":1,"75":2,"84":2,"85":2,"86":1,"88":1,"89":2,"99":1,"100":2,"102":1,"103":2,"105":1,"106":2,"115":2,"116":2,"126":6,"127":2,"129":1,"131":1,"136":3,"141":3,"144":3,"151":7,"152":8,"155":2,"156":49,"161":3,"166":1,"167":2,"168":3,"169":1,"170":3,"172":1,"174":1,"175":9,"176":2,"177":5,"178":1}}],["gtrait",{"2":{"66":2}}],["gt",{"2":{"1":1,"6":2,"9":2,"10":1,"11":5,"45":3,"126":3}}],["gif",{"2":{"158":1}}],["gives",{"2":{"177":1}}],["give",{"2":{"97":1,"174":1}}],["given",{"2":{"4":7,"6":21,"18":2,"27":1,"34":2,"36":1,"37":1,"44":3,"45":8,"47":3,"50":5,"51":1,"52":2,"53":1,"54":2,"56":1,"57":2,"66":8,"69":4,"71":1,"72":1,"75":1,"84":1,"85":1,"89":1,"97":7,"99":1,"100":1,"106":1,"108":1,"116":1,"129":1,"138":4,"139":1,"144":1,"150":2,"152":2,"153":2,"159":1}}],["github",{"2":{"6":2,"63":1}}],["gis",{"2":{"5":1,"6":1,"25":1,"29":1,"40":1}}],["gi",{"2":{"1":13,"3":42,"4":31,"6":125,"11":8,"13":15,"14":15,"15":8,"18":2,"31":1,"33":5,"34":21,"36":3,"37":30,"39":1,"43":5,"44":38,"45":34,"46":5,"47":17,"49":6,"50":13,"51":19,"52":16,"53":25,"54":24,"56":17,"57":36,"60":1,"61":1,"62":3,"63":4,"65":8,"66":42,"68":7,"69":99,"71":7,"72":3,"74":3,"75":4,"76":6,"77":12,"78":10,"79":7,"80":4,"81":8,"82":6,"84":3,"85":3,"86":21,"88":7,"89":2,"90":3,"91":12,"92":14,"93":4,"94":2,"95":8,"96":6,"97":59,"99":5,"100":3,"102":7,"103":51,"105":5,"106":3,"107":6,"108":15,"109":10,"110":7,"111":4,"112":8,"113":6,"115":7,"116":2,"117":6,"118":12,"119":10,"120":7,"121":4,"122":8,"123":6,"126":32,"127":15,"129":4,"131":2,"136":116,"138":9,"141":2,"142":10,"144":3,"145":8,"146":1,"147":5,"151":6,"152":6,"153":12,"155":2,"156":34,"160":4,"161":9,"162":5,"164":9,"167":58,"168":2,"169":1,"170":21,"171":2,"172":2,"176":5,"177":2}}],["o",{"2":{"136":24}}],["odd",{"2":{"97":1}}],["own",{"2":{"57":1,"129":2}}],["occur",{"2":{"54":1}}],["occurs",{"2":{"54":1}}],["occupied",{"2":{"33":1}}],["old",{"2":{"45":8,"136":3}}],["ourselves",{"2":{"152":1}}],["our",{"2":{"24":1,"152":1,"170":4,"171":3,"176":1}}],["out=3",{"2":{"97":1}}],["out=4",{"2":{"53":1}}],["out`",{"2":{"53":1,"97":1}}],["out",{"2":{"6":3,"45":12,"47":23,"54":6,"57":4,"63":1,"65":5,"75":4,"86":1,"89":3,"97":102,"103":2,"106":4,"116":4,"126":1,"136":1,"153":1,"166":2}}],["outside",{"2":{"3":2,"4":1,"6":3,"45":3,"47":1,"52":2,"54":4,"57":3,"65":2,"66":1,"74":1,"85":1,"88":1,"97":12,"103":3,"121":1}}],["outputs",{"2":{"45":1}}],["output",{"2":{"3":8,"4":1,"6":18,"18":1,"23":1,"50":2,"51":1,"53":1,"54":1,"56":1,"57":2,"69":1,"72":1,"75":1,"85":1,"89":1,"100":1,"103":1,"106":1,"116":1,"126":2,"156":1,"160":1,"167":1}}],["outermost",{"2":{"136":1}}],["outer",{"2":{"1":1,"6":1,"134":1,"136":2,"175":1,"176":1}}],["omit",{"2":{"6":1,"152":1}}],["obtain",{"2":{"136":1}}],["obtained",{"2":{"23":1}}],["observable",{"2":{"14":2}}],["obs",{"2":{"14":10}}],["obviously",{"2":{"4":1,"6":1,"146":1}}],["objects",{"2":{"1":4,"4":1,"6":17,"131":3,"134":5,"136":8,"146":1,"150":1,"156":2,"162":1}}],["object",{"2":{"1":4,"4":1,"5":1,"6":8,"20":1,"40":1,"65":1,"97":4,"131":1,"134":5,"136":3,"146":1,"148":3,"152":1,"156":1,"162":1}}],["obj",{"2":{"1":4,"4":1,"6":17,"131":3,"136":10,"146":1,"147":2,"152":3,"156":3,"161":1,"162":1}}],["others",{"2":{"41":1,"145":1}}],["otherwise",{"2":{"4":2,"6":3,"41":1,"45":1,"52":1,"54":1,"66":2,"127":1,"147":1,"149":1,"152":1,"167":1}}],["other",{"0":{"4":1,"6":1},"2":{"3":4,"6":12,"37":1,"45":5,"51":1,"53":1,"54":1,"56":2,"57":3,"58":2,"66":2,"69":2,"71":1,"77":1,"97":8,"99":1,"102":1,"103":4,"105":2,"106":2,"109":1,"118":1,"127":1,"131":1,"134":1,"136":1,"139":2,"143":1,"145":2,"156":2,"158":2,"163":1,"164":1,"166":1,"171":1,"175":1,"178":1}}],["ogc",{"0":{"3":1}}],["over=3",{"2":{"53":1}}],["over`",{"2":{"53":1}}],["overflow",{"2":{"50":1}}],["overhead",{"2":{"22":1,"136":2}}],["override",{"2":{"6":1,"40":1}}],["overlapping",{"2":{"45":11,"54":4,"57":6}}],["overlap",{"2":{"3":4,"6":4,"9":1,"45":2,"54":8,"57":2,"75":1,"84":1,"97":2,"102":5,"103":6,"116":1,"143":1}}],["overlaps",{"0":{"101":1,"102":1},"1":{"102":1,"103":1},"2":{"0":10,"3":5,"6":13,"31":1,"54":1,"101":1,"102":3,"103":30,"127":1,"175":1}}],["over",{"2":{"1":1,"6":3,"33":2,"34":1,"44":3,"45":5,"47":1,"53":1,"54":11,"57":1,"62":1,"75":1,"86":1,"89":1,"97":15,"103":2,"106":1,"116":1,"136":22,"170":3}}],["opposed",{"2":{"168":1}}],["opposite",{"2":{"3":5,"6":5,"45":2,"52":1,"54":2,"57":1,"72":2,"75":1,"85":2,"100":2,"116":1}}],["ops",{"2":{"136":1}}],["open",{"2":{"45":1,"141":1,"171":1}}],["operates",{"2":{"136":1,"140":1,"143":1}}],["operate",{"2":{"18":1,"27":1,"136":1}}],["operations",{"0":{"23":1},"2":{"23":1,"30":1,"54":1,"57":1,"129":1}}],["operation",{"2":{"6":3,"45":1,"129":1,"139":2,"145":2,"166":2}}],["optimisation",{"2":{"97":1}}],["optimise",{"2":{"86":1}}],["optimal",{"2":{"6":1,"63":1}}],["options",{"2":{"14":1,"45":1}}],["optional",{"2":{"4":5,"6":6,"34":2,"37":1,"47":1,"66":2}}],["op",{"2":{"1":3,"6":3,"19":2,"44":1,"136":35}}],["on=2",{"2":{"97":1}}],["on`",{"2":{"97":1}}],["once",{"2":{"86":1,"103":1,"127":1}}],["onto",{"2":{"66":1}}],["ones",{"2":{"144":1}}],["oneunit",{"2":{"40":1}}],["one",{"2":{"1":1,"3":9,"6":14,"23":1,"34":2,"37":4,"39":1,"40":1,"44":1,"45":5,"47":3,"51":1,"52":1,"53":1,"54":32,"56":2,"57":2,"58":1,"65":2,"74":1,"81":1,"86":1,"88":1,"97":18,"102":1,"103":18,"105":2,"106":2,"109":3,"110":2,"111":2,"112":1,"113":1,"115":1,"116":1,"122":1,"126":1,"127":5,"136":1,"144":1,"148":1,"152":1,"160":1,"161":1,"171":1,"175":1}}],["on",{"0":{"171":1},"2":{"1":2,"4":3,"6":11,"9":1,"18":1,"20":1,"23":2,"25":3,"27":2,"29":3,"34":3,"37":5,"39":1,"40":2,"44":3,"45":28,"47":8,"50":1,"51":1,"52":5,"53":1,"54":4,"56":1,"57":2,"63":1,"65":1,"66":3,"69":2,"74":1,"75":7,"77":2,"78":3,"79":3,"80":1,"86":4,"89":6,"91":4,"92":1,"93":1,"97":125,"103":9,"106":7,"108":2,"116":7,"118":2,"119":1,"120":1,"127":3,"129":1,"131":1,"136":15,"139":1,"140":1,"142":1,"143":1,"150":1,"152":1,"158":1,"165":2,"168":1,"169":1,"171":3,"172":1,"174":1,"175":4,"176":1,"177":2,"178":2}}],["only",{"2":{"0":1,"5":1,"6":11,"23":1,"34":2,"39":2,"40":1,"41":1,"44":2,"45":4,"47":3,"50":1,"51":1,"53":1,"54":1,"56":1,"63":3,"66":2,"69":3,"102":3,"103":1,"105":1,"127":2,"136":2,"144":1,"150":1,"151":1,"153":2,"163":1,"166":2,"172":1,"177":1,"178":1}}],["often",{"2":{"171":1}}],["offers",{"2":{"170":1}}],["offer",{"2":{"152":1}}],["offset",{"2":{"37":8,"69":1}}],["off",{"2":{"4":1,"6":1,"45":4,"69":1,"97":6,"136":1}}],["of",{"0":{"61":1},"2":{"1":7,"3":29,"4":66,"5":5,"6":194,"7":2,"9":4,"17":3,"18":5,"19":1,"20":2,"22":1,"23":2,"24":2,"25":1,"27":3,"29":1,"30":1,"33":5,"34":28,"36":1,"37":38,"38":9,"39":1,"40":13,"41":1,"43":3,"44":12,"45":84,"46":5,"47":31,"50":5,"51":12,"52":13,"53":10,"54":48,"56":9,"57":20,"58":5,"62":3,"63":3,"65":6,"66":18,"68":2,"69":19,"71":4,"72":5,"74":6,"75":18,"77":1,"78":5,"79":5,"80":1,"81":2,"82":1,"85":5,"86":1,"88":3,"89":14,"91":1,"92":1,"93":1,"95":2,"96":1,"97":85,"99":1,"100":3,"102":1,"103":13,"105":2,"106":15,"108":3,"109":7,"110":5,"111":1,"112":2,"113":1,"115":4,"116":18,"118":3,"119":6,"120":6,"121":4,"122":1,"123":1,"125":2,"126":3,"127":19,"128":2,"129":3,"131":1,"134":5,"135":2,"136":27,"139":2,"140":1,"141":1,"143":4,"145":4,"147":3,"148":1,"150":2,"151":2,"152":5,"153":2,"156":8,"158":4,"159":2,"160":1,"162":1,"164":2,"166":4,"167":2,"170":6,"171":4,"172":2,"173":1,"174":4,"175":3,"176":4,"177":2}}],["org",{"2":{"51":1,"53":1,"56":1,"97":2,"158":1}}],["organise",{"2":{"10":1}}],["orange",{"2":{"49":1,"65":1,"68":2,"71":2,"88":2,"102":2,"115":2}}],["oro",{"2":{"11":2}}],["originate",{"2":{"57":1}}],["originals",{"2":{"22":1}}],["original",{"2":{"6":4,"18":1,"22":1,"45":10,"50":5,"51":1,"53":1,"57":4,"134":1,"136":3,"138":1,"147":2,"153":1,"155":4,"156":1}}],["orient",{"0":{"13":1},"1":{"14":1,"15":1},"2":{"13":7,"14":12,"45":15,"54":53}}],["orientation",{"0":{"124":1},"1":{"125":1,"126":1},"2":{"6":2,"10":1,"31":1,"34":1,"45":10,"47":2,"51":1,"53":2,"54":2,"56":1,"97":16,"125":1,"156":1}}],["ordered",{"2":{"33":1}}],["order",{"0":{"62":1},"2":{"1":4,"3":1,"4":2,"6":7,"33":1,"34":2,"37":1,"40":1,"45":4,"54":1,"57":1,"62":4,"63":1,"66":2,"69":3,"72":1,"75":1,"85":1,"100":1,"136":2,"148":2,"156":1,"175":1}}],["or",{"0":{"24":1},"2":{"1":11,"3":3,"4":10,"6":54,"18":1,"20":1,"22":1,"23":1,"25":1,"27":2,"29":1,"31":1,"34":1,"37":4,"40":1,"41":1,"43":2,"44":4,"45":24,"46":1,"50":1,"51":1,"52":3,"53":2,"54":9,"56":1,"57":2,"58":1,"63":1,"65":2,"66":4,"69":3,"71":1,"75":1,"77":2,"78":1,"79":1,"80":1,"81":1,"82":1,"88":2,"91":2,"92":3,"93":2,"94":1,"95":1,"96":1,"97":26,"99":2,"100":1,"102":1,"103":2,"105":1,"106":1,"112":1,"113":1,"116":1,"118":2,"122":1,"123":1,"125":2,"126":3,"127":7,"129":3,"131":1,"133":2,"135":1,"136":9,"138":5,"139":2,"140":1,"142":1,"148":2,"149":1,"150":2,"152":2,"153":2,"154":1,"156":3,"158":2,"160":2,"162":1,"164":3,"167":2,"175":1,"177":2}}],["est",{"2":{"177":1}}],["essentially",{"2":{"164":1}}],["especially",{"2":{"6":1,"18":1,"23":1,"127":1}}],["effects",{"2":{"136":3}}],["efficiently",{"2":{"20":1}}],["efficient",{"2":{"6":1,"40":1,"51":2,"53":2,"56":2,"63":1,"142":1}}],["e2",{"2":{"97":4}}],["e1",{"2":{"97":8}}],["euclid",{"2":{"47":2,"66":11,"97":1,"157":1}}],["euclidean",{"2":{"4":1,"6":1,"40":13,"66":6,"153":1}}],["epsg",{"2":{"171":5,"172":8}}],["eps",{"2":{"37":2,"54":14}}],["eponymous",{"2":{"6":1,"152":1}}],["everything",{"2":{"156":1}}],["every",{"2":{"45":1,"69":2,"134":1,"166":1}}],["evenly",{"2":{"176":1}}],["eventually",{"2":{"45":1}}],["even",{"2":{"34":2,"47":1,"54":1,"66":1,"69":1,"129":1,"141":1,"143":1}}],["evaluated",{"2":{"175":1}}],["eval",{"2":{"31":2,"136":2}}],["e",{"2":{"9":1,"22":1,"41":1,"127":1,"134":1,"136":2,"170":2,"171":1,"174":1}}],["ellipsoid",{"2":{"168":1}}],["eltype",{"2":{"127":4}}],["elements",{"2":{"81":1,"82":1,"95":1,"96":1,"103":1,"112":1,"113":1,"122":1,"123":1}}],["element",{"2":{"6":6,"36":1,"45":4,"50":2,"51":1,"53":1,"54":1,"56":3,"151":1,"171":1}}],["elsewhere",{"2":{"50":1}}],["elseif",{"2":{"45":5,"47":7,"51":1,"53":1,"54":14,"56":2,"57":1,"86":3,"97":10,"126":1,"127":2,"145":1,"158":2,"160":2}}],["else",{"2":{"3":6,"6":6,"37":1,"40":2,"45":19,"47":9,"50":1,"52":2,"54":9,"56":1,"57":9,"86":2,"97":17,"103":8,"127":20,"136":8,"142":1,"147":1,"149":1,"156":2,"158":4,"160":2,"161":1,"162":1,"166":1}}],["etc",{"2":{"6":1,"20":2,"33":1,"63":1,"164":1,"174":1}}],["empty",{"2":{"4":2,"6":6,"37":2,"45":2,"51":1,"53":1,"54":2,"56":1,"127":2}}],["embedding",{"0":{"135":1,"146":1}}],["embedded",{"0":{"172":1},"2":{"127":1,"135":3,"169":1,"172":1}}],["embed",{"2":{"0":2,"4":1,"6":1,"135":1,"146":2}}],["errors",{"2":{"31":1,"54":1,"153":1}}],["error",{"0":{"149":1},"2":{"4":1,"6":4,"7":1,"18":1,"31":6,"40":1,"41":4,"45":2,"54":2,"55":1,"69":2,"127":1,"134":1,"138":2,"149":3,"152":5,"160":4,"166":3,"167":1}}],["edgekeys",{"2":{"127":3}}],["edge",{"2":{"3":1,"4":3,"6":4,"20":1,"31":1,"34":1,"43":1,"45":25,"47":13,"51":1,"53":1,"54":6,"56":1,"66":4,"69":1,"77":2,"92":2,"93":1,"97":7,"103":21,"118":2,"119":1,"120":1,"127":7,"167":2}}],["edges`",{"2":{"54":1}}],["edges",{"2":{"0":1,"4":2,"6":9,"45":12,"47":8,"52":3,"54":10,"57":3,"66":3,"68":2,"69":1,"71":1,"77":1,"78":3,"79":7,"80":3,"88":1,"91":3,"94":1,"97":3,"103":20,"115":1,"118":1,"127":22,"167":29}}],["earlier",{"2":{"170":3}}],["earth",{"2":{"6":2,"25":1,"29":1,"152":2,"156":1,"171":2,"175":1}}],["easiest",{"2":{"173":1}}],["easier",{"2":{"163":1,"165":1}}],["easily",{"2":{"129":1}}],["east",{"2":{"47":9}}],["easy",{"2":{"1":1,"6":1,"143":1,"161":1}}],["eachindex",{"2":{"37":1,"126":1,"127":3,"136":2,"157":1,"160":1}}],["each",{"2":{"3":2,"4":3,"6":6,"9":1,"18":2,"20":1,"34":2,"37":4,"38":4,"40":1,"45":5,"47":1,"54":3,"66":1,"69":2,"75":1,"89":1,"97":6,"102":1,"103":3,"106":1,"116":1,"126":1,"127":1,"136":1,"143":2,"156":1,"173":1,"174":1,"176":2,"177":2,"178":1}}],["equatorial",{"2":{"6":6,"152":4}}],["equality",{"2":{"45":1,"54":1,"175":1}}],["equal",{"2":{"3":2,"4":16,"6":19,"37":6,"54":1,"65":1,"66":4,"68":3,"69":22,"77":1,"91":1,"97":15,"102":1,"103":2,"108":2,"118":1,"141":1}}],["equals",{"0":{"67":1,"68":1},"1":{"68":1,"69":1},"2":{"0":17,"4":3,"6":19,"31":1,"37":2,"45":4,"50":2,"54":8,"66":1,"67":1,"68":2,"69":50,"77":1,"91":1,"97":10,"103":2,"108":3,"118":1,"175":1}}],["equivalent",{"2":{"3":1,"4":4,"6":6,"34":1,"45":1,"54":1,"57":1,"69":5,"75":1,"97":1}}],["enable",{"2":{"178":1}}],["enabled",{"2":{"175":1}}],["enabling",{"0":{"178":1}}],["enclosed",{"2":{"97":1}}],["encode",{"2":{"24":1}}],["encompasses",{"2":{"18":1,"97":1}}],["encounters",{"2":{"18":1}}],["en",{"2":{"97":1,"158":1}}],["envelope",{"2":{"54":2}}],["envelopes",{"2":{"54":2}}],["enough",{"2":{"45":1}}],["entirely",{"2":{"97":1}}],["entire",{"2":{"47":1,"97":4}}],["entry",{"2":{"45":11,"52":3,"54":4,"57":3,"127":1}}],["ent",{"2":{"45":19,"50":2}}],["enter",{"2":{"45":4}}],["ensuring",{"2":{"6":1,"150":1,"153":1}}],["ensure",{"2":{"6":3,"40":1,"51":1,"53":1,"56":1,"137":1,"140":2}}],["ensures",{"2":{"6":3,"139":3,"142":1,"145":2}}],["enumerate",{"2":{"13":2,"37":1,"45":10,"47":1,"50":1,"52":1,"57":2,"97":1,"127":2,"145":2,"160":1}}],["enum",{"2":{"6":2,"45":3,"53":3,"97":3}}],["endpt",{"2":{"158":3}}],["endpoints",{"2":{"45":3,"47":1,"52":1,"54":6,"57":1,"66":2,"97":11,"103":2,"105":1}}],["endpoint=3",{"2":{"45":1}}],["endpointtype",{"2":{"45":2}}],["endpoint",{"2":{"3":1,"6":2,"45":27,"53":1,"54":16,"66":2,"74":1,"97":3,"103":2,"156":4,"158":4,"170":1}}],["ending",{"2":{"45":1,"47":1}}],["end",{"2":{"1":1,"6":1,"9":1,"13":4,"14":3,"31":4,"34":8,"37":18,"40":35,"41":3,"44":10,"45":130,"47":43,"50":9,"51":8,"52":12,"53":5,"54":31,"55":1,"56":6,"57":24,"63":3,"66":19,"69":20,"81":2,"82":2,"86":20,"95":2,"96":2,"97":104,"103":21,"108":1,"112":2,"113":2,"118":1,"122":2,"123":2,"126":9,"127":44,"128":4,"129":1,"136":52,"138":3,"140":1,"142":5,"145":18,"147":4,"148":1,"149":2,"152":8,"153":8,"156":7,"157":6,"158":30,"159":3,"160":27,"161":4,"162":4,"164":1,"165":3,"166":4,"167":19}}],["enforce",{"2":{"0":1,"6":2,"166":3}}],["exits",{"2":{"45":1}}],["exit",{"2":{"45":32,"50":2,"52":3,"54":3,"57":2}}],["existingnodes",{"2":{"127":3}}],["existing",{"2":{"45":3,"56":1,"127":1,"171":2,"173":1}}],["exists",{"2":{"45":1,"47":1,"54":1}}],["exist",{"2":{"6":1,"45":1,"54":3,"166":1}}],["excluding",{"2":{"94":1,"97":1,"118":2}}],["exclude",{"2":{"86":9}}],["exclusively",{"2":{"110":1}}],["exclusive",{"2":{"47":1,"54":2}}],["exc",{"2":{"41":2,"149":2,"152":2}}],["excellent",{"2":{"23":1}}],["except",{"2":{"18":1,"19":1}}],["excess",{"2":{"5":1,"6":1,"40":1}}],["exp10",{"2":{"152":1,"156":2}}],["expressed",{"2":{"38":2}}],["express",{"2":{"38":1}}],["experimental",{"2":{"31":3}}],["expect",{"2":{"1":1,"99":1,"148":1}}],["explain",{"2":{"30":1}}],["explanations",{"2":{"30":3}}],["explicitly",{"2":{"6":1,"18":1,"24":1,"34":1,"37":2,"40":1,"41":1,"66":2,"69":1,"149":1,"152":1,"153":1}}],["expose",{"2":{"58":1}}],["exposes",{"2":{"17":1}}],["export",{"2":{"38":1,"150":1,"172":1,"174":1}}],["exponential",{"2":{"9":1}}],["ext2",{"2":{"97":3}}],["ext1",{"2":{"97":3}}],["ext",{"2":{"39":15,"45":10,"47":2,"50":3,"51":8,"53":8,"54":18,"56":8,"57":14,"86":7,"97":7}}],["extrema",{"2":{"127":1,"167":1}}],["extreem",{"2":{"37":10}}],["extracts",{"2":{"63":1}}],["extract",{"2":{"63":1,"127":1,"136":3,"156":1}}],["extra",{"2":{"6":3,"45":1,"56":1,"150":1,"152":2,"153":1}}],["external",{"2":{"34":1,"97":2}}],["exteriors",{"2":{"9":1,"53":2,"56":2,"127":1}}],["exterior",{"2":{"3":4,"4":2,"6":10,"33":1,"34":1,"37":1,"39":1,"40":36,"44":2,"45":4,"51":2,"56":3,"57":14,"66":1,"69":2,"71":1,"72":1,"75":3,"85":1,"89":2,"97":9,"106":2,"115":1,"116":3,"119":3,"120":3,"126":6,"127":6,"137":1,"139":1,"142":3,"146":1,"170":2}}],["extending",{"2":{"103":1}}],["extended",{"2":{"66":1}}],["extensions",{"2":{"58":1,"174":1}}],["extension",{"2":{"1":1,"6":1,"40":1,"41":1,"63":1,"74":1,"128":1,"148":3,"149":2,"152":1,"153":1,"154":1,"174":1}}],["extent=geom",{"2":{"167":1}}],["extent=gi",{"2":{"127":3}}],["extent=true",{"2":{"146":1}}],["extent=nothing",{"2":{"136":1}}],["extent=",{"2":{"136":4}}],["extent=false",{"2":{"136":1,"156":1}}],["extent`",{"2":{"133":1,"146":1}}],["extents",{"2":{"4":3,"6":3,"31":5,"47":1,"54":3,"97":5,"103":1,"127":3,"136":2,"146":2,"167":2}}],["extent",{"0":{"146":1},"2":{"0":2,"1":4,"4":3,"6":11,"24":1,"31":2,"39":1,"46":1,"47":1,"54":10,"97":4,"103":2,"127":12,"133":3,"135":4,"136":31,"146":2,"156":1,"165":1,"167":8}}],["exactly",{"2":{"160":1}}],["exactpredicates",{"2":{"7":1,"13":2,"14":2,"31":1}}],["exact",{"2":{"3":5,"6":5,"7":2,"12":1,"13":1,"45":36,"47":6,"50":7,"51":5,"53":5,"54":7,"55":1,"56":5,"57":7,"72":2,"75":3,"77":1,"78":3,"79":3,"80":1,"85":2,"86":1,"89":2,"91":1,"92":3,"93":2,"94":1,"97":24,"100":2,"103":3,"106":2,"108":1,"109":3,"110":1,"111":1,"116":3,"118":1,"119":3,"120":3,"121":1,"127":1,"144":1}}],["examples",{"0":{"151":1,"155":1},"2":{"3":8,"4":1,"6":11,"30":2,"69":1,"72":1,"75":1,"85":1,"86":1,"89":1,"103":1,"106":1,"116":1,"126":2,"167":1}}],["example",{"0":{"39":1,"59":1,"141":1,"144":1,"176":1,"177":1},"1":{"60":1},"2":{"1":3,"3":2,"6":13,"11":1,"20":1,"23":2,"33":1,"36":1,"39":1,"43":1,"44":1,"46":1,"49":1,"50":1,"51":1,"53":1,"54":1,"56":1,"65":1,"68":1,"69":1,"71":1,"74":1,"84":1,"86":1,"88":1,"97":1,"99":1,"100":1,"102":1,"105":1,"115":1,"126":1,"127":8,"129":1,"136":2,"137":1,"141":1,"143":1,"144":1,"147":1,"155":1,"156":2,"161":1,"166":1,"176":1,"178":1}}],["either",{"2":{"1":2,"3":1,"6":4,"22":1,"25":1,"29":1,"45":9,"51":1,"53":1,"54":2,"56":1,"57":1,"65":1,"75":1,"97":5,"99":1,"105":1,"106":1,"116":1,"127":1,"136":3,"138":1,"175":1}}],["lj",{"2":{"127":2}}],["lrs",{"2":{"156":2}}],["lr",{"2":{"127":3,"136":3}}],["lp",{"2":{"97":2}}],["lstart",{"2":{"97":2}}],["ls",{"2":{"97":12}}],["ll",{"2":{"17":1,"39":1,"151":2,"156":1,"171":1,"173":1}}],["l",{"2":{"14":4,"40":6,"86":2,"97":32}}],["lgeos",{"2":{"156":1}}],["lg",{"2":{"13":1,"14":1,"15":2,"62":4,"152":9,"156":17}}],["l305",{"2":{"6":1}}],["loudly",{"2":{"136":1}}],["log10",{"2":{"152":2,"156":4}}],["log",{"2":{"131":3,"132":1,"151":2}}],["location",{"2":{"45":1,"97":6}}],["local",{"2":{"34":1,"37":3,"45":4,"52":1,"57":1,"127":1}}],["loose",{"2":{"140":1}}],["looping",{"2":{"127":1}}],["loop",{"2":{"37":1,"40":2,"44":3,"45":8,"47":1,"54":1,"57":1,"97":5,"127":3,"158":1}}],["lookup",{"2":{"127":1,"136":1}}],["looks",{"2":{"43":1}}],["look",{"2":{"33":2,"127":2,"141":1,"151":1}}],["lower",{"2":{"6":1,"7":1,"127":1,"176":1}}],["lon",{"2":{"6":2,"151":1,"152":2}}],["longitude",{"2":{"171":2}}],["long",{"2":{"6":1,"54":1,"152":1,"177":1}}],["longer",{"2":{"6":3,"150":1,"152":2,"153":1}}],["lots",{"2":{"171":1}}],["lot",{"2":{"6":1,"23":1,"34":1,"37":1,"44":1,"47":1,"66":1,"69":1,"103":1,"129":1,"151":1,"166":2}}],["load",{"2":{"136":2,"156":1,"169":2}}],["loading",{"2":{"41":1,"149":1,"152":1}}],["loads",{"2":{"5":1,"6":1,"40":1}}],["loaded",{"2":{"1":1,"41":3,"148":1,"149":2,"152":2}}],["laptop",{"2":{"177":1}}],["land",{"2":{"171":8}}],["layers",{"2":{"134":1}}],["label",{"2":{"14":4,"15":2,"60":2,"62":1,"65":1,"127":3,"151":2,"155":2,"156":2}}],["labels",{"2":{"13":2,"127":1}}],["lazily",{"2":{"6":1,"131":1,"136":1}}],["latitude",{"2":{"171":2}}],["later",{"2":{"34":1,"62":1,"127":1}}],["lat",{"2":{"6":3,"151":1,"152":3}}],["larger",{"2":{"45":1,"56":1,"160":1}}],["large",{"2":{"6":8,"40":1,"156":2,"174":1,"177":1}}],["lastindex",{"2":{"160":1}}],["last",{"2":{"4":3,"6":3,"9":1,"34":2,"37":11,"39":2,"45":9,"47":4,"66":7,"69":5,"97":20,"108":1,"127":6,"141":1,"145":2,"158":1}}],["lt",{"2":{"6":6,"54":4,"151":1}}],["len",{"2":{"158":7}}],["length",{"2":{"0":1,"5":1,"6":5,"9":1,"18":1,"40":32,"42":1,"43":1,"44":22,"45":11,"47":1,"50":2,"51":2,"53":1,"54":1,"56":1,"57":1,"97":1,"127":16,"136":3,"145":2,"151":1,"157":1,"158":1,"159":1,"160":7}}],["legend",{"2":{"156":4}}],["le",{"2":{"97":10}}],["leaving",{"2":{"141":1}}],["leaf",{"2":{"136":4}}],["leading",{"2":{"170":1}}],["lead",{"2":{"54":1,"141":1}}],["least",{"2":{"3":4,"6":4,"45":1,"54":1,"57":2,"97":14,"103":6,"106":1,"109":3,"110":2,"111":2,"112":1,"113":1,"116":1,"122":1,"126":1}}],["leftover",{"2":{"45":1}}],["left=1",{"2":{"45":1}}],["left",{"2":{"40":1,"45":5,"126":1,"127":2,"158":17,"160":5,"175":1}}],["lets",{"2":{"34":1}}],["let",{"2":{"33":1,"43":1,"97":1,"127":3,"151":1,"170":6,"171":4,"172":3,"173":2,"174":2,"178":1}}],["levels",{"2":{"6":1,"127":1,"134":1,"164":1}}],["level",{"2":{"6":1,"7":1,"9":1,"18":2,"20":1,"27":1,"134":1,"136":2,"138":4,"139":1,"140":1,"142":1,"143":1,"145":2,"172":2}}],["less",{"2":{"3":1,"6":7,"34":1,"37":1,"40":1,"44":1,"47":1,"66":1,"69":1,"86":1,"103":1,"127":1,"156":1,"157":1}}],["l289",{"2":{"6":1}}],["l2",{"2":{"3":4,"4":4,"6":8,"68":4,"69":12,"71":8,"85":2,"88":5,"102":4,"105":3,"106":2,"115":8}}],["l195",{"2":{"6":1}}],["l177",{"2":{"6":1}}],["l1",{"2":{"3":6,"4":4,"6":10,"68":4,"69":12,"71":8,"74":4,"75":2,"84":4,"85":2,"88":5,"102":4,"105":3,"106":2,"115":8}}],["li",{"2":{"127":2}}],["lie",{"2":{"54":1}}],["lies",{"2":{"45":3,"176":1}}],["limitations",{"2":{"54":1}}],["limits",{"2":{"39":1}}],["limited",{"2":{"6":1,"150":1,"153":1}}],["library",{"2":{"50":1,"174":1}}],["libraries",{"2":{"34":1,"143":1,"174":1}}],["libgeos",{"2":{"6":2,"13":1,"14":1,"15":1,"23":1,"34":1,"41":5,"62":1,"128":1,"152":7,"156":4,"166":2}}],["little",{"2":{"30":1}}],["literate",{"2":{"30":1,"31":1,"34":1,"37":1,"40":1,"41":1,"44":1,"45":1,"47":1,"50":1,"52":1,"54":1,"55":1,"57":1,"63":1,"66":1,"69":1,"72":1,"82":1,"85":1,"86":1,"96":1,"97":1,"100":1,"103":1,"113":1,"123":1,"126":1,"127":1,"128":1,"136":1,"139":1,"142":1,"145":1,"146":1,"147":1,"149":1,"153":1,"160":1,"161":1,"162":1,"166":1,"167":1}}],["lift",{"2":{"14":2}}],["lin",{"2":{"152":5}}],["linked",{"2":{"58":1}}],["linrange",{"2":{"13":2,"14":5,"39":2,"65":1,"127":2,"152":1,"156":2}}],["linering",{"2":{"171":1}}],["linewidth",{"2":{"33":1,"170":1}}],["linesegment",{"2":{"126":2,"153":1}}],["lines",{"0":{"78":1,"92":1,"109":1,"119":1},"2":{"3":1,"4":4,"6":5,"45":3,"49":1,"54":9,"60":1,"61":2,"62":2,"65":1,"68":4,"69":4,"71":3,"74":1,"75":1,"84":2,"86":1,"88":3,"97":2,"99":3,"102":4,"103":2,"105":4,"115":3,"116":1,"127":3,"154":1,"168":2,"170":4}}],["linestrings",{"2":{"4":2,"6":2,"9":1,"69":2,"125":1,"140":1,"170":1}}],["linestringtrait",{"2":{"3":2,"4":4,"6":9,"11":3,"37":1,"44":4,"53":2,"66":2,"69":8,"77":1,"78":4,"79":1,"86":6,"91":1,"92":5,"103":4,"108":1,"109":4,"110":1,"118":1,"119":4,"120":1,"134":1,"138":2,"139":1,"153":2,"164":2}}],["linestring",{"2":{"3":5,"4":6,"6":15,"18":1,"20":1,"37":2,"44":2,"66":4,"68":2,"69":2,"71":2,"72":1,"77":1,"78":3,"85":2,"88":2,"89":1,"91":1,"92":4,"97":2,"102":2,"108":1,"109":3,"110":1,"115":2,"116":1,"118":1,"119":4,"120":1,"126":7,"136":5,"167":4,"168":1,"170":5}}],["linetrait",{"2":{"3":2,"4":4,"6":6,"37":1,"45":2,"50":2,"53":2,"66":2,"69":8,"77":1,"78":4,"79":1,"91":1,"92":5,"103":4,"108":1,"109":4,"110":1,"118":1,"119":4,"120":1}}],["line2",{"2":{"3":3,"6":7,"53":2,"54":2,"86":5,"99":3,"100":2,"103":3,"126":5}}],["line1",{"2":{"3":4,"6":8,"53":2,"54":2,"86":5,"99":3,"100":2,"103":5,"126":5}}],["linea",{"2":{"1":1,"6":1,"161":1}}],["linearmap",{"2":{"156":1}}],["linearalgebra",{"2":{"31":1}}],["linear",{"2":{"4":7,"6":10,"9":1,"34":2,"40":1,"43":1,"44":3,"47":1,"54":1,"66":5,"69":8,"79":1,"97":2,"109":1,"110":2,"119":1,"125":1,"136":2,"142":3,"151":5,"152":3,"153":4}}],["linearr",{"2":{"1":1,"6":1,"161":1}}],["linearrings",{"2":{"9":1,"93":1,"127":6,"140":1,"170":1}}],["linearringtrait",{"2":{"4":4,"6":6,"11":3,"34":2,"37":3,"44":4,"45":4,"53":2,"66":2,"69":8,"77":1,"78":1,"79":4,"91":1,"92":2,"93":3,"108":1,"109":1,"110":4,"118":1,"119":1,"120":4,"138":1,"153":2,"156":1,"164":2}}],["linearring",{"2":{"1":10,"3":2,"4":1,"6":15,"37":2,"44":2,"45":2,"56":2,"57":1,"63":1,"66":1,"77":1,"79":3,"91":1,"92":1,"93":2,"97":2,"103":4,"108":1,"109":1,"110":3,"118":1,"120":4,"126":1,"127":3,"136":7,"140":1,"141":6,"142":1,"144":13,"156":1,"161":8,"167":4,"170":24,"171":6,"172":8,"176":2}}],["linearsegments",{"2":{"0":1,"6":4,"150":1,"151":1,"152":3,"153":5}}],["line",{"0":{"97":1},"2":{"0":1,"3":13,"4":9,"6":52,"23":1,"36":2,"37":7,"43":3,"44":10,"45":12,"47":8,"49":6,"50":18,"53":8,"54":67,"57":6,"66":11,"69":5,"72":2,"74":2,"75":1,"77":2,"78":11,"79":8,"84":1,"86":11,"89":2,"91":1,"92":9,"93":4,"97":141,"99":2,"100":2,"102":3,"103":12,"105":2,"106":2,"108":1,"109":10,"110":3,"116":2,"118":2,"119":10,"120":7,"126":6,"127":2,"153":1,"156":1,"157":1,"158":4,"159":1,"167":3,"170":3}}],["lineorientation",{"2":{"0":1,"6":2,"53":2}}],["lists",{"2":{"20":1,"45":3,"103":1}}],["listed",{"2":{"6":1,"37":1,"156":1}}],["list",{"2":{"6":16,"9":1,"37":20,"45":233,"50":20,"51":14,"52":8,"53":13,"54":5,"56":13,"57":1,"177":2}}],["likely",{"2":{"134":1}}],["like",{"0":{"55":1},"2":{"1":2,"6":9,"17":1,"18":2,"19":1,"20":1,"23":1,"24":1,"27":1,"34":1,"39":1,"40":1,"43":1,"47":1,"51":1,"53":1,"56":1,"63":1,"65":1,"66":1,"69":1,"129":2,"136":2,"138":2,"139":1,"150":1,"151":1,"164":2,"171":2}}],["iah",{"2":{"168":2}}],["image",{"2":{"127":1}}],["impossible",{"2":{"50":1,"102":1}}],["important",{"2":{"151":1}}],["import",{"2":{"1":3,"6":5,"13":2,"14":2,"15":1,"31":7,"33":1,"36":1,"41":1,"43":1,"46":1,"50":1,"51":1,"53":1,"54":1,"56":1,"65":1,"68":1,"69":1,"71":1,"72":1,"74":1,"75":1,"84":1,"85":1,"86":1,"88":1,"89":1,"99":1,"100":1,"102":1,"103":1,"105":1,"106":1,"115":1,"116":1,"126":3,"136":2,"149":1,"152":2,"155":2,"156":3,"161":2,"167":1,"169":5}}],["implements",{"2":{"166":1}}],["implementing",{"2":{"6":1,"156":1}}],["implement",{"2":{"6":1,"17":1,"23":1,"34":1,"37":1,"40":1,"44":1,"47":1,"63":1,"66":1,"69":1,"75":1,"89":1,"103":1,"106":1,"116":1,"129":1,"137":1,"138":3,"139":1}}],["implementation",{"0":{"34":1,"37":1,"44":1,"47":1,"50":1,"63":1,"66":1,"69":1,"72":1,"75":1,"85":1,"89":1,"100":1,"103":1,"106":1,"116":1,"133":1,"142":1,"145":1,"153":1},"2":{"6":1,"34":3,"37":3,"40":1,"44":3,"47":3,"56":1,"66":3,"69":3,"72":1,"75":2,"85":1,"89":2,"100":1,"103":3,"106":2,"116":2,"127":2,"128":1,"148":1,"156":1,"166":1}}],["implementations",{"2":{"6":1,"75":1,"89":1,"106":1,"116":1,"128":1,"154":1,"166":3}}],["implemented",{"0":{"128":1},"2":{"1":1,"6":2,"31":1,"34":1,"40":3,"50":2,"52":2,"54":2,"57":2,"63":1,"66":2,"128":1,"129":2,"138":2,"148":1,"154":1}}],["improvements",{"2":{"9":2,"10":1}}],["improve",{"2":{"4":1,"6":1,"146":1}}],["i=2",{"2":{"126":1}}],["ipoints",{"2":{"97":4}}],["ip",{"2":{"69":2}}],["ipt",{"2":{"45":8}}],["ihole",{"2":{"69":2}}],["ih",{"2":{"57":22}}],["i2",{"2":{"47":2}}],["i1",{"2":{"47":2}}],["ii",{"2":{"45":8}}],["io",{"2":{"41":5,"149":5,"152":5}}],["i+1",{"2":{"40":8,"127":1,"158":2,"160":1}}],["i",{"2":{"9":1,"13":4,"22":1,"34":1,"37":14,"40":16,"45":28,"47":4,"52":2,"56":2,"57":4,"66":2,"69":8,"86":7,"97":28,"126":14,"127":17,"136":16,"153":2,"157":3,"158":12,"160":28,"167":2,"170":2,"171":1,"177":3}}],["id",{"2":{"173":1}}],["identical",{"2":{"136":1,"144":1}}],["identity",{"2":{"127":4,"136":2,"146":1}}],["ideal",{"2":{"127":1}}],["idea",{"2":{"6":1,"20":1,"25":1,"29":1,"40":1,"129":1}}],["idx`",{"2":{"45":1}}],["idx",{"2":{"37":6,"45":167,"47":9,"50":23,"51":5,"53":5,"56":2,"145":34,"158":51}}],["id=",{"2":{"6":2}}],["ignored",{"2":{"6":1,"127":1}}],["ignore",{"2":{"6":1,"127":2}}],["i>",{"2":{"6":2}}],["i>method",{"2":{"6":2}}],["innerjoin",{"2":{"176":1,"177":1}}],["inner",{"2":{"97":6,"136":5,"175":1}}],["inline",{"2":{"97":4,"126":1,"136":22,"165":2}}],["in=1",{"2":{"97":1}}],["in`",{"2":{"97":1}}],["inject",{"0":{"55":1},"2":{"149":1}}],["inaccuracies",{"2":{"54":1}}],["ind",{"2":{"177":2}}],["individual",{"2":{"172":1}}],["indicate",{"2":{"136":1}}],["indicates",{"2":{"20":1}}],["indices",{"2":{"45":4,"136":4,"160":16}}],["indeed",{"2":{"141":1}}],["index",{"2":{"40":8,"45":11,"97":1,"136":1,"158":1}}],["inds",{"2":{"127":3}}],["inplace",{"2":{"40":1}}],["inputs",{"2":{"6":1,"45":1,"69":1,"72":1,"85":1,"100":1,"160":1}}],["input",{"2":{"6":12,"37":1,"50":1,"51":1,"53":1,"54":1,"56":1,"127":1,"129":1,"152":3,"153":2,"157":1,"158":1,"159":1,"171":1}}],["inbounds",{"2":{"40":16,"66":5,"97":1}}],["inspiration",{"2":{"50":1}}],["inspired",{"2":{"49":1,"50":2}}],["inside",{"2":{"37":3,"43":1,"45":3,"47":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":2,"65":3,"66":1,"77":1,"97":1,"115":1,"118":1,"127":2}}],["insertion",{"2":{"45":1}}],["insert",{"2":{"37":1,"158":1}}],["instability",{"2":{"24":2}}],["instantiating",{"2":{"20":1}}],["instead",{"2":{"18":1,"24":1}}],["instructs",{"2":{"6":1,"166":2}}],["init=nothing",{"2":{"136":1}}],["init=typemax",{"2":{"66":2}}],["init=zero",{"2":{"34":1,"47":1}}],["initial",{"2":{"54":2,"152":1}}],["initially",{"2":{"45":1}}],["initialize",{"2":{"40":3,"44":2,"45":1,"54":1}}],["init",{"2":{"19":1,"31":1,"37":1,"44":2,"136":30,"152":4}}],["incorrect",{"2":{"140":1,"141":1}}],["increase",{"2":{"45":1,"97":1}}],["increasing",{"2":{"6":1,"156":1}}],["increment",{"2":{"40":5}}],["including",{"2":{"37":1,"45":2,"54":1,"66":1,"77":1,"78":1,"79":1,"80":1,"97":2}}],["include",{"2":{"31":41,"37":1,"45":1,"58":1,"66":2,"156":2,"165":1,"172":2,"173":1}}],["included",{"2":{"6":2,"57":2,"139":2,"145":2,"172":1}}],["includes",{"2":{"4":2,"6":2,"57":1,"66":2,"69":1,"97":1}}],["incircle",{"0":{"16":1}}],["investigate",{"2":{"127":1}}],["investigating",{"0":{"62":1}}],["inverted",{"2":{"6":1,"63":1}}],["invalid",{"2":{"20":1,"52":2,"141":1,"143":1,"144":1}}],["invoke",{"2":{"20":1}}],["involved",{"2":{"129":1}}],["involve",{"2":{"20":1}}],["involving",{"2":{"6":3,"51":1,"53":1,"56":1}}],["invocation",{"2":{"18":1}}],["ing",{"2":{"1":1,"6":2,"40":1,"161":1}}],["intr",{"2":{"45":28,"47":9,"50":16,"54":8}}],["intr2",{"2":{"45":2,"54":14}}],["intr1",{"2":{"45":3,"54":21,"97":2}}],["intrs",{"2":{"45":10,"54":5}}],["introduction",{"0":{"25":1},"1":{"26":1,"27":1,"28":1}}],["introducing",{"2":{"24":1}}],["introduces",{"2":{"24":1}}],["int",{"2":{"45":6,"57":7,"86":7,"153":1,"156":1,"158":5,"159":1,"160":1}}],["integrate",{"2":{"34":1}}],["integrating",{"2":{"34":1}}],["integrals",{"2":{"33":1}}],["integral",{"2":{"33":1}}],["intended",{"2":{"6":1,"138":2,"139":1}}],["intermediate",{"2":{"47":1}}],["inter2",{"2":{"47":15}}],["inter1",{"2":{"47":23}}],["interpreted",{"2":{"40":1}}],["interpolation",{"2":{"5":1,"6":1,"39":1,"40":2,"150":1}}],["interpolated",{"2":{"5":3,"6":3,"40":17,"150":1}}],["interpolate",{"2":{"0":2,"5":2,"6":4,"38":1,"39":2,"40":25}}],["interest",{"2":{"40":1,"66":1}}],["internal",{"2":{"39":1}}],["internals",{"2":{"24":1}}],["inter",{"2":{"6":3,"45":21,"50":1,"51":1,"53":5,"54":4}}],["interface",{"0":{"138":1},"2":{"6":3,"20":1,"58":1,"63":1,"136":1,"137":1,"138":4,"139":1,"156":1,"171":1}}],["interacted",{"2":{"97":1}}],["interaction",{"0":{"97":1},"2":{"97":2}}],["interactions",{"2":{"45":1,"57":3,"97":15}}],["interactive",{"2":{"13":1,"14":1}}],["interacting",{"2":{"6":1,"53":1,"97":2}}],["interacts",{"2":{"3":1,"6":1,"97":3,"105":1,"106":1,"109":3,"110":1,"111":1}}],["interact",{"2":{"3":2,"6":2,"56":1,"57":1,"88":1,"97":5,"100":1,"105":1,"106":1,"108":1,"109":2,"110":2,"111":1}}],["interior",{"2":{"3":6,"6":7,"33":1,"37":9,"40":7,"44":5,"45":1,"57":18,"71":1,"72":1,"74":1,"75":3,"78":5,"79":1,"80":2,"84":2,"85":1,"86":1,"89":2,"91":2,"92":6,"93":3,"97":15,"105":1,"106":3,"109":1,"110":2,"111":2,"115":1,"116":3,"121":2,"126":2,"139":1,"142":1}}],["interiors",{"2":{"3":6,"6":7,"40":20,"71":1,"72":1,"74":1,"84":1,"85":1,"88":1,"89":1,"94":1,"97":5,"99":1,"100":1,"105":1,"106":1,"108":1,"109":2,"110":1,"115":1,"116":1,"119":3,"120":3}}],["intersectingpolygons",{"2":{"6":3}}],["intersecting",{"0":{"143":1},"1":{"144":1,"145":1},"2":{"6":4,"31":1,"45":2,"57":2,"139":4,"143":1,"145":4}}],["intersections",{"0":{"54":1},"2":{"45":2,"47":2,"52":1,"53":2,"54":1,"57":1,"97":2}}],["intersection",{"0":{"53":1,"98":1},"1":{"99":1,"100":1},"2":{"0":2,"3":3,"6":19,"9":1,"15":4,"23":1,"31":1,"45":38,"47":6,"50":3,"51":4,"52":4,"53":15,"54":73,"56":2,"57":2,"86":2,"97":6,"99":1,"103":5}}],["intersect",{"2":{"3":8,"6":11,"45":4,"47":3,"51":2,"53":1,"54":1,"56":1,"57":5,"71":1,"72":2,"74":1,"75":1,"85":1,"89":1,"92":1,"94":1,"97":4,"99":2,"103":1,"115":1,"116":2,"119":3,"120":3,"144":1,"145":4}}],["intersects",{"0":{"99":1},"2":{"0":2,"3":3,"6":6,"31":1,"45":1,"54":2,"57":2,"86":2,"98":1,"99":4,"100":4,"103":5,"121":1,"145":2,"175":1}}],["into",{"2":{"5":1,"6":7,"17":1,"30":1,"34":1,"37":1,"40":1,"44":4,"45":2,"50":1,"51":1,"53":1,"97":1,"127":4,"131":1,"136":6,"145":1,"156":1,"164":1,"167":2,"170":2,"175":1}}],["int64",{"2":{"1":6,"6":6,"141":6,"157":1,"158":1,"160":1,"161":6,"170":14}}],["info",{"2":{"150":1}}],["information",{"0":{"172":1},"2":{"6":1,"27":1,"40":1,"45":2,"46":1,"54":1,"63":1,"97":1,"169":1,"172":3,"174":2}}],["infinity",{"2":{"97":1,"103":1}}],["inf",{"2":{"1":1,"9":1,"50":2,"157":1,"160":3}}],["in",{"0":{"23":1},"2":{"1":6,"3":3,"4":1,"5":4,"6":51,"7":1,"9":2,"13":6,"14":2,"17":2,"18":4,"20":1,"23":3,"24":2,"25":1,"27":1,"28":1,"29":1,"30":3,"31":2,"33":1,"34":3,"37":7,"38":2,"40":22,"41":1,"43":2,"44":5,"45":72,"47":31,"50":6,"51":9,"52":3,"53":5,"54":29,"56":11,"57":28,"62":1,"63":3,"65":6,"66":6,"68":1,"69":17,"71":2,"72":1,"75":10,"78":1,"79":1,"80":1,"81":1,"82":1,"85":1,"86":7,"89":9,"91":1,"92":1,"93":1,"95":1,"96":1,"97":135,"99":2,"100":1,"102":1,"103":11,"105":1,"106":11,"110":1,"112":1,"113":1,"115":1,"116":10,"119":3,"120":3,"122":1,"123":1,"126":4,"127":10,"128":3,"129":1,"131":3,"134":2,"135":1,"136":12,"137":1,"138":1,"139":2,"143":1,"145":7,"146":1,"147":2,"148":3,"149":1,"150":2,"151":2,"152":14,"153":7,"154":1,"156":5,"157":2,"158":4,"159":1,"160":5,"161":2,"162":1,"163":4,"164":1,"165":1,"166":4,"167":8,"169":1,"170":2,"171":6,"174":2,"175":4,"176":3,"177":1,"178":1}}],["itererable",{"2":{"167":1}}],["iter",{"2":{"136":31}}],["iterate",{"2":{"40":2,"134":1,"136":5}}],["iteration",{"2":{"34":1}}],["iterators",{"2":{"13":1,"40":1,"45":5,"47":3,"53":1,"57":2,"127":1,"136":11,"145":6,"153":1}}],["iterator",{"2":{"6":2,"45":4,"53":2,"131":2,"136":2}}],["iterabletype",{"2":{"136":10}}],["iterable",{"2":{"4":1,"6":3,"18":1,"34":1,"47":1,"63":1,"131":1,"136":37,"170":1}}],["iterables",{"2":{"1":2,"6":2,"22":1,"136":6}}],["ith",{"2":{"45":3,"57":7}}],["itself",{"2":{"47":1,"126":1,"134":1}}],["its",{"2":{"5":1,"6":10,"18":1,"33":1,"40":1,"45":2,"47":4,"57":1,"78":1,"131":1,"136":1,"137":1,"156":1,"157":1,"158":1,"159":3,"175":1}}],["it",{"2":{"1":4,"4":1,"6":19,"9":1,"18":11,"19":2,"20":1,"22":1,"27":3,"28":1,"33":2,"34":3,"36":1,"37":1,"39":1,"41":1,"44":2,"45":2,"46":1,"47":2,"51":1,"52":1,"53":1,"54":4,"56":1,"57":3,"62":2,"63":2,"66":3,"69":1,"74":2,"77":3,"91":3,"97":14,"102":1,"103":1,"108":2,"118":3,"125":1,"126":2,"127":4,"129":3,"131":3,"134":3,"135":1,"136":15,"137":1,"139":1,"141":1,"142":1,"143":1,"148":5,"151":2,"152":1,"156":1,"158":1,"163":1,"164":2,"165":1,"166":7,"171":3,"172":3,"174":3,"177":2,"178":2}}],["iff",{"2":{"136":1}}],["if",{"0":{"55":1},"2":{"1":5,"3":17,"4":19,"5":1,"6":74,"18":1,"22":2,"33":1,"34":6,"36":1,"37":15,"40":5,"41":3,"44":1,"45":95,"47":36,"50":8,"51":13,"52":12,"53":9,"54":44,"56":10,"57":22,"63":3,"65":2,"66":8,"68":2,"69":35,"71":1,"72":1,"74":1,"75":2,"77":4,"78":3,"79":3,"80":2,"81":1,"82":1,"84":1,"85":1,"86":9,"88":1,"89":3,"91":5,"92":4,"93":2,"94":2,"95":1,"96":1,"97":132,"99":1,"100":1,"102":4,"103":16,"105":1,"106":2,"108":4,"109":3,"110":2,"111":2,"112":1,"113":1,"115":1,"116":2,"118":5,"119":3,"120":3,"121":1,"122":1,"123":1,"126":5,"127":35,"131":1,"134":1,"136":21,"138":1,"139":2,"142":1,"143":1,"145":12,"146":1,"147":1,"148":3,"149":2,"152":6,"153":2,"156":1,"158":12,"160":12,"161":1,"162":1,"165":1,"166":2,"171":1,"174":1,"176":2,"177":1}}],["isolate",{"2":{"156":1}}],["isodd",{"2":{"50":1}}],["istable",{"2":{"136":2}}],["isequal",{"2":{"127":1}}],["iseven",{"2":{"97":1}}],["isempty",{"2":{"34":1,"40":4,"47":1,"51":1,"52":2,"53":1,"127":1,"138":1,"158":1}}],["isparallel",{"2":{"97":1,"126":8}}],["is3d",{"2":{"69":1,"136":1,"147":1,"161":1,"162":1,"167":10}}],["issue",{"2":{"45":1}}],["issues",{"2":{"25":1,"29":1}}],["isa",{"2":{"18":1,"40":9,"136":4,"167":1}}],["isnothing",{"2":{"41":1,"45":9,"50":1,"52":2,"54":2,"57":2,"69":1,"127":1,"149":1,"152":1,"156":1,"157":1,"158":5,"159":1,"160":6}}],["isn",{"2":{"6":1,"34":1,"45":4,"47":1,"50":1,"52":1,"54":3,"57":2,"66":3,"69":1,"74":1,"97":9,"103":1,"156":1,"166":1}}],["isconcave",{"0":{"126":1},"2":{"0":1,"6":2,"62":1,"124":1,"126":3}}],["isclockwise",{"0":{"125":1},"2":{"0":1,"6":2,"47":1,"124":1,"126":5,"127":2}}],["is",{"0":{"29":1,"33":2,"36":1,"43":1,"46":1,"49":1,"65":2,"68":1,"71":1,"74":1,"84":1,"88":1,"99":1,"102":1,"105":1,"115":1,"134":1},"2":{"0":1,"1":10,"3":8,"4":43,"5":1,"6":108,"9":3,"11":1,"13":1,"14":1,"18":3,"19":1,"20":1,"22":3,"23":2,"25":2,"29":2,"33":7,"34":19,"36":1,"37":19,"38":2,"39":2,"40":15,"41":3,"43":2,"44":5,"45":82,"46":3,"47":22,"49":1,"50":2,"51":4,"52":13,"53":4,"54":40,"56":7,"57":20,"58":1,"62":5,"63":4,"65":8,"66":23,"69":13,"71":2,"72":3,"74":4,"75":4,"77":7,"78":3,"79":3,"80":1,"81":1,"82":1,"85":3,"86":3,"88":1,"89":5,"91":9,"92":4,"93":2,"94":1,"95":1,"96":1,"97":91,"100":2,"102":3,"103":12,"106":4,"108":2,"115":4,"116":5,"118":8,"119":3,"120":3,"121":1,"122":2,"123":1,"125":2,"126":7,"127":11,"128":1,"129":2,"131":1,"134":3,"135":1,"136":24,"137":3,"138":2,"139":1,"140":7,"141":2,"142":1,"143":4,"144":1,"145":2,"147":1,"148":7,"149":2,"150":3,"151":3,"152":9,"153":6,"155":1,"156":4,"157":1,"158":2,"159":1,"161":2,"163":1,"164":1,"165":1,"166":3,"170":4,"171":5,"172":3,"173":1,"174":3,"175":2,"176":5,"177":2}}],["cpu",{"2":{"177":1}}],["cp",{"2":{"168":1}}],["cy",{"2":{"126":2}}],["cyan",{"2":{"41":1,"149":1,"152":1}}],["cx",{"2":{"126":2}}],["cdot",{"2":{"126":1}}],["cs",{"2":{"97":9}}],["cshape",{"2":{"43":3}}],["cw",{"2":{"47":2}}],["cb",{"2":{"39":1,"62":1,"127":1}}],["cgrad",{"2":{"39":1}}],["cgal",{"2":{"39":1}}],["c",{"2":{"34":1,"43":1,"47":4,"50":5,"55":3,"97":24,"152":1}}],["cleaner",{"2":{"63":1}}],["cleanest",{"2":{"63":1}}],["clear",{"2":{"46":1}}],["clearly",{"2":{"33":1,"36":1,"65":1}}],["clamped",{"2":{"54":18}}],["clamp",{"2":{"37":1,"54":1}}],["classified",{"2":{"45":1}}],["classify",{"2":{"45":4}}],["class",{"2":{"6":1,"127":1}}],["clipping",{"0":{"45":1,"51":1,"52":1,"54":1,"56":1,"57":1},"2":{"6":1,"9":1,"31":8,"45":9,"50":3,"51":1,"53":1,"56":1,"143":1}}],["closure",{"2":{"136":2}}],["closing",{"2":{"37":1}}],["close",{"2":{"37":5,"45":2,"47":1,"50":1,"54":1,"66":9,"127":1,"141":1,"142":4}}],["closest",{"2":{"4":3,"6":3,"54":2,"65":1,"66":6}}],["closed2",{"2":{"69":2}}],["closed1",{"2":{"69":2}}],["closed",{"0":{"140":1},"1":{"141":1,"142":1},"2":{"4":4,"6":11,"9":1,"31":1,"34":3,"37":6,"44":3,"45":1,"47":1,"54":1,"57":3,"69":21,"77":2,"78":5,"79":5,"91":2,"92":5,"93":3,"97":52,"109":5,"110":1,"118":3,"119":5,"120":5,"126":1,"127":1,"137":1,"139":1,"140":1,"141":1,"142":2,"170":1}}],["closedring",{"2":{"0":1,"6":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":4}}],["clockwise",{"2":{"4":1,"6":4,"9":1,"33":1,"34":1,"47":7,"62":1,"125":2,"126":3,"127":1}}],["ceil",{"2":{"153":1}}],["ce",{"2":{"97":11}}],["certainly",{"2":{"54":1}}],["certain",{"2":{"17":1,"18":1,"27":1,"30":1}}],["central",{"2":{"45":1}}],["centroids",{"2":{"43":1,"44":1}}],["centroid",{"0":{"42":1,"43":1},"1":{"43":1,"44":1},"2":{"0":4,"4":2,"6":6,"31":1,"42":3,"43":4,"44":38,"129":1,"156":4}}],["cent",{"2":{"43":2}}],["centered",{"2":{"45":1}}],["center",{"2":{"6":1,"43":1,"127":1}}],["cells",{"2":{"127":1}}],["cell",{"2":{"6":4,"46":3,"47":28,"127":2}}],["chunks",{"2":{"136":8}}],["chunk",{"2":{"136":12}}],["chose",{"2":{"24":1,"127":1}}],["choose",{"2":{"6":1,"63":1,"127":2}}],["changes",{"2":{"45":1}}],["changed",{"2":{"45":1}}],["change",{"2":{"24":1,"45":1,"62":1}}],["chain=2",{"2":{"45":1}}],["chain=1",{"2":{"45":1}}],["chain",{"2":{"45":66,"52":3,"54":4,"57":4,"62":2}}],["chains",{"2":{"20":1,"45":1}}],["chairmarks",{"2":{"13":1,"152":1,"156":1}}],["children",{"2":{"156":1}}],["child",{"2":{"6":2,"131":2,"136":7}}],["checkargs",{"2":{"157":1,"158":1,"159":1,"160":1}}],["checking",{"2":{"69":1,"158":1}}],["checks",{"0":{"86":1,"98":1},"1":{"99":1,"100":1},"2":{"41":1,"45":1,"54":1,"68":1,"71":1,"74":1,"84":1,"88":1,"97":5,"99":1,"102":1,"103":1,"105":1,"115":1,"176":1}}],["check",{"2":{"4":1,"6":1,"7":1,"44":1,"45":8,"47":3,"50":1,"51":1,"54":4,"55":1,"56":1,"69":8,"97":11,"127":5,"131":3,"132":1,"144":1,"146":1,"151":2,"158":1,"160":1}}],["checked",{"2":{"4":1,"6":1,"45":1,"54":1,"62":1,"97":1,"146":1}}],["c2",{"2":{"6":3,"15":2,"66":3,"69":14,"127":21}}],["c1",{"2":{"6":3,"15":2,"66":4,"69":13,"127":26}}],["ctor",{"2":{"1":1,"6":1,"161":1}}],["categorize",{"2":{"50":1}}],["categorical",{"2":{"39":1}}],["came",{"2":{"50":1}}],["case",{"2":{"37":1,"38":2,"44":1,"45":1,"51":1,"54":2,"57":1,"97":16,"136":1,"178":1}}],["cases",{"2":{"6":1,"40":1,"50":2,"97":3,"134":1,"136":5}}],["cause",{"2":{"18":1,"23":1,"158":1}}],["careful",{"2":{"40":1,"134":1}}],["care",{"2":{"17":1}}],["carried",{"2":{"6":1,"166":1}}],["cairomakie",{"2":{"13":1,"33":1,"36":1,"39":2,"43":1,"46":1,"49":1,"60":1,"61":1,"62":1,"65":1,"68":1,"71":1,"74":1,"84":1,"88":1,"99":1,"102":1,"105":1,"115":1,"151":1,"152":1,"156":1,"168":1,"169":1,"176":1,"177":1}}],["california",{"2":{"177":1}}],["callable",{"2":{"127":4,"138":1}}],["calling",{"2":{"45":2,"136":1}}],["calls",{"2":{"45":1,"54":1,"57":1,"66":1,"75":1,"89":1,"106":1,"116":1,"134":1,"136":1,"153":1}}],["call",{"2":{"18":1,"24":1,"34":1,"44":1,"136":4,"154":1}}],["called",{"2":{"6":2,"44":3,"45":1,"136":1,"138":1,"139":1,"142":1,"166":1,"171":1}}],["calculation",{"2":{"54":1}}],["calculations",{"2":{"6":1,"25":2,"29":2,"54":1,"152":1}}],["calculating",{"2":{"4":1,"6":1,"18":1,"45":1,"146":1}}],["calculated",{"2":{"6":1,"43":2,"47":1,"54":2,"66":1,"136":4}}],["calculates",{"2":{"4":2,"6":6,"34":1,"40":2,"47":1,"54":2,"56":1,"66":2,"152":1,"159":1}}],["calculate",{"2":{"1":2,"5":1,"6":6,"11":1,"37":3,"40":3,"44":1,"47":1,"54":1,"97":1,"127":1,"133":1,"136":3}}],["calc",{"2":{"1":2,"6":4,"24":1,"37":4,"133":1,"135":1,"136":19,"146":1,"156":2,"165":1}}],["cache",{"2":{"6":1,"40":1}}],["cant",{"2":{"69":1,"127":1,"167":1}}],["cannot",{"2":{"3":3,"4":2,"6":5,"34":1,"69":1,"77":1,"80":1,"103":2,"106":1,"108":2,"110":1,"121":1}}],["can",{"2":{"1":1,"4":2,"6":16,"7":2,"9":1,"13":1,"14":1,"24":1,"30":1,"31":1,"34":1,"37":1,"38":2,"39":1,"40":3,"41":1,"44":1,"45":3,"47":1,"51":3,"53":3,"54":1,"56":3,"57":1,"62":1,"63":2,"68":1,"69":3,"71":1,"74":1,"86":1,"88":1,"97":23,"99":2,"102":2,"103":3,"105":1,"109":1,"110":1,"115":1,"118":1,"119":1,"120":1,"127":1,"128":1,"129":1,"131":1,"135":1,"136":7,"139":1,"141":2,"142":1,"143":2,"144":1,"146":1,"149":1,"151":1,"152":2,"156":2,"166":1,"170":6,"171":1,"172":3,"174":3,"175":3,"176":3}}],["creation",{"2":{"170":1,"172":1}}],["creating",{"0":{"169":1,"170":1,"173":1},"1":{"170":1,"171":1,"172":1,"173":1,"174":1},"2":{"97":1}}],["creates",{"2":{"7":1,"45":3}}],["create",{"0":{"172":1},"2":{"6":2,"13":2,"14":1,"45":1,"50":1,"54":2,"63":1,"127":2,"136":1,"139":2,"143":3,"145":2,"169":2,"170":4,"171":5,"172":3,"173":1,"174":1,"176":1}}],["created",{"2":{"4":2,"6":2,"45":1,"66":3}}],["criteria",{"2":{"75":2,"89":2,"106":2,"116":2,"158":3}}],["cropping",{"2":{"39":2}}],["cross=1",{"2":{"53":1}}],["cross`",{"2":{"53":1}}],["crossings",{"2":{"45":3,"97":1}}],["crossing",{"0":{"86":1},"2":{"6":2,"45":81,"51":1,"52":7,"53":3,"54":7,"56":1,"57":6,"75":1,"86":1,"97":1,"116":1}}],["cross",{"0":{"113":1},"2":{"6":1,"9":1,"37":3,"45":13,"50":14,"51":2,"52":1,"53":2,"54":10,"55":4,"56":2,"57":1,"75":1,"86":2,"89":1,"97":17,"103":2,"106":1,"116":1,"126":3}}],["crosses",{"2":{"0":2,"3":2,"6":3,"31":1,"45":1,"50":1,"86":26,"97":2,"175":1}}],["crc",{"2":{"6":1,"40":1}}],["crs2",{"2":{"171":2}}],["crs1",{"2":{"171":2,"172":1}}],["crs`",{"2":{"148":6}}],["crs=geom",{"2":{"167":1}}],["crs=gi",{"2":{"136":8}}],["crs=nothing",{"2":{"136":1,"146":1,"156":1}}],["crs",{"0":{"171":1},"2":{"1":16,"4":2,"6":10,"63":1,"127":10,"133":2,"135":3,"136":31,"146":1,"148":7,"156":1,"167":1,"169":1,"171":13,"172":7,"174":1}}],["customize",{"2":{"136":2}}],["custom",{"0":{"178":1},"2":{"6":1,"40":1,"178":2}}],["curr^2",{"2":{"37":2}}],["curr",{"2":{"37":8,"45":116,"50":9,"57":3,"145":26}}],["currentnode",{"2":{"127":8}}],["current",{"2":{"37":1,"40":8,"45":3,"50":2,"52":1,"54":1,"57":6,"127":2,"145":3}}],["currently",{"2":{"5":1,"6":3,"23":1,"40":1,"45":1,"50":1,"52":2,"127":1,"136":1}}],["curve",{"0":{"97":1},"2":{"3":1,"4":7,"6":18,"34":7,"37":6,"45":5,"47":3,"53":7,"65":1,"66":22,"69":6,"75":2,"77":4,"78":9,"79":9,"89":1,"91":4,"92":6,"93":3,"97":152,"103":1,"106":1,"109":6,"111":3,"116":1,"118":4,"119":6,"120":6}}],["curves",{"2":{"0":1,"3":1,"6":5,"34":3,"47":3,"54":1,"65":1,"66":1,"69":13,"80":1,"97":1,"103":1,"121":1,"156":2}}],["cutpolygon",{"2":{"49":1}}],["cuts",{"2":{"49":1}}],["cutting",{"0":{"48":1},"1":{"49":1,"50":1},"2":{"45":1,"50":2}}],["cut",{"0":{"49":1},"2":{"0":1,"6":6,"31":1,"40":1,"48":1,"49":5,"50":22,"97":1}}],["cos",{"2":{"170":3,"171":1,"172":2}}],["coastlines",{"2":{"168":1}}],["coarse",{"2":{"6":1,"150":1,"153":1}}],["copy",{"2":{"138":1,"160":1}}],["coors1",{"2":{"126":2}}],["coors2",{"2":{"126":3}}],["coord",{"2":{"153":6}}],["coords",{"2":{"50":9,"153":8}}],["coordinatetransformations",{"2":{"1":2,"6":2,"156":1,"161":2,"169":1,"170":5,"172":2}}],["coordinate",{"0":{"40":1,"147":1,"171":1,"172":1},"2":{"1":4,"5":5,"6":7,"25":1,"29":1,"39":2,"40":10,"136":1,"148":4,"153":1,"169":3,"171":1}}],["coordinates",{"0":{"5":1,"38":1},"1":{"39":1,"40":1},"2":{"0":4,"1":1,"4":2,"5":7,"6":20,"34":2,"38":8,"40":25,"45":2,"46":1,"50":2,"51":1,"53":1,"56":1,"66":1,"69":2,"129":1,"147":2,"148":1,"151":1,"152":3,"171":2}}],["co",{"2":{"97":2}}],["corner",{"2":{"47":4,"127":1}}],["corners",{"2":{"47":1}}],["correspondent",{"2":{"126":1}}],["correspond",{"2":{"45":1}}],["corresponding",{"2":{"37":3,"52":2}}],["correctly",{"2":{"151":1}}],["correctness",{"2":{"140":1,"166":1}}],["corrected",{"2":{"138":1}}],["correcting",{"2":{"20":1,"138":1}}],["corrections",{"0":{"137":1,"139":1},"1":{"138":1,"139":1},"2":{"138":6,"141":1,"144":1}}],["correction",{"2":{"6":10,"31":4,"51":1,"52":2,"53":1,"54":2,"56":1,"57":2,"137":2,"138":8,"139":7,"140":1,"142":2,"143":1,"145":2}}],["correct",{"2":{"6":3,"24":1,"34":1,"37":1,"44":1,"45":1,"47":1,"51":1,"53":1,"56":1,"66":1,"69":1,"75":1,"89":1,"103":1,"106":1,"116":1,"137":1,"140":1,"141":2}}],["cov",{"2":{"47":16}}],["cover",{"2":{"77":1,"81":1}}],["covering",{"2":{"6":2,"84":1,"139":2,"145":2}}],["covered",{"0":{"79":1,"80":1,"120":1},"2":{"3":1,"6":1,"52":1,"57":1,"74":1,"75":1,"79":2,"80":2,"81":1,"82":2,"84":1,"96":2,"97":3,"145":1}}],["coveredby",{"0":{"73":1,"74":1,"77":1,"78":1,"81":1,"82":1,"96":1},"1":{"74":1,"75":1},"2":{"0":2,"3":4,"6":4,"31":1,"45":1,"73":1,"74":3,"75":10,"76":6,"77":13,"78":15,"79":13,"80":5,"81":2,"82":2,"85":3,"175":1}}],["covers",{"0":{"83":1,"84":1},"1":{"84":1,"85":1},"2":{"0":2,"3":5,"6":5,"31":1,"83":1,"84":4,"85":5,"127":1,"175":1}}],["coverages",{"2":{"6":1,"47":1}}],["coverage",{"0":{"46":1},"2":{"0":1,"6":2,"31":1,"46":3,"47":16}}],["code",{"2":{"7":1,"10":1,"30":5,"40":1,"75":1,"89":1,"97":1,"106":1,"116":1,"126":1,"163":1,"165":1,"177":1}}],["colname",{"2":{"136":3}}],["col",{"2":{"136":3}}],["column",{"2":{"22":1,"136":16,"173":2,"175":2}}],["colored",{"2":{"176":1}}],["color=",{"2":{"171":2}}],["colors",{"2":{"60":1,"61":1,"168":1,"176":2}}],["colorrange",{"2":{"39":2,"65":1}}],["colorbar",{"2":{"39":1,"62":1,"65":1,"127":1}}],["colormap",{"2":{"14":1,"39":3,"65":1}}],["color",{"2":{"6":3,"33":1,"39":2,"40":1,"41":1,"43":1,"49":3,"60":1,"61":1,"62":2,"65":2,"68":4,"71":4,"74":1,"84":1,"88":4,"102":4,"115":4,"149":1,"152":1,"168":1,"170":1,"171":1,"176":5}}],["collect",{"2":{"11":3,"13":1,"33":2,"36":1,"40":1,"43":1,"46":2,"49":2,"63":2,"65":1,"127":3,"136":3,"151":4,"167":2}}],["collections",{"0":{"81":1,"82":1,"95":1,"96":1,"112":1,"113":1,"122":1,"123":1},"2":{"1":2,"6":10,"22":1,"135":1,"136":7,"156":2,"174":1}}],["collection",{"2":{"1":1,"4":7,"6":13,"18":2,"27":2,"34":3,"37":2,"47":2,"66":2,"81":2,"82":2,"95":2,"96":2,"112":2,"113":2,"122":2,"123":2,"129":1,"136":3,"156":1,"162":1,"167":1}}],["collinear",{"2":{"3":1,"6":2,"45":5,"51":2,"53":3,"54":12,"56":2,"102":1,"103":2}}],["commonly",{"2":{"174":1}}],["common",{"2":{"68":1,"153":1,"169":1,"171":1,"172":1}}],["commented",{"2":{"126":1}}],["comments",{"2":{"97":1}}],["comment",{"2":{"28":1}}],["combos",{"2":{"52":1,"54":1,"57":1}}],["combines",{"2":{"44":1}}],["combine",{"2":{"44":2,"45":5,"145":1}}],["combined",{"2":{"6":1,"45":4,"57":1,"139":1,"145":2,"170":1}}],["combination",{"2":{"6":1,"45":1,"131":1,"136":1}}],["coming",{"2":{"47":1}}],["com",{"2":{"6":2,"54":1,"63":1}}],["compilation",{"2":{"165":1}}],["compiled",{"2":{"24":1}}],["compiler",{"2":{"24":1,"136":2,"165":2}}],["complex",{"2":{"129":1,"156":1,"175":1}}],["complexity",{"2":{"6":1,"129":1,"153":1}}],["complete",{"2":{"34":1}}],["completely",{"2":{"1":1,"3":4,"6":5,"45":2,"52":1,"57":1,"71":2,"72":1,"75":1,"84":1,"85":1,"97":1,"116":1,"136":1}}],["component",{"2":{"6":1,"34":3,"44":11,"47":8,"54":1,"131":1,"136":3}}],["components",{"2":{"6":2,"43":1,"44":2,"131":2,"136":24}}],["composed",{"2":{"4":4,"6":5,"69":5,"170":2}}],["comprised",{"2":{"6":3,"51":1,"53":1,"56":1}}],["computing",{"2":{"41":1,"58":1}}],["computational",{"2":{"6":1,"40":1}}],["computation",{"2":{"6":6,"40":1,"44":1,"51":1,"53":1,"56":1,"157":2,"158":2,"159":2}}],["computer",{"2":{"6":1,"40":1}}],["computes",{"2":{"6":1,"63":1}}],["compute",{"2":{"4":1,"6":3,"34":1,"40":1,"63":3,"153":1}}],["computed",{"2":{"4":4,"6":5,"34":3,"37":1,"40":3,"47":1,"168":1}}],["compact",{"2":{"177":3}}],["comparisons",{"2":{"175":1}}],["comparing",{"2":{"57":1,"69":1}}],["compares",{"2":{"127":1}}],["compared",{"2":{"69":1}}],["compare",{"2":{"3":1,"4":1,"6":2,"37":1,"57":1,"69":2,"103":1}}],["compatibility",{"2":{"34":1}}],["compatible",{"2":{"1":3,"6":1,"22":1,"25":1,"29":1,"34":1,"37":1,"40":2,"44":1,"47":1,"66":1,"69":1,"72":1,"75":1,"85":1,"89":1,"100":1,"103":1,"106":1,"116":1,"134":1,"136":1,"148":2}}],["couple",{"2":{"173":1}}],["course",{"2":{"135":1}}],["country",{"2":{"177":8}}],["countries",{"2":{"11":1,"61":1,"156":1}}],["counted",{"2":{"54":2}}],["counters",{"2":{"40":8}}],["counter",{"2":{"6":1,"45":7,"97":1,"125":1,"126":1}}],["counterclockwise",{"2":{"4":1,"6":2,"9":1,"33":2,"34":1,"62":1,"63":1}}],["count",{"2":{"45":16,"127":1,"160":1}}],["couldn",{"2":{"9":1,"165":1}}],["could",{"2":{"4":1,"6":1,"34":3,"54":4,"57":1,"58":1,"66":1,"97":2,"148":1}}],["conditions",{"2":{"175":1}}],["connected",{"2":{"97":5}}],["connect",{"2":{"47":11}}],["connecting",{"2":{"37":1,"158":1,"170":2}}],["connections",{"2":{"6":2,"139":2,"145":2}}],["context",{"2":{"152":4,"171":2}}],["contents",{"2":{"136":1,"140":1}}],["contours",{"2":{"127":1}}],["contour",{"2":{"127":4}}],["continue",{"2":{"34":1,"45":7,"47":1,"52":2,"54":1,"97":1,"138":1,"145":3,"160":1,"177":1}}],["contributions",{"2":{"25":1,"29":1}}],["controlled",{"2":{"24":1}}],["control",{"2":{"23":1}}],["containing",{"2":{"46":1,"176":1}}],["contain",{"2":{"3":1,"6":1,"30":1,"57":1,"71":1,"103":1,"170":1}}],["contained",{"2":{"3":1,"6":1,"9":1,"57":4,"72":1,"84":1,"102":1,"103":1,"136":1,"176":1}}],["contains",{"0":{"70":1,"71":1},"1":{"71":1,"72":1},"2":{"0":2,"3":4,"6":4,"30":1,"31":1,"45":1,"57":1,"58":1,"70":1,"71":5,"72":4,"134":1,"144":1,"175":1,"176":1}}],["consistent",{"2":{"45":1,"129":1}}],["consistency",{"2":{"22":1}}],["considered",{"2":{"37":1,"40":1}}],["consider",{"2":{"33":1,"36":1,"43":1,"46":1,"47":3,"49":1,"65":2,"68":1,"71":1,"74":1,"84":1,"88":1,"97":3,"99":1,"102":1,"105":1,"115":1}}],["constprop",{"2":{"86":1}}],["constants",{"2":{"45":1}}],["const",{"2":{"31":4,"45":1,"75":4,"89":3,"106":4,"116":4,"133":3,"136":1,"156":4}}],["constrained",{"2":{"6":3,"51":1,"53":1,"56":1}}],["constructing",{"2":{"172":1}}],["construct",{"2":{"164":1}}],["constructors",{"2":{"6":2,"164":2}}],["constructed",{"2":{"1":1,"20":1,"148":1}}],["concepts",{"0":{"26":1},"1":{"27":1,"28":1},"2":{"30":1}}],["concieve",{"2":{"9":1}}],["concavehull",{"2":{"128":1}}],["concave",{"2":{"6":1,"37":2,"43":2,"126":2}}],["convention",{"2":{"43":1}}],["convenience",{"2":{"40":1,"166":1}}],["conversely",{"2":{"45":1}}],["conversion",{"0":{"162":1},"2":{"22":1}}],["converted",{"2":{"22":1,"40":3}}],["converts",{"2":{"6":1,"167":1}}],["convert",{"0":{"76":1,"90":1,"107":1,"117":1},"2":{"6":3,"40":6,"63":1,"65":1,"127":2,"152":1,"156":3,"162":1,"166":1,"167":1}}],["convexhull",{"2":{"128":1}}],["convexity",{"2":{"62":2}}],["convex",{"0":{"58":1,"61":1},"1":{"59":1,"60":1,"61":1,"62":1,"63":1},"2":{"0":1,"6":7,"31":2,"37":3,"58":4,"60":2,"61":1,"62":4,"63":11,"126":1}}],["vw",{"2":{"156":3}}],["von",{"2":{"127":1}}],["v2",{"2":{"97":9}}],["v1",{"2":{"97":9}}],["v`",{"2":{"40":2}}],["vcat",{"2":{"37":1,"40":1,"136":1}}],["vararg",{"2":{"40":1}}],["vary",{"2":{"37":1}}],["variables",{"2":{"24":1,"40":8,"72":1,"85":1,"100":1}}],["variable",{"2":{"24":1,"52":2}}],["vals",{"2":{"158":9}}],["valign",{"2":{"156":1}}],["validated",{"2":{"52":2,"54":2,"57":2}}],["validate",{"2":{"9":1}}],["valid",{"2":{"1":1,"6":8,"44":1,"51":2,"53":2,"54":3,"56":2,"127":1,"140":3,"141":1,"143":1,"144":1,"160":1,"161":1}}],["val",{"2":{"37":2,"45":2,"54":8,"97":30,"103":4}}],["values=",{"2":{"127":2}}],["values=sort",{"2":{"127":1}}],["values",{"2":{"1":1,"5":3,"6":16,"37":2,"39":3,"40":40,"44":2,"45":5,"47":5,"54":1,"66":2,"97":4,"127":19,"136":2,"158":2,"160":1,"165":1}}],["value",{"2":{"0":1,"4":7,"5":2,"6":15,"14":1,"24":1,"33":2,"34":4,"37":1,"40":45,"45":5,"47":2,"54":7,"65":1,"66":3,"127":6,"158":11,"166":2,"175":1}}],["vs",{"0":{"15":1},"2":{"12":1,"54":2}}],["vᵢ",{"2":{"6":1}}],["v0",{"2":{"6":2}}],["v",{"2":{"5":2,"6":6,"14":4,"40":23,"66":8}}],["visvalingam",{"2":{"154":1}}],["visvalingamwhyatt",{"0":{"159":1},"2":{"0":1,"6":3,"156":4,"159":5}}],["visualized",{"2":{"141":1}}],["visualize",{"2":{"99":1,"171":1}}],["visa",{"2":{"45":1}}],["visited",{"2":{"45":4}}],["view",{"2":{"45":2,"63":1,"127":1,"145":1,"158":3,"177":1}}],["viewport",{"2":{"14":1}}],["views",{"2":{"1":1,"45":1,"56":1,"148":1}}],["via",{"2":{"6":1,"41":1,"58":1,"128":1,"149":1,"152":1,"166":2}}],["vec",{"2":{"63":2}}],["vect",{"2":{"136":2}}],["vectypes",{"2":{"40":5}}],["vector",{"2":{"1":12,"4":6,"5":1,"6":46,"18":1,"23":1,"27":1,"36":1,"37":10,"40":14,"45":7,"50":6,"51":4,"52":1,"53":2,"54":3,"56":4,"97":1,"103":2,"126":3,"127":4,"129":1,"136":6,"141":8,"142":1,"144":22,"150":1,"151":1,"153":1,"157":1,"158":4,"159":1,"160":2,"161":10,"167":15,"170":18,"171":6,"172":9}}],["vectors",{"2":{"1":1,"4":2,"6":5,"22":1,"37":4,"40":3,"45":1,"63":1,"66":1,"125":1,"127":1,"136":2,"156":1}}],["ve",{"2":{"17":1,"153":1}}],["vein",{"2":{"7":1}}],["version",{"2":{"166":1}}],["versa",{"2":{"45":1}}],["vert",{"2":{"160":21}}],["verts",{"2":{"156":2}}],["vertical",{"2":{"39":1,"47":1,"54":1,"127":1}}],["vertices",{"2":{"6":7,"9":1,"38":4,"40":5,"45":1,"50":2,"63":1,"77":1,"79":5,"88":1,"91":3,"94":1,"97":1,"118":1,"141":1,"150":2,"151":1,"152":3,"153":3,"156":1,"159":1}}],["vertex",{"2":{"5":1,"6":2,"37":1,"38":2,"40":2,"45":19,"54":12,"62":1,"77":2,"92":2,"93":1,"97":1,"118":3}}],["very",{"2":{"0":1,"151":1,"177":2}}],["ty",{"2":{"127":3}}],["typing",{"2":{"41":1,"149":1,"152":1}}],["typically",{"2":{"38":1,"173":1}}],["typemax",{"2":{"66":1,"127":9}}],["typeof",{"2":{"19":1,"40":3,"136":2,"164":1,"178":1}}],["type2",{"2":{"6":2,"69":4}}],["type1",{"2":{"6":2,"69":5}}],["types",{"0":{"132":1,"163":1},"1":{"164":1,"165":1,"166":1},"2":{"6":4,"23":1,"24":1,"31":1,"40":3,"47":1,"50":1,"97":3,"156":1,"163":3,"165":1,"175":1}}],["type",{"2":{"4":11,"5":1,"6":62,"11":1,"22":2,"23":1,"24":2,"28":2,"34":11,"37":9,"39":1,"40":8,"44":8,"45":21,"47":8,"50":6,"51":7,"52":6,"53":8,"54":19,"56":7,"57":5,"66":28,"69":2,"131":2,"136":42,"137":1,"138":6,"139":6,"147":1,"152":1,"153":1,"156":3,"162":1,"164":3,"165":5,"166":1,"167":3,"168":1}}],["tx",{"2":{"127":3}}],["tᵢ",{"2":{"40":1}}],["temporary",{"2":{"45":1}}],["term",{"2":{"34":1}}],["terms",{"2":{"6":1,"40":1}}],["teach",{"2":{"30":1}}],["technically",{"2":{"23":1,"140":1}}],["technique",{"2":{"11":1}}],["tell",{"2":{"18":1,"97":1,"165":1,"178":1}}],["test",{"2":{"45":1,"156":2,"166":1}}],["testing",{"0":{"15":1}}],["tests",{"2":{"9":2}}],["tutorial",{"2":{"169":1,"175":1}}],["tutorials",{"2":{"30":2}}],["tups",{"2":{"142":4}}],["tuplepoint",{"2":{"31":3,"167":1}}],["tuple",{"0":{"162":1},"2":{"4":1,"6":19,"31":2,"40":2,"44":3,"45":5,"47":3,"50":1,"54":31,"97":17,"126":2,"127":5,"136":2,"141":6,"144":13,"151":1,"156":2,"158":1,"160":2,"167":6,"170":99,"176":2}}],["tuples",{"2":{"0":1,"6":2,"31":1,"41":1,"44":1,"45":1,"50":1,"51":3,"52":1,"53":2,"54":1,"56":4,"57":5,"63":2,"142":2,"145":2,"156":2,"162":2,"177":2}}],["turf",{"2":{"126":1}}],["turned",{"2":{"127":1,"136":1}}],["turning",{"2":{"127":8}}],["turn",{"2":{"6":1,"127":1}}],["t2",{"2":{"6":5,"40":47,"76":1,"86":2,"107":1,"117":1}}],["t1",{"2":{"6":6,"40":51,"86":2}}],["t=float64",{"2":{"4":1,"6":3,"44":3}}],["two",{"2":{"3":5,"4":10,"6":23,"23":2,"33":1,"37":2,"40":1,"44":1,"45":6,"47":3,"51":2,"53":1,"54":14,"56":4,"57":3,"66":5,"68":3,"69":12,"71":2,"72":1,"74":1,"84":1,"85":1,"86":1,"88":1,"97":2,"99":2,"100":2,"102":4,"103":5,"105":3,"106":1,"115":2,"127":3,"138":2,"139":1,"144":2,"145":2,"151":1,"166":1,"170":1,"175":3,"176":3}}],["task",{"2":{"136":6}}],["tasks",{"2":{"136":10}}],["taskrange",{"2":{"136":10}}],["tags",{"2":{"45":4}}],["taget",{"2":{"6":2}}],["taylor",{"2":{"6":1,"40":1}}],["table2",{"2":{"175":1}}],["table1",{"2":{"175":3}}],["tables",{"2":{"22":4,"31":1,"136":11}}],["table",{"0":{"173":1},"2":{"6":1,"18":1,"27":2,"136":12,"156":1,"173":1,"174":1,"175":1}}],["taking",{"2":{"6":3,"44":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"143":1}}],["takes",{"2":{"45":3,"175":1}}],["taken",{"2":{"20":1,"39":1}}],["take",{"2":{"1":1,"6":2,"27":1,"45":3,"51":1,"52":1,"53":1,"54":1,"57":1,"126":2,"127":2,"129":1,"148":1}}],["target=nothing",{"2":{"51":1,"53":1,"56":1}}],["target=gi",{"2":{"45":1}}],["targets",{"2":{"23":1,"34":3,"37":2,"47":3,"66":3}}],["target",{"0":{"23":1},"2":{"1":14,"6":28,"15":3,"22":2,"23":2,"40":1,"44":2,"45":1,"51":5,"52":11,"53":6,"54":10,"56":4,"57":13,"127":1,"129":1,"131":4,"134":5,"135":1,"136":144,"145":2,"148":3,"156":2,"164":3}}],["tilted",{"2":{"47":1}}],["tie",{"2":{"37":1}}],["timings",{"2":{"13":5}}],["timing",{"2":{"13":2}}],["times",{"2":{"4":1,"6":1,"146":1}}],["time",{"2":{"1":5,"13":3,"24":1,"39":1,"127":1,"148":4,"166":1,"170":1,"171":1,"172":2,"176":1,"177":1}}],["title",{"2":{"13":2,"39":2,"62":2,"127":1,"152":1,"156":2}}],["tip",{"2":{"1":1,"5":1,"6":1,"40":1,"148":1,"175":1}}],["tree",{"2":{"175":1}}],["treating",{"2":{"156":1}}],["treated",{"2":{"97":5,"170":1}}],["treats",{"2":{"34":1,"66":1}}],["trials",{"2":{"152":2,"156":2}}],["triangles",{"2":{"38":1}}],["triangle",{"2":{"6":1,"38":4,"159":4,"176":1}}],["triangulation",{"2":{"6":1,"31":1,"63":1}}],["trivially",{"2":{"129":1}}],["try",{"2":{"55":3,"127":1,"134":1,"136":9,"177":1}}],["tr",{"2":{"34":3}}],["trues",{"2":{"145":3}}],["true",{"0":{"24":1},"2":{"1":5,"3":25,"4":3,"6":42,"34":1,"37":7,"39":2,"41":1,"45":30,"47":6,"50":1,"51":1,"52":2,"53":1,"54":1,"56":2,"57":3,"66":4,"69":21,"71":1,"72":1,"74":2,"75":6,"77":1,"78":1,"79":4,"81":1,"82":1,"84":2,"85":1,"86":9,"88":2,"89":2,"91":1,"92":1,"93":3,"95":1,"96":1,"97":78,"99":3,"100":1,"102":2,"103":18,"105":2,"106":6,"109":1,"110":1,"112":1,"113":1,"115":2,"116":7,"118":1,"119":1,"120":4,"122":1,"123":1,"126":4,"127":5,"136":8,"145":1,"149":1,"152":1,"156":1,"165":2,"175":1,"178":1}}],["traditional",{"2":{"127":1}}],["traverse",{"2":{"45":1}}],["traced",{"2":{"45":1}}],["traces",{"2":{"45":1}}],["trace",{"2":{"45":2,"51":1,"53":1,"56":1}}],["track",{"2":{"45":3,"145":2}}],["tracing",{"2":{"6":1,"45":4,"47":1,"52":5,"54":2,"57":2}}],["transverse",{"2":{"171":1}}],["translate",{"2":{"39":2}}],["translation",{"2":{"1":2,"6":2,"156":2,"161":2,"170":3,"172":1}}],["transformations",{"2":{"31":10}}],["transformation",{"0":{"161":1},"2":{"6":1,"127":1,"137":1,"148":1,"169":1}}],["transform",{"2":{"0":2,"1":6,"6":3,"15":2,"31":1,"129":1,"148":2,"156":1,"161":4,"170":4,"172":1}}],["trait`",{"2":{"136":1}}],["trait2",{"2":{"66":10,"69":2,"91":2,"92":2,"103":2,"108":2,"110":2,"111":2}}],["trait1",{"2":{"66":12,"69":2,"91":2,"92":2,"103":2,"108":2,"110":2,"111":2}}],["traits",{"2":{"6":2,"18":1,"103":1,"134":2,"138":2,"156":2,"164":3}}],["trait",{"2":{"1":5,"3":2,"4":2,"6":17,"18":7,"20":1,"22":1,"31":1,"34":5,"37":2,"40":6,"44":7,"47":2,"50":3,"51":2,"52":2,"53":6,"54":4,"56":2,"57":2,"66":7,"69":11,"75":3,"86":2,"89":3,"97":4,"103":10,"106":3,"116":3,"126":1,"129":1,"131":2,"134":3,"136":51,"138":9,"139":1,"153":1,"156":2,"164":8,"167":7,"170":1}}],["traittarget",{"0":{"164":1},"2":{"0":1,"1":2,"6":8,"34":1,"37":1,"44":1,"47":1,"51":2,"52":4,"53":3,"54":4,"56":2,"57":4,"66":1,"129":2,"132":1,"136":11,"153":1,"156":1,"163":1,"164":20}}],["those",{"2":{"37":1,"45":1,"54":1,"77":1,"118":1}}],["though",{"2":{"20":1,"141":1}}],["thus",{"2":{"34":1,"37":1,"45":3,"52":1,"54":1,"57":1}}],["thing",{"0":{"28":1}}],["things",{"2":{"9":1}}],["this",{"0":{"28":1},"2":{"0":1,"1":1,"3":1,"4":6,"5":1,"6":30,"7":1,"18":1,"23":3,"24":2,"25":2,"27":1,"29":2,"31":1,"33":2,"34":9,"36":2,"37":6,"39":3,"40":11,"41":2,"43":1,"44":4,"45":26,"46":1,"47":4,"49":1,"50":5,"52":1,"54":5,"55":1,"56":1,"57":2,"63":5,"65":4,"66":6,"69":4,"71":1,"72":2,"74":3,"75":3,"82":1,"84":1,"85":2,"86":1,"89":3,"96":1,"97":3,"100":2,"102":1,"103":4,"106":3,"113":1,"115":1,"116":3,"123":1,"125":1,"126":3,"127":8,"128":2,"129":2,"134":2,"136":17,"137":1,"138":6,"139":7,"140":3,"142":3,"143":4,"145":3,"146":2,"147":2,"148":4,"149":3,"150":3,"151":5,"152":5,"153":4,"154":2,"156":3,"160":9,"161":1,"162":1,"163":3,"164":2,"165":3,"166":2,"167":1,"169":1,"170":2,"171":4,"172":3,"173":3,"174":1,"175":3,"176":3,"177":3,"178":1}}],["three",{"2":{"30":1,"38":1,"54":1}}],["thread",{"2":{"136":6}}],["threading",{"0":{"136":1},"2":{"136":7,"165":1}}],["threads",{"2":{"1":1,"6":1,"136":10}}],["threaded=",{"2":{"136":9}}],["threaded=true",{"2":{"136":1}}],["threaded=false",{"2":{"34":1,"44":4,"47":2,"66":8,"136":2,"146":1,"156":1}}],["threaded==true",{"2":{"1":1,"6":1,"136":1}}],["threaded",{"2":{"1":3,"4":1,"6":7,"24":1,"34":1,"37":2,"44":3,"47":3,"66":5,"133":1,"136":49,"146":1,"153":6,"156":1,"165":2}}],["through",{"2":{"6":4,"37":1,"40":1,"45":3,"47":1,"49":1,"50":2,"63":1,"75":1,"97":5,"116":1,"127":1,"134":1,"136":1,"139":2,"145":2,"158":1,"166":1,"170":1}}],["thrown",{"2":{"134":1}}],["throws",{"2":{"6":1,"166":1}}],["throw",{"2":{"4":1,"6":1,"57":1,"69":1,"127":1,"136":5}}],["than",{"2":{"1":1,"3":1,"6":11,"11":1,"45":2,"77":1,"86":1,"103":1,"118":1,"126":1,"127":2,"135":1,"136":1,"139":2,"143":1,"144":1,"145":2,"150":1,"152":2,"153":1,"157":1,"166":2}}],["that",{"2":{"1":1,"3":3,"4":8,"6":44,"9":1,"17":1,"18":4,"19":3,"20":1,"22":3,"25":1,"29":1,"30":1,"33":2,"34":4,"37":4,"40":4,"41":2,"43":2,"44":3,"45":17,"46":3,"47":5,"51":4,"52":5,"53":4,"54":14,"56":3,"57":5,"58":1,"62":3,"63":4,"66":2,"68":1,"69":11,"71":4,"72":1,"74":2,"75":1,"85":1,"88":1,"89":1,"97":3,"99":1,"100":1,"102":2,"103":10,"105":2,"106":2,"108":2,"115":3,"116":1,"118":3,"126":1,"127":4,"129":1,"131":2,"136":4,"137":3,"138":2,"139":4,"140":3,"141":2,"142":1,"143":2,"144":3,"145":4,"148":1,"150":2,"151":2,"152":3,"153":2,"156":2,"158":1,"160":1,"164":1,"165":1,"166":1,"171":4,"172":1,"173":2,"174":3,"175":1,"176":2}}],["theorem",{"2":{"66":1}}],["themselves",{"2":{"40":1}}],["them",{"2":{"6":1,"25":1,"29":1,"45":1,"127":2,"128":2,"131":1,"136":1,"141":2,"143":1,"144":1,"156":1,"170":1,"172":1,"174":3}}],["thereof",{"2":{"129":1}}],["therefore",{"2":{"65":1,"140":1}}],["there",{"2":{"6":3,"22":1,"37":1,"40":2,"41":1,"45":3,"47":1,"50":2,"52":1,"54":6,"55":1,"57":1,"97":1,"103":2,"127":3,"128":1,"129":1,"136":4,"141":1,"151":1,"160":1,"164":1,"166":1,"171":2,"174":3}}],["then",{"2":{"6":5,"18":1,"22":1,"27":1,"37":3,"40":2,"45":6,"47":1,"51":1,"53":2,"54":6,"55":2,"56":2,"57":2,"63":1,"97":1,"127":2,"134":1,"136":3,"143":1,"152":2,"156":1,"171":1,"175":1,"176":1}}],["their",{"2":{"3":1,"4":1,"6":2,"40":1,"43":2,"57":1,"66":2,"94":1,"103":1,"105":1,"109":1,"110":1,"119":3,"120":3,"129":1,"136":1,"141":1,"144":1,"146":1}}],["they",{"2":{"3":3,"4":11,"6":25,"20":2,"22":1,"23":1,"24":1,"38":1,"44":2,"45":8,"47":2,"51":2,"53":1,"54":6,"56":2,"57":3,"62":1,"68":3,"69":16,"75":1,"88":1,"92":2,"93":1,"94":1,"97":2,"99":1,"102":2,"103":4,"108":1,"110":1,"111":1,"119":1,"120":1,"127":6,"136":1,"139":2,"140":1,"145":2,"151":1,"160":1,"163":1,"176":1}}],["these",{"2":{"1":2,"6":5,"24":1,"37":1,"40":5,"45":3,"57":1,"68":1,"69":1,"71":1,"75":1,"84":1,"86":2,"88":1,"89":1,"99":1,"102":1,"103":1,"105":2,"106":1,"115":1,"116":1,"126":1,"127":3,"134":1,"136":2,"148":1,"152":1,"156":2,"166":1,"174":1,"175":1}}],["the",{"0":{"27":1,"30":1,"43":1,"61":1,"62":1},"2":{"1":28,"3":64,"4":112,"5":12,"6":403,"7":5,"9":3,"10":1,"11":3,"17":5,"18":10,"19":2,"20":4,"22":4,"23":5,"24":3,"25":3,"27":3,"29":3,"30":4,"33":12,"34":43,"36":1,"37":63,"38":15,"39":12,"40":71,"41":6,"43":6,"44":25,"45":116,"46":7,"47":47,"49":2,"50":7,"51":27,"52":23,"53":27,"54":82,"55":1,"56":29,"57":70,"58":6,"62":11,"63":16,"65":11,"66":81,"68":5,"69":47,"71":9,"72":11,"74":8,"75":25,"78":8,"79":9,"80":3,"81":3,"82":2,"84":4,"85":11,"86":5,"88":2,"89":21,"91":8,"92":6,"93":4,"95":3,"96":2,"97":123,"99":5,"100":6,"102":5,"103":26,"105":5,"106":21,"108":6,"109":10,"110":7,"111":3,"112":3,"113":2,"115":7,"116":24,"118":2,"119":9,"120":9,"121":6,"122":2,"123":2,"125":1,"126":8,"127":47,"128":1,"129":8,"131":4,"133":2,"134":11,"136":85,"137":2,"138":13,"139":10,"140":5,"141":5,"142":4,"143":4,"144":8,"145":6,"146":1,"147":5,"148":14,"149":2,"150":3,"151":5,"152":26,"153":17,"154":3,"156":18,"157":3,"158":6,"159":3,"160":2,"161":3,"162":1,"163":2,"165":5,"166":21,"170":10,"171":11,"172":10,"173":2,"174":4,"175":10,"176":17,"177":3}}],["t",{"2":{"0":1,"4":28,"6":56,"9":1,"23":1,"31":8,"34":41,"37":32,"40":26,"44":38,"45":74,"47":44,"50":18,"51":12,"52":12,"53":12,"54":156,"56":10,"57":20,"66":87,"69":17,"74":1,"92":1,"97":24,"103":1,"105":1,"109":2,"110":1,"127":14,"136":10,"139":2,"145":2,"152":3,"153":5,"156":1,"162":7,"164":14,"165":2,"166":3,"167":10,"170":4,"177":1}}],["tokyo",{"2":{"177":1}}],["toy",{"2":{"175":1}}],["together",{"2":{"54":1,"57":1,"170":1,"176":1}}],["touching",{"0":{"109":1},"2":{"54":1,"57":1}}],["touch",{"0":{"110":1,"111":1,"112":1},"2":{"45":1,"105":1,"108":2,"110":1,"112":1}}],["touches",{"0":{"104":1,"105":1,"108":1},"1":{"105":1,"106":1},"2":{"0":2,"3":3,"6":3,"31":1,"104":1,"105":3,"106":11,"107":6,"108":11,"109":15,"110":9,"111":8,"112":3,"113":4,"175":1}}],["totally",{"2":{"56":1}}],["total",{"2":{"34":1,"40":2,"45":2,"47":1}}],["towards",{"2":{"25":1,"29":1}}],["topright",{"2":{"156":1}}],["topologypreserve",{"2":{"154":1}}],["topology",{"2":{"154":1}}],["top",{"2":{"20":1,"30":1,"45":1,"127":1}}],["took",{"2":{"177":1}}],["tools",{"2":{"17":1}}],["too",{"2":{"6":1,"54":1,"150":1,"153":1}}],["tol^2",{"2":{"157":1,"158":1}}],["tolerances",{"2":{"159":1,"160":29}}],["tolerance",{"2":{"157":1,"158":1,"159":1,"160":17}}],["tol",{"2":{"6":12,"152":2,"156":18,"157":7,"158":15,"159":8,"160":18}}],["todo",{"2":{"3":2,"6":2,"45":1,"54":1,"63":2,"86":4,"103":1,"127":1,"136":1,"142":1,"156":1,"165":1}}],["to",{"0":{"9":1,"23":1,"30":1,"55":1,"76":1,"90":1,"107":1,"117":1},"2":{"0":2,"1":22,"3":1,"4":33,"5":4,"6":142,"7":2,"9":3,"10":2,"11":2,"13":1,"17":2,"18":9,"19":1,"20":2,"22":3,"23":4,"24":2,"25":3,"27":4,"28":1,"29":3,"30":2,"33":1,"34":4,"36":1,"37":8,"38":4,"39":1,"40":26,"41":2,"43":2,"44":5,"45":32,"46":1,"47":12,"49":1,"50":3,"51":8,"52":4,"53":8,"54":27,"56":7,"57":11,"58":1,"60":1,"61":1,"62":4,"63":6,"65":6,"66":32,"68":2,"69":17,"71":1,"72":1,"74":2,"75":7,"84":3,"85":1,"86":2,"88":1,"89":7,"97":21,"99":2,"100":1,"102":3,"103":7,"105":1,"106":7,"108":1,"115":1,"116":7,"126":4,"127":16,"129":4,"131":4,"133":7,"134":6,"135":1,"136":52,"137":4,"138":8,"139":5,"140":2,"141":3,"143":3,"144":1,"145":4,"146":3,"147":1,"148":4,"149":1,"150":3,"151":3,"152":9,"153":7,"154":1,"156":4,"157":1,"158":15,"159":1,"160":2,"161":4,"162":1,"163":2,"164":2,"165":6,"166":9,"167":28,"168":1,"169":4,"170":6,"171":10,"172":6,"173":7,"174":5,"175":7,"176":5,"177":2,"178":8}}],["rd",{"2":{"156":3}}],["rdbu",{"2":{"65":1}}],["rhumb",{"2":{"126":2}}],["runner",{"2":{"171":1}}],["running",{"2":{"136":3}}],["run",{"2":{"136":8,"177":1}}],["runs",{"2":{"54":2,"125":1}}],["rule",{"2":{"45":1}}],["rules",{"2":{"45":1}}],["right=2",{"2":{"45":1}}],["right",{"2":{"40":1,"45":4,"50":1,"66":1,"126":1,"158":19,"160":5,"170":1,"175":1}}],["ring4",{"2":{"172":2}}],["ring3",{"2":{"171":1}}],["ring2",{"2":{"170":2}}],["ring1",{"2":{"170":2}}],["rings",{"0":{"79":1,"93":1,"110":1,"120":1,"140":1},"1":{"141":1,"142":1},"2":{"4":4,"6":6,"9":2,"34":1,"44":1,"45":3,"54":1,"69":7,"125":1,"127":5,"139":1,"142":1,"156":1}}],["ring",{"2":{"4":7,"6":13,"9":1,"31":1,"34":2,"37":3,"40":1,"43":1,"44":4,"45":12,"47":13,"57":3,"66":5,"69":4,"77":1,"78":2,"79":5,"91":1,"93":1,"97":2,"108":1,"109":1,"110":3,"118":1,"119":2,"120":4,"126":3,"127":11,"137":1,"140":2,"141":1,"142":14,"170":1}}],["rtrees",{"2":{"20":1}}],["r+y",{"2":{"13":2,"14":1}}],["r+x",{"2":{"13":2,"14":1}}],["ry",{"2":{"13":3,"14":3}}],["rx",{"2":{"13":3,"14":3}}],["round",{"2":{"156":1,"158":1,"160":1}}],["routines",{"2":{"11":1}}],["row",{"2":{"136":3}}],["rows",{"2":{"136":2}}],["robust",{"0":{"15":1},"2":{"62":1}}],["rotate",{"2":{"47":1}}],["rotation",{"2":{"1":1,"6":1,"161":1}}],["rotations",{"2":{"1":3,"6":3,"161":3}}],["rotmatrix2d",{"2":{"156":1}}],["rotmatrix",{"2":{"1":1,"6":1,"161":1}}],["r",{"2":{"6":1,"9":1,"13":11,"14":12,"152":1,"160":2,"170":6,"171":2,"172":4}}],["rᵢ₋₁",{"2":{"40":20}}],["rᵢ∗rᵢ₊₁+sᵢ⋅sᵢ₊₁",{"2":{"6":1}}],["rᵢ₊₁",{"2":{"6":1,"40":29}}],["rᵢ",{"2":{"6":2,"40":49}}],["ramer",{"2":{"158":1}}],["raster",{"0":{"127":1},"2":{"127":4}}],["ray",{"2":{"97":4}}],["raw",{"2":{"18":1}}],["range",{"2":{"13":8,"14":4,"127":3,"136":4}}],["ranges",{"2":{"6":1,"127":2}}],["randomly",{"2":{"176":2}}],["random",{"2":{"156":2}}],["randn",{"2":{"60":1}}],["rand",{"2":{"6":1,"62":1,"127":1,"176":2}}],["rather",{"2":{"6":1,"127":1,"144":1}}],["ratio",{"2":{"6":7,"54":1,"152":1,"156":1,"157":4,"158":6,"159":4,"160":11}}],["radii",{"2":{"6":1,"152":1}}],["radius`",{"2":{"152":1}}],["radius",{"2":{"6":7,"40":13,"152":4}}],["radialdistance",{"0":{"157":1},"2":{"0":1,"6":2,"154":1,"156":4,"157":4}}],["rrayscore",{"2":{"1":1,"6":1,"161":1}}],["rring",{"2":{"1":1,"6":1,"161":1}}],["rewrap",{"2":{"136":3}}],["req",{"2":{"97":44}}],["requirement",{"2":{"140":1,"143":1}}],["requirements",{"2":{"97":5}}],["required",{"2":{"63":1,"75":3,"89":3,"106":3,"116":3,"151":1,"169":1}}],["require",{"2":{"63":1,"74":2,"75":6,"89":3,"97":32,"106":3,"116":3}}],["requires",{"2":{"41":1,"69":1,"71":1,"75":2,"78":3,"79":3,"80":1,"89":1,"92":3,"93":2,"94":1,"106":1,"109":3,"110":1,"111":1,"115":1,"116":1,"119":3,"120":3,"121":1,"149":1,"152":1,"166":1}}],["requests",{"2":{"25":1,"29":1}}],["reflected",{"2":{"156":3}}],["ref",{"2":{"65":1}}],["referring",{"2":{"97":1}}],["refer",{"2":{"6":1,"127":1}}],["references",{"2":{"6":1,"40":1}}],["reference",{"0":{"171":1,"172":1},"2":{"0":1,"1":2,"148":2,"169":2,"171":1}}],["reveal",{"2":{"57":1}}],["reveals",{"2":{"57":1}}],["reverse",{"2":{"33":1,"39":1,"40":1,"45":2,"170":2}}],["rev",{"2":{"56":1}}],["render",{"2":{"39":1}}],["rendering",{"2":{"39":3,"40":1}}],["rename",{"2":{"10":1}}],["regardless",{"2":{"54":1,"97":1}}],["regions",{"2":{"52":3,"54":5,"56":1,"57":3,"97":2,"177":1}}],["region",{"2":{"41":2,"54":3,"57":2,"177":1}}],["register",{"2":{"31":3,"40":3}}],["regular",{"0":{"15":1}}],["readable",{"2":{"174":1}}],["readability",{"2":{"45":1}}],["read",{"2":{"171":2}}],["reached",{"2":{"136":4}}],["reaches",{"2":{"134":1}}],["reach",{"2":{"134":1}}],["reasons",{"2":{"166":1}}],["reason",{"2":{"24":1,"140":1,"143":1,"165":1}}],["real`",{"2":{"152":1,"153":1}}],["reality",{"2":{"62":1}}],["really",{"2":{"34":1,"97":1,"127":1,"165":1}}],["real=1",{"2":{"6":2,"152":2}}],["real=6378137`",{"2":{"152":1}}],["real=6378137",{"2":{"6":2,"152":1}}],["real",{"0":{"177":1},"2":{"5":1,"6":13,"37":1,"40":45,"44":2,"54":1,"152":3,"153":1,"160":5,"175":1}}],["related",{"2":{"129":1}}],["relation",{"2":{"45":2}}],["relations",{"2":{"31":10,"86":1,"103":1}}],["relationship",{"2":{"23":1,"175":2}}],["relative",{"2":{"40":3}}],["relevant",{"2":{"6":1,"10":1,"63":1}}],["reducing",{"2":{"136":2}}],["reduced",{"2":{"157":1,"158":1,"159":1}}],["reduces",{"2":{"19":1,"57":1}}],["reduce",{"2":{"1":1,"6":1,"127":1,"136":2,"138":1}}],["redundant",{"2":{"45":1}}],["red",{"2":{"14":1,"43":2,"65":1,"74":1,"84":1,"99":1,"170":1,"171":1,"176":2}}],["removal",{"2":{"45":1}}],["removes",{"2":{"45":1,"129":1}}],["removed",{"2":{"45":3,"52":5,"127":1}}],["remove",{"2":{"34":1,"45":33,"47":1,"50":2,"51":5,"53":5,"56":2,"145":2,"157":1,"158":3,"160":4}}],["removing",{"2":{"6":3,"45":1,"52":1,"157":1,"158":1,"159":1}}],["remainingnode",{"2":{"127":3}}],["remaining",{"2":{"45":1,"69":1,"97":2,"158":1}}],["remain",{"2":{"1":1,"6":9,"136":1,"156":2}}],["resolution",{"2":{"171":1}}],["resolved",{"2":{"127":1}}],["reset",{"2":{"45":1}}],["resize",{"2":{"13":1,"14":1,"45":2}}],["resampled",{"2":{"6":1,"153":1}}],["respectively",{"2":{"45":1,"103":1,"136":1,"170":1}}],["respect",{"2":{"6":2,"53":1,"54":1,"63":1,"97":6}}],["rest",{"2":{"6":1,"40":2,"56":1}}],["resulting",{"2":{"50":1,"57":1,"127":1,"176":1}}],["results",{"2":{"3":2,"6":2,"54":1,"86":1,"103":1,"136":2,"141":1,"158":25,"170":3}}],["result",{"2":{"1":2,"3":5,"4":5,"6":13,"19":1,"34":2,"37":1,"47":1,"54":15,"63":1,"66":2,"72":1,"75":1,"85":1,"100":1,"116":1,"136":2,"152":3,"160":6}}],["receives",{"2":{"136":2}}],["recent",{"2":{"45":1,"52":1,"54":1,"57":1}}],["recalculate",{"2":{"135":1}}],["recursive",{"2":{"134":1}}],["recursively",{"2":{"4":1,"6":1,"134":1,"146":1}}],["rect",{"2":{"33":5,"36":3,"46":3,"65":7}}],["rectangle",{"2":{"33":2,"36":2,"39":2,"46":2,"47":1,"65":2,"151":5,"152":8,"176":2}}],["recommended",{"2":{"22":1}}],["reconstructing",{"2":{"156":1}}],["reconstructed",{"2":{"18":1}}],["reconstruct",{"2":{"0":2,"1":1,"6":3,"18":1,"131":2,"136":29}}],["replace",{"2":{"45":1,"127":2,"158":1}}],["replaced",{"2":{"22":1}}],["repl",{"2":{"41":1,"149":1,"152":1}}],["repeat",{"2":{"44":1,"45":3,"69":6}}],["repeating",{"2":{"34":1,"57":1}}],["repeated",{"2":{"4":3,"6":3,"9":1,"37":2,"40":1,"45":2,"57":2,"66":2,"69":4,"97":1}}],["represented",{"2":{"176":1}}],["represent",{"2":{"17":1,"40":1,"45":4,"69":1}}],["representing",{"2":{"6":2,"52":1,"54":1,"57":1,"63":1,"65":1,"69":1,"177":1}}],["represents",{"2":{"6":1,"138":2,"139":1}}],["reprojects",{"2":{"148":1}}],["reprojection",{"0":{"148":1},"1":{"149":1}}],["reproject",{"2":{"0":1,"1":4,"31":2,"129":1,"148":6,"149":2}}],["re",{"2":{"1":1,"6":1,"17":1,"63":1,"161":1,"169":1,"171":1}}],["retrievable",{"2":{"1":1,"148":1}}],["returnval",{"2":{"97":9}}],["returntype",{"2":{"19":1}}],["returning",{"2":{"18":1,"41":1,"52":2}}],["return",{"0":{"22":1},"2":{"1":1,"3":18,"4":2,"6":37,"13":3,"14":3,"23":2,"28":1,"34":5,"37":5,"40":20,"41":1,"44":4,"45":36,"47":12,"50":12,"51":5,"52":4,"53":4,"54":18,"56":6,"57":9,"63":2,"66":8,"69":30,"72":1,"75":1,"81":2,"82":2,"85":1,"86":18,"89":2,"95":2,"96":2,"97":71,"99":1,"100":1,"103":28,"106":1,"108":2,"112":2,"113":2,"116":1,"122":2,"123":2,"126":10,"127":12,"136":27,"138":6,"139":2,"140":1,"142":4,"145":2,"147":2,"148":1,"153":4,"156":3,"157":1,"158":5,"159":3,"160":7,"161":2,"162":2,"166":3,"167":8}}],["returned",{"2":{"1":1,"6":11,"22":2,"23":1,"45":3,"50":1,"51":2,"53":2,"54":2,"56":2,"62":1,"63":1,"127":1,"131":1,"136":2,"148":1,"156":1,"165":1}}],["returns",{"2":{"1":1,"3":5,"4":4,"5":3,"6":24,"18":1,"22":2,"34":2,"37":1,"40":6,"44":3,"45":4,"47":6,"50":1,"51":1,"54":1,"56":1,"63":1,"66":8,"68":1,"71":2,"72":1,"75":1,"84":2,"85":1,"88":1,"97":4,"100":1,"103":2,"116":1,"127":2,"136":2,"153":1,"162":1,"175":1}}],["rebuilt",{"2":{"1":1,"6":2,"131":1,"136":2}}],["rebuilding",{"2":{"136":1}}],["rebuild",{"2":{"0":2,"6":4,"131":4,"134":1,"136":10,"153":1,"156":2}}],["psa",{"2":{"136":2}}],["pb",{"2":{"86":2}}],["p0",{"2":{"66":9}}],["p3",{"2":{"45":8,"159":4}}],["ptm",{"2":{"126":3}}],["ptj",{"2":{"126":5}}],["pti",{"2":{"126":3}}],["ptrait",{"2":{"66":2}}],["pts",{"2":{"45":22,"50":7}}],["pt",{"2":{"45":114,"50":2,"54":26,"97":8,"158":4}}],["pt2",{"2":{"45":14,"54":2}}],["pt1",{"2":{"45":18,"54":2}}],["pn",{"2":{"108":3}}],["pn2",{"2":{"45":4}}],["pn1",{"2":{"45":4}}],["pfirst",{"2":{"34":3}}],["pu",{"2":{"176":2}}],["purpose",{"2":{"136":1}}],["pure",{"2":{"6":1,"63":1,"127":1}}],["purely",{"2":{"6":1,"18":1,"152":1}}],["push",{"2":{"45":15,"50":5,"51":2,"53":2,"54":2,"56":4,"57":5,"127":3,"142":1,"153":3,"158":3}}],["pulling",{"2":{"63":1}}],["pull",{"2":{"25":1,"29":1}}],["public",{"2":{"24":1}}],["pick",{"2":{"171":2}}],["piece",{"2":{"45":6,"145":6}}],["pieces",{"2":{"45":12,"50":1,"52":2,"56":4,"97":1,"145":9}}],["pi",{"2":{"13":2}}],["pixels",{"2":{"127":1}}],["pixel",{"2":{"6":2,"127":7}}],["pythagorean",{"2":{"66":1}}],["py",{"2":{"13":2,"14":2}}],["px",{"2":{"13":2,"14":2}}],["peucker",{"2":{"154":2,"156":3,"158":2}}],["peaks",{"2":{"127":2}}],["peculiarities",{"0":{"21":1},"1":{"22":1,"23":1,"24":1}}],["people",{"2":{"9":1}}],["performed",{"2":{"176":1}}],["performs",{"2":{"40":1,"153":1}}],["perform",{"2":{"30":1,"39":1,"40":2,"45":1,"129":1,"175":3,"176":2,"178":1}}],["performing",{"2":{"6":3,"23":1,"40":1,"51":1,"53":1,"56":1,"176":1}}],["performance",{"2":{"4":1,"6":2,"22":1,"127":1,"143":1,"146":1,"156":1,"174":1}}],["per",{"2":{"5":2,"6":2,"39":1,"40":2,"45":5,"127":1,"136":4,"153":1}}],["pl",{"2":{"176":2}}],["plt",{"2":{"170":1}}],["please",{"2":{"45":1}}],["plan",{"2":{"150":1}}],["plane",{"2":{"40":1,"168":1}}],["place",{"2":{"54":1,"175":1}}],["placement",{"2":{"45":1}}],["plottable",{"2":{"127":1}}],["plotted",{"2":{"43":1}}],["plotting",{"0":{"170":1},"2":{"6":1,"127":1,"150":1,"153":1,"169":1,"170":4,"171":1}}],["plots",{"2":{"39":2}}],["plot",{"0":{"171":1},"2":{"13":1,"39":3,"60":2,"61":1,"62":1,"68":1,"102":1,"127":1,"152":2,"156":4,"169":2,"170":9,"171":5,"172":1,"174":1,"176":1}}],["plus",{"2":{"5":1,"6":1,"40":1}}],["p2y",{"2":{"167":3}}],["p2x",{"2":{"167":3}}],["p2box",{"2":{"39":1}}],["p2",{"2":{"3":2,"4":2,"6":6,"15":12,"34":9,"37":12,"45":18,"47":19,"56":2,"62":1,"66":15,"69":11,"75":2,"84":2,"97":12,"103":2,"126":3,"151":1,"159":4,"167":3,"170":2}}],["p1y",{"2":{"167":3}}],["p1x",{"2":{"167":3}}],["p1",{"2":{"3":3,"4":2,"6":7,"15":12,"34":8,"37":21,"39":4,"45":9,"47":25,"49":1,"56":2,"62":2,"66":15,"69":14,"74":5,"75":3,"84":5,"97":4,"103":2,"108":3,"126":3,"159":4,"167":3,"170":1}}],["practice",{"2":{"172":1}}],["pred",{"2":{"175":2,"176":1,"177":2,"178":1}}],["predicate",{"2":{"7":1,"86":1,"175":3,"176":1,"178":5}}],["predicates",{"0":{"12":1,"15":1,"178":1},"1":{"13":1,"14":1,"15":1,"16":1},"2":{"7":4,"12":1,"31":1,"45":5,"54":4,"55":3,"97":1,"175":1,"177":1}}],["pretty",{"2":{"148":1}}],["prettytime",{"2":{"13":2}}],["prevent",{"2":{"52":2,"54":2,"57":2}}],["prev^2",{"2":{"37":2}}],["prev",{"2":{"37":14,"45":69,"126":4}}],["previously",{"2":{"151":1}}],["previous",{"2":{"19":1,"37":1,"136":1,"157":3}}],["preparations",{"2":{"20":1}}],["prepared",{"2":{"20":1,"127":2}}],["prepare",{"0":{"20":1},"2":{"17":1,"20":1}}],["precision",{"2":{"11":1}}],["preserve",{"2":{"156":4,"158":3}}],["preserving",{"2":{"154":1}}],["presentation",{"2":{"6":1,"40":1}}],["present",{"2":{"6":1,"166":1}}],["presence",{"2":{"6":1,"166":1}}],["prescribes",{"2":{"20":1}}],["press",{"2":{"6":1,"40":1}}],["pre",{"2":{"6":1,"56":1,"156":1,"158":2}}],["prefilter",{"2":{"6":1,"156":7}}],["protters",{"2":{"136":2}}],["progressively",{"2":{"134":1}}],["program",{"2":{"17":1}}],["programming",{"2":{"17":1,"30":1}}],["promote",{"2":{"40":5}}],["property",{"2":{"136":2}}],["properties=gi",{"2":{"136":1}}],["properties=namedtuple",{"2":{"136":1}}],["properties=",{"2":{"127":1}}],["properties",{"2":{"6":1,"136":9,"156":1,"160":1}}],["propagate",{"2":{"40":16,"66":4}}],["prod",{"2":{"37":4}}],["product",{"2":{"37":1}}],["probably",{"2":{"34":1,"136":1}}],["process",{"2":{"77":3,"78":3,"79":3,"80":1,"86":1,"91":3,"92":3,"93":2,"94":1,"97":11,"108":1,"109":3,"110":1,"111":1,"118":3,"119":3,"120":3,"121":1,"136":2,"158":1}}],["processed",{"2":{"45":6}}],["processors",{"2":{"31":1,"75":2,"89":2,"106":2,"116":2}}],["processor",{"2":{"31":1}}],["processing",{"2":{"23":1}}],["profile",{"2":{"9":1}}],["providers",{"2":{"141":1,"144":1}}],["provide",{"0":{"23":1},"2":{"6":6,"33":1,"36":1,"38":1,"43":1,"46":1,"49":1,"51":2,"53":2,"56":2,"65":1,"68":1,"71":1,"74":1,"84":1,"88":1,"97":2,"99":1,"102":1,"105":1,"115":1,"127":1,"160":1}}],["provides",{"2":{"6":1,"58":1,"63":1,"171":1}}],["provided",{"2":{"4":1,"6":3,"11":1,"45":1,"66":1,"69":1,"144":1,"152":2,"166":1}}],["projecting",{"2":{"171":1}}],["projection",{"2":{"66":2,"169":1,"171":1}}],["project",{"2":{"9":1}}],["projects",{"2":{"9":1}}],["proj",{"2":{"1":2,"6":3,"148":2,"149":4,"151":1,"152":6,"169":1}}],["prints",{"2":{"149":1}}],["printstyled",{"2":{"41":1,"149":1,"152":1}}],["println",{"2":{"41":1,"149":1,"152":1,"156":2}}],["print",{"2":{"41":2,"149":2,"152":2}}],["primitives",{"2":{"31":1}}],["primitive",{"0":{"129":1},"1":{"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1},"2":{"27":1}}],["primarily",{"2":{"6":1,"25":2,"29":2,"164":1}}],["primary",{"2":{"3":2,"6":3,"75":1,"116":1,"156":1}}],["priority",{"2":{"1":1,"148":1}}],["pay",{"2":{"136":1}}],["paper",{"2":{"97":2}}],["pa",{"2":{"86":2}}],["paths",{"0":{"168":1},"2":{"165":1,"168":2}}],["pathof",{"2":{"156":2}}],["path",{"2":{"33":3,"171":2}}],["padding",{"2":{"6":2}}],["parquet",{"2":{"174":3}}],["parent",{"2":{"165":1,"167":1}}],["parse",{"2":{"97":1,"103":1}}],["part",{"2":{"47":2,"57":2,"97":3,"135":1}}],["partition",{"2":{"136":4}}],["partialsort",{"2":{"160":1}}],["partial",{"2":{"47":4}}],["partially",{"2":{"45":2,"57":2}}],["particularly",{"2":{"40":1}}],["particular",{"2":{"28":1,"37":1,"127":1,"171":2}}],["parallel",{"2":{"97":1,"126":1}}],["paradigm",{"0":{"27":1}}],["paradigms",{"0":{"17":1},"1":{"18":1,"19":1,"20":1},"2":{"17":2,"20":1}}],["parameters",{"2":{"6":1,"136":1,"164":2}}],["parameter",{"2":{"6":2,"164":3}}],["params",{"2":{"6":2,"166":10}}],["parlance",{"2":{"5":1,"6":1,"40":1}}],["passes",{"2":{"47":2,"97":1}}],["passed",{"2":{"1":2,"6":7,"63":1,"127":1,"131":1,"136":2,"148":1,"152":2,"161":1,"166":2,"178":1}}],["passable",{"2":{"40":18}}],["passing",{"2":{"18":1,"136":1,"154":1}}],["pass",{"2":{"5":1,"6":4,"18":1,"40":1,"72":1,"85":1,"97":2,"100":1,"152":1,"153":1,"156":1,"165":1}}],["pairs",{"2":{"54":1,"170":1}}],["pair",{"2":{"3":2,"6":2,"47":1,"103":2,"136":3}}],["packages",{"2":{"6":1,"25":1,"29":1,"58":1,"131":1,"136":1,"140":1,"163":1,"169":3,"171":1,"174":1}}],["package",{"2":{"1":2,"6":1,"22":1,"25":2,"29":2,"41":1,"58":2,"63":1,"127":1,"148":3,"149":1,"152":1,"171":1,"174":2}}],["page",{"2":{"0":1,"9":1,"27":1,"30":1,"31":1,"34":1,"37":1,"39":1,"40":1,"41":1,"44":1,"45":1,"47":1,"50":1,"52":1,"54":1,"55":1,"57":1,"63":1,"66":1,"69":1,"72":1,"82":1,"85":1,"86":1,"96":1,"97":1,"100":1,"103":1,"113":1,"123":1,"126":1,"127":1,"128":1,"136":1,"139":1,"142":1,"145":1,"146":1,"147":1,"149":1,"153":1,"160":1,"161":1,"162":1,"166":1,"167":1}}],["p",{"2":{"1":5,"6":5,"13":13,"14":12,"15":2,"33":1,"36":1,"43":1,"45":5,"46":1,"47":5,"52":2,"56":2,"60":1,"61":1,"65":3,"68":1,"71":1,"74":1,"84":1,"86":4,"88":1,"97":20,"99":1,"102":1,"105":1,"115":1,"126":4,"127":3,"129":3,"136":5,"147":7,"151":1,"155":1,"156":1,"160":3,"161":9,"162":7,"167":11,"175":1,"176":1}}],["poylgon",{"2":{"97":1}}],["potential",{"2":{"47":1}}],["potentially",{"2":{"6":2,"45":1,"139":2,"145":2}}],["post",{"2":{"158":2}}],["possibly",{"2":{"136":1}}],["possiblenodes",{"2":{"127":2}}],["possible",{"2":{"6":3,"51":1,"53":1,"56":1,"127":1,"136":2}}],["possibility",{"2":{"134":1}}],["possibilities",{"2":{"54":1}}],["position=",{"2":{"156":1}}],["position",{"2":{"6":1,"126":1,"151":1}}],["positive",{"2":{"4":4,"6":4,"33":3,"34":1,"65":3,"66":3,"153":1,"160":1}}],["polgons",{"2":{"127":1}}],["polgontrait",{"2":{"1":1,"6":1}}],["polar",{"2":{"6":1,"152":1}}],["polynodes",{"2":{"45":7,"51":1,"53":1,"56":1}}],["polynode",{"2":{"45":36}}],["polypoints",{"2":{"40":46}}],["polys",{"2":{"6":2,"45":39,"49":3,"50":10,"51":14,"52":14,"53":9,"54":6,"56":14,"57":28,"145":26}}],["polys1",{"2":{"3":2,"6":2,"103":6}}],["polys2",{"2":{"3":2,"6":2,"103":6}}],["poly",{"2":{"3":2,"6":16,"15":2,"33":1,"34":6,"36":1,"39":2,"40":3,"43":1,"45":107,"46":2,"47":4,"49":4,"50":20,"51":22,"52":12,"53":15,"54":10,"56":19,"57":79,"60":2,"65":1,"66":3,"69":4,"86":10,"97":21,"103":8,"126":5,"127":5,"145":18,"151":2,"155":2,"156":8,"167":8,"170":2,"176":5}}],["poly2",{"2":{"3":3,"4":2,"6":7,"51":2,"69":2,"97":19,"103":7}}],["poly1",{"2":{"3":3,"4":2,"6":7,"51":2,"69":2,"97":14,"103":7}}],["polygon3",{"2":{"170":2,"171":1}}],["polygon2",{"2":{"170":6}}],["polygon1",{"2":{"170":4}}],["polygonization",{"2":{"127":1}}],["polygonizing",{"0":{"127":1}}],["polygonized",{"2":{"127":1}}],["polygonize",{"2":{"0":1,"6":6,"9":1,"31":1,"127":31}}],["polygon`",{"2":{"40":3,"63":1}}],["polygons",{"0":{"80":1,"111":1,"121":1,"143":1},"1":{"144":1,"145":1},"2":{"3":4,"4":3,"5":1,"6":18,"9":1,"23":5,"31":1,"34":5,"38":1,"40":2,"43":1,"44":1,"45":14,"47":1,"50":2,"51":9,"52":5,"53":3,"54":8,"56":6,"57":19,"65":1,"66":1,"69":5,"80":1,"103":5,"121":1,"126":1,"127":19,"134":1,"139":3,"141":2,"143":2,"144":2,"145":10,"154":1,"156":1,"170":3,"171":1,"176":5,"177":3}}],["polygontrait",{"2":{"1":1,"3":4,"4":6,"6":14,"15":3,"23":1,"34":3,"37":2,"40":3,"44":2,"45":2,"47":2,"50":1,"51":5,"52":5,"53":3,"54":5,"56":4,"57":8,"66":2,"69":10,"77":2,"78":1,"79":1,"80":3,"81":1,"86":4,"91":2,"92":2,"93":1,"94":2,"95":1,"103":8,"108":2,"109":1,"110":1,"111":3,"112":1,"118":2,"119":1,"120":1,"121":3,"122":1,"129":1,"134":2,"136":2,"138":2,"139":1,"142":2,"145":2,"156":2,"167":1}}],["polygon",{"0":{"45":1,"48":1,"51":1,"52":1,"54":1,"56":1,"57":1,"94":1},"1":{"49":1,"50":1},"2":{"0":1,"1":4,"3":4,"4":21,"5":9,"6":65,"9":2,"11":3,"15":4,"20":1,"23":1,"33":2,"34":5,"36":1,"37":5,"38":5,"39":16,"40":57,"43":2,"44":4,"45":39,"46":3,"47":4,"49":3,"50":10,"51":5,"52":7,"53":5,"54":6,"56":6,"57":34,"58":1,"62":1,"63":3,"65":3,"66":14,"69":12,"75":1,"77":3,"78":3,"79":4,"80":8,"86":1,"91":3,"92":4,"93":4,"94":4,"97":66,"103":4,"106":1,"108":3,"109":4,"110":5,"111":7,"116":1,"118":3,"119":4,"120":4,"121":8,"126":5,"127":4,"136":1,"137":1,"139":4,"140":4,"141":8,"142":5,"143":3,"144":12,"145":7,"151":1,"152":4,"155":1,"156":9,"161":3,"167":6,"170":12,"171":5,"172":7,"173":2,"176":6}}],["pointwise",{"0":{"161":1},"2":{"148":1}}],["point1",{"2":{"66":4}}],["point`",{"2":{"54":1}}],["pointedgeside",{"2":{"45":1}}],["point₂",{"2":{"44":13}}],["point₁",{"2":{"44":13}}],["point3s",{"2":{"40":10}}],["point3f",{"2":{"39":1}}],["pointrait",{"2":{"6":1}}],["point2f",{"2":{"39":4,"40":2,"60":1,"65":1}}],["point2d",{"2":{"39":1}}],["point2",{"2":{"6":2,"40":5,"62":1,"66":4}}],["pointtrait",{"2":{"1":1,"4":4,"6":9,"18":1,"34":1,"37":2,"40":3,"47":1,"53":2,"63":1,"66":17,"69":8,"77":6,"81":1,"91":6,"95":1,"108":6,"112":1,"118":6,"122":1,"129":2,"134":1,"136":22,"138":2,"139":1,"146":1,"147":2,"156":2,"161":2,"162":2,"164":2,"167":1}}],["point",{"0":{"91":1,"108":1},"2":{"1":4,"3":10,"4":37,"5":7,"6":83,"9":2,"20":1,"34":3,"37":12,"38":3,"39":1,"40":126,"44":6,"45":97,"47":50,"50":13,"52":9,"53":1,"54":71,"57":9,"63":3,"65":17,"66":73,"69":27,"72":3,"74":1,"75":2,"77":8,"86":21,"89":2,"91":10,"97":138,"99":1,"102":2,"103":21,"105":1,"106":3,"108":10,"109":1,"111":1,"116":4,"118":11,"126":1,"127":3,"136":1,"139":2,"140":1,"141":2,"143":1,"145":2,"148":1,"150":1,"156":2,"157":3,"158":9,"159":1,"161":2,"167":4,"170":111,"171":7,"172":8,"176":2}}],["points2",{"2":{"3":1,"6":1,"103":3}}],["points1",{"2":{"3":1,"6":1,"103":3}}],["points",{"0":{"77":1,"118":1},"2":{"0":1,"1":3,"3":1,"4":11,"5":1,"6":53,"9":3,"13":1,"33":3,"34":3,"37":2,"39":8,"40":32,"44":1,"45":55,"47":5,"50":3,"51":5,"52":1,"53":8,"54":28,"56":4,"57":1,"58":3,"60":4,"62":4,"63":6,"65":2,"66":8,"68":2,"69":13,"71":1,"75":6,"77":3,"78":4,"89":6,"91":1,"92":7,"93":3,"97":10,"103":5,"106":5,"108":1,"109":2,"110":4,"111":3,"115":1,"116":5,"118":3,"119":3,"120":3,"121":1,"125":1,"127":3,"136":3,"146":2,"148":1,"151":2,"152":2,"156":11,"157":11,"158":26,"159":10,"160":33,"161":2,"162":2,"167":25,"170":8,"171":1,"175":1,"176":11}}],["pointorientation",{"2":{"0":1,"6":2,"97":2}}],["my",{"2":{"177":1,"178":2}}],["moore",{"2":{"127":1}}],["moved",{"2":{"45":1,"148":1}}],["move",{"2":{"44":1,"97":1}}],["mode",{"2":{"178":3}}],["model",{"2":{"175":1}}],["modify",{"2":{"170":1}}],["modified",{"2":{"136":2}}],["module",{"2":{"148":1,"153":1}}],["modules",{"2":{"6":1,"40":1}}],["mod1",{"2":{"40":5}}],["mod",{"2":{"40":1,"45":1}}],["most",{"2":{"25":1,"29":1,"45":1,"52":1,"54":1,"57":1,"62":1,"97":1,"156":1,"174":2}}],["monotone",{"2":{"20":1,"62":2}}],["monotonechainmethod",{"2":{"0":1,"6":1,"58":1,"62":2,"63":4}}],["moment",{"2":{"6":1,"151":1,"153":1}}],["more",{"2":{"6":3,"7":1,"9":1,"10":1,"11":1,"23":1,"27":1,"30":1,"45":1,"51":1,"53":1,"56":1,"63":1,"97":1,"103":1,"136":4,"142":1,"149":1,"151":1,"153":1,"170":2,"175":1}}],["mistakenly",{"2":{"143":1}}],["missing",{"2":{"131":6,"132":2,"151":4}}],["missed",{"2":{"127":1}}],["mid",{"2":{"47":2,"97":3}}],["midpoint",{"2":{"45":2}}],["middle",{"2":{"45":2}}],["mining",{"2":{"177":1}}],["minimal",{"2":{"177":1}}],["minimize",{"2":{"54":1}}],["minimum",{"2":{"4":7,"6":12,"46":1,"47":2,"66":12,"156":1,"157":1,"159":1}}],["mind",{"2":{"151":1,"176":1}}],["minmax",{"2":{"54":4}}],["min",{"2":{"47":1,"54":16,"66":15,"156":1,"158":3,"159":1,"160":28}}],["minus",{"2":{"33":1}}],["minpoints=0",{"2":{"127":1}}],["minpoints",{"2":{"6":2}}],["might",{"2":{"6":3,"25":1,"29":1,"34":1,"51":1,"53":1,"54":1,"56":1,"137":1,"158":1}}],["mixed",{"2":{"6":4,"156":1}}],["m",{"2":{"5":1,"6":1,"15":10,"40":2,"47":6,"126":2,"171":1}}],["mp",{"2":{"86":2}}],["mp1",{"2":{"4":2,"6":2,"69":7}}],["mp2",{"2":{"4":2,"6":2,"69":8}}],["manner",{"2":{"175":1}}],["manipulate",{"2":{"174":1}}],["manually",{"2":{"140":1}}],["many",{"2":{"4":1,"5":1,"6":2,"23":1,"30":1,"40":1,"45":1,"50":1,"52":1,"54":2,"57":1,"69":1,"141":1,"146":1}}],["mason",{"2":{"136":2}}],["markersize",{"2":{"170":2}}],["marker",{"2":{"170":2}}],["marked",{"2":{"45":6,"52":1,"54":1,"57":1}}],["marking",{"2":{"52":2,"54":2,"57":2}}],["mark",{"2":{"45":2}}],["marks",{"2":{"45":1}}],["mag",{"2":{"37":4}}],["making",{"2":{"45":1,"127":1,"134":1,"144":1,"170":1,"172":2}}],["makie",{"2":{"13":1,"14":1,"33":1,"36":1,"39":3,"43":1,"46":1,"49":4,"60":1,"61":1,"65":1,"68":1,"71":1,"74":1,"84":1,"88":1,"99":1,"102":1,"105":1,"115":1,"127":3,"155":1,"156":1,"168":1}}],["makevalid",{"2":{"156":2}}],["makes",{"2":{"34":1,"45":1,"66":1,"136":1,"141":1,"143":1,"144":1}}],["make",{"2":{"9":1,"25":1,"29":1,"37":1,"45":3,"54":1,"66":1,"103":1,"127":2,"134":1,"142":1,"151":1,"160":1,"163":1,"170":2,"172":1}}],["mainly",{"2":{"40":1,"65":1,"129":1}}],["maintain",{"2":{"34":1}}],["main",{"0":{"26":1},"1":{"27":1,"28":1},"2":{"7":1,"30":1,"45":1,"127":1,"136":1,"152":1}}],["mapped",{"2":{"174":1}}],["maptasks",{"2":{"136":7}}],["mapreducetasks",{"2":{"136":5}}],["mapreduce",{"2":{"52":1,"127":2,"136":8}}],["map",{"0":{"171":1},"2":{"6":1,"13":1,"18":3,"19":1,"27":1,"40":1,"45":1,"54":1,"103":2,"127":17,"136":25,"142":1,"156":1,"164":1,"169":1,"171":1,"172":1,"174":1}}],["matlab",{"2":{"49":1}}],["materializer`",{"2":{"136":1}}],["materializer",{"2":{"22":1,"136":1}}],["mathrm",{"2":{"40":1}}],["math",{"2":{"7":1}}],["mathematically",{"2":{"6":1,"126":1}}],["matches",{"2":{"69":1,"127":1}}],["match",{"2":{"6":1,"69":12,"103":3,"127":1,"131":1,"136":2}}],["matching",{"2":{"3":1,"6":1,"22":1,"69":3,"103":1,"134":2}}],["matrix",{"2":{"6":1,"14":2,"40":1}}],["maximal",{"2":{"54":1}}],["maximum",{"2":{"3":1,"6":4,"14":1,"46":1,"47":4,"86":1,"127":1,"152":1,"153":1,"158":4}}],["max",{"2":{"6":9,"37":2,"47":1,"127":1,"136":2,"151":5,"152":8,"153":7,"158":36,"160":1,"168":1}}],["made",{"2":{"6":2,"44":1,"45":1,"54":1,"110":1,"134":1,"139":1,"145":1,"159":1}}],["maybe",{"2":{"6":1,"97":4,"131":1,"136":6}}],["may",{"2":{"1":1,"6":5,"23":2,"24":1,"40":2,"45":1,"54":1,"62":1,"126":1,"128":1,"134":1,"136":4,"143":1,"144":1,"152":1,"164":1}}],["mercator",{"2":{"171":1}}],["merge",{"2":{"136":1}}],["measure",{"2":{"136":1,"150":1}}],["meant",{"2":{"30":1}}],["meaning",{"2":{"3":3,"4":1,"6":4,"24":1,"34":1,"41":1,"103":4,"126":1}}],["means",{"2":{"3":1,"6":2,"33":1,"34":1,"41":1,"74":1,"97":3,"102":1,"103":1,"126":1,"134":1}}],["mean",{"2":{"0":1,"6":5,"17":1,"39":2,"40":5,"136":1}}],["meanvalue",{"2":{"0":1,"5":2,"6":3,"38":1,"39":2,"40":15}}],["meets",{"2":{"97":9,"103":1,"158":1}}],["meet",{"2":{"54":3,"74":1,"75":1,"89":1,"97":7,"106":1,"116":1}}],["memory",{"2":{"40":1,"172":1}}],["mesh",{"2":{"39":1,"136":1}}],["message",{"2":{"6":1,"166":1}}],["me",{"0":{"23":1}}],["mentioned",{"2":{"19":1}}],["mentions",{"2":{"6":1,"166":1}}],["menu",{"2":{"14":3}}],["median",{"2":{"13":4,"136":1}}],["mechanics",{"2":{"6":1,"40":1}}],["met",{"2":{"97":44}}],["meters",{"2":{"6":4,"151":1,"152":4,"171":1}}],["methoderror",{"2":{"31":3}}],["methods",{"0":{"2":1,"3":1,"4":1,"6":1},"1":{"3":1,"4":1},"2":{"1":1,"6":9,"9":1,"25":1,"29":1,"31":27,"40":3,"58":1,"75":1,"89":1,"106":1,"116":1,"127":1,"131":1,"134":1,"136":2,"151":1,"156":2,"161":1,"164":1,"170":1}}],["method",{"0":{"149":1},"2":{"1":1,"4":1,"5":10,"6":97,"24":1,"34":1,"37":1,"40":37,"41":2,"44":1,"47":1,"54":1,"57":1,"62":3,"63":2,"66":4,"69":1,"75":2,"89":2,"103":1,"106":2,"116":2,"127":1,"136":5,"148":1,"149":2,"151":2,"152":9,"153":14,"154":2,"165":1,"166":3,"175":1,"178":1}}],["mutation",{"2":{"173":1}}],["mutlipolygon",{"2":{"4":1,"6":1,"44":1}}],["muladd",{"2":{"40":2}}],["multifloats",{"2":{"13":1,"14":1,"15":1}}],["multifloat",{"2":{"7":1}}],["multilinestringtrait",{"2":{"138":1}}],["multilinestring",{"2":{"6":1,"136":1,"167":2}}],["multi",{"0":{"81":1,"82":1,"95":1,"96":1,"112":1,"113":1,"122":1,"123":1},"2":{"4":2,"6":3,"34":1,"37":1,"47":1,"69":2,"81":1,"82":1,"95":1,"96":1,"112":1,"113":1,"122":1,"123":1}}],["multicurves",{"2":{"34":1,"47":1}}],["multicurve",{"2":{"4":1,"6":1,"34":1}}],["multigeometry",{"2":{"4":2,"6":2,"66":2}}],["multiplication",{"2":{"153":1}}],["multiplied",{"2":{"40":3}}],["multiple",{"2":{"4":1,"6":1,"40":1,"97":1,"146":1,"160":1,"170":1,"174":1}}],["multiply",{"2":{"1":1,"6":1,"161":1}}],["multipolys",{"2":{"57":3}}],["multipoly`",{"2":{"51":2,"53":2,"56":2}}],["multipoly",{"2":{"6":9,"15":3,"51":1,"52":27,"53":1,"54":26,"56":1,"57":24,"145":21,"156":9}}],["multipolygon`",{"2":{"127":1}}],["multipolygons",{"2":{"3":1,"4":1,"6":11,"44":1,"51":3,"53":3,"54":3,"56":3,"65":1,"69":1,"103":2,"144":1,"170":1,"171":1}}],["multipolygon",{"2":{"3":2,"4":5,"6":16,"34":2,"43":1,"51":1,"52":7,"53":1,"54":5,"56":1,"57":6,"69":4,"103":2,"127":7,"136":1,"139":2,"143":7,"144":8,"145":2,"156":3,"170":8,"171":1}}],["multipolygontrait",{"2":{"1":1,"3":4,"4":2,"6":7,"23":1,"52":4,"54":4,"57":4,"69":6,"81":1,"82":1,"95":1,"96":1,"103":8,"112":1,"113":1,"122":1,"123":1,"136":1,"138":1,"145":4}}],["multipoint",{"2":{"4":5,"6":5,"34":1,"69":5,"86":6,"136":4,"156":1,"170":5}}],["multipoints",{"2":{"3":2,"4":1,"6":3,"34":1,"47":1,"69":2,"103":2,"156":1,"170":1}}],["multipointtrait",{"2":{"1":1,"3":2,"4":4,"6":8,"34":1,"37":2,"47":1,"69":8,"81":1,"82":1,"86":4,"95":1,"96":1,"103":4,"112":1,"113":1,"122":1,"123":1,"134":1,"138":1,"156":2,"167":1}}],["multithreading",{"2":{"1":2,"4":1,"6":5,"133":1}}],["must",{"2":{"1":1,"3":8,"4":2,"5":1,"6":23,"9":1,"37":1,"40":5,"41":1,"45":2,"47":3,"50":1,"54":2,"69":5,"72":2,"75":1,"84":1,"85":1,"89":1,"97":13,"103":1,"105":1,"106":1,"116":2,"127":1,"131":1,"136":1,"137":1,"138":3,"139":1,"148":1,"152":1,"153":1,"156":1,"160":4,"166":1}}],["much",{"2":{"0":1,"6":3,"51":1,"53":1,"56":1}}],["mdash",{"2":{"1":4,"3":9,"4":8,"5":3,"6":89,"131":3,"138":1,"139":4}}],["df",{"2":{"173":3,"174":4,"176":10,"177":12}}],["dp",{"2":{"156":3}}],["dy",{"2":{"126":2,"153":3}}],["dy2",{"2":{"126":2}}],["dy1",{"2":{"86":10,"126":2}}],["dyc",{"2":{"86":2}}],["dx",{"2":{"126":2,"153":3}}],["dx2",{"2":{"126":2}}],["dx1",{"2":{"86":10,"126":2}}],["dxc",{"2":{"86":2}}],["drop",{"2":{"57":1,"145":1,"153":1}}],["driven",{"2":{"25":1,"29":1}}],["driving",{"2":{"25":1,"29":1}}],["duplicated",{"2":{"54":2}}],["during",{"2":{"45":1}}],["due",{"2":{"44":1,"45":1,"54":3}}],["date",{"2":{"62":1}}],["datas",{"2":{"178":1}}],["datasets",{"2":{"171":1,"175":1,"176":1}}],["dataset",{"2":{"171":1,"175":1}}],["datainterpolations",{"2":{"150":1}}],["dataframes",{"2":{"173":3,"176":2,"177":1}}],["dataframe",{"2":{"27":1,"173":1,"175":1,"176":5,"177":2}}],["data",{"0":{"127":1,"174":1},"2":{"23":1,"25":1,"29":1,"61":1,"127":2,"156":10,"169":1,"171":2,"172":2,"173":2,"174":6,"176":1}}],["dataaspect",{"2":{"13":1,"14":1,"33":1,"36":1,"39":2,"43":1,"46":1,"65":2,"127":2,"151":1,"156":1}}],["dashboard",{"0":{"14":1},"2":{"13":1,"14":1}}],["d",{"2":{"1":2,"5":1,"6":1,"40":1,"148":1,"158":3}}],["deu",{"2":{"177":2}}],["demonstrates",{"2":{"176":1}}],["densify",{"2":{"152":3}}],["densifying",{"2":{"152":1}}],["densifies",{"2":{"150":1}}],["denoted",{"2":{"97":1}}],["denotes",{"2":{"45":1}}],["debug",{"2":{"138":1}}],["debugging",{"2":{"40":1,"45":1}}],["de",{"2":{"97":2,"175":1}}],["derivation",{"2":{"54":1}}],["dealing",{"2":{"47":1}}],["delete",{"2":{"86":1,"103":1,"127":1,"158":1}}],["deleteat",{"2":{"45":6,"158":1,"160":2}}],["deltri",{"2":{"63":1}}],["delayed",{"2":{"45":10,"52":2,"54":2,"57":2}}],["delay",{"2":{"45":14,"51":2,"52":2,"53":2,"54":2,"56":2,"57":2}}],["delaunay",{"2":{"6":1,"63":1}}],["delaunaytriangulation",{"2":{"6":1,"31":1,"58":1,"63":6}}],["depend",{"2":{"45":2}}],["depends",{"2":{"45":1,"50":1}}],["depending",{"2":{"1":1,"6":1,"23":1,"54":1,"136":1}}],["depth",{"2":{"40":2}}],["desktop",{"2":{"174":1}}],["dest",{"2":{"171":2}}],["destination",{"2":{"171":5}}],["desired",{"2":{"56":1,"174":1}}],["despite",{"2":{"37":1}}],["describe",{"2":{"17":1}}],["described",{"2":{"6":1,"40":1,"44":1,"45":1}}],["deconstruct",{"2":{"129":1}}],["decomposition",{"2":{"18":1,"129":1}}],["decomposing",{"2":{"18":1}}],["decompose",{"2":{"18":2,"27":1,"40":4,"140":1}}],["decrementing",{"2":{"127":1}}],["decrease",{"2":{"44":1}}],["decreasing",{"2":{"6":1,"156":1}}],["decide",{"2":{"62":1,"127":1}}],["decision",{"2":{"24":1}}],["degeneracies",{"2":{"9":1}}],["degenerate",{"2":{"6":1,"40":1,"50":2}}],["degrees",{"2":{"6":1,"36":1,"126":1,"152":1}}],["defines",{"2":{"45":1,"129":1,"137":1,"163":1}}],["define",{"2":{"39":1,"54":2,"68":1,"127":2,"129":1,"134":1,"136":1,"163":1,"178":2}}],["defined",{"2":{"4":1,"5":1,"6":3,"7":1,"22":1,"37":2,"40":1,"46":1,"47":4,"54":4,"66":2,"125":1,"136":1,"153":1,"163":1}}],["definitions",{"2":{"166":1}}],["definition",{"2":{"4":4,"6":6,"69":8,"74":1,"153":1}}],["default",{"2":{"1":2,"4":5,"6":14,"34":2,"37":1,"47":1,"51":1,"52":2,"53":1,"54":5,"56":1,"57":2,"63":1,"66":2,"127":5,"131":1,"136":2,"148":2,"156":2}}],["defaults",{"2":{"1":6,"4":2,"6":14,"133":3,"136":1}}],["deeper",{"2":{"1":1,"6":1,"135":1,"136":2}}],["detrimental",{"2":{"143":1}}],["detector",{"2":{"62":1}}],["detection",{"2":{"62":1,"127":1}}],["determined",{"2":{"45":1,"47":1}}],["determine",{"2":{"45":10,"47":3,"51":2,"53":2,"54":9,"56":2,"75":1,"89":1,"97":9,"103":1,"106":1,"116":1,"158":3,"175":1}}],["determines",{"2":{"34":1,"45":3,"54":1,"97":10}}],["determinant",{"2":{"6":1,"40":1}}],["details",{"2":{"131":3,"132":1,"151":2}}],["detail",{"2":{"30":1}}],["det",{"2":{"0":1,"6":2,"40":4}}],["dirname",{"2":{"156":4}}],["dirty",{"2":{"155":1}}],["directive",{"2":{"136":1}}],["direction",{"2":{"6":1,"45":1,"69":5,"127":3}}],["directly",{"2":{"6":1,"63":3,"127":1,"152":1}}],["dig",{"2":{"136":1}}],["dict",{"2":{"127":5}}],["didn",{"2":{"57":1,"97":1,"165":1}}],["division",{"2":{"39":1}}],["divided",{"2":{"30":1}}],["div",{"2":{"6":2}}],["div>",{"2":{"6":2}}],["ditance",{"2":{"4":1,"6":1,"66":1}}],["dimensional",{"2":{"5":1,"6":3,"33":1,"40":1,"63":2}}],["dimensions",{"2":{"3":1,"6":1,"103":2}}],["dimension",{"2":{"1":1,"3":4,"6":4,"86":2,"102":1,"103":4,"148":1}}],["discouraged",{"2":{"172":1}}],["discussion",{"2":{"25":1,"29":1,"50":1}}],["distributed",{"2":{"176":2}}],["distinct",{"2":{"54":1,"127":1}}],["dist",{"2":{"54":40,"66":19,"97":2,"152":8,"158":40}}],["distance`",{"2":{"152":3,"153":1,"166":1}}],["distances",{"2":{"54":1,"65":1,"152":1,"157":5}}],["distance",{"0":{"64":2,"65":2},"1":{"65":2,"66":2},"2":{"0":4,"4":26,"6":47,"31":1,"40":13,"41":3,"47":3,"54":32,"64":2,"65":17,"66":92,"97":1,"129":1,"150":1,"151":5,"152":13,"153":14,"156":1,"157":3,"158":6,"159":1,"168":1,"178":2}}],["disagree",{"2":{"34":1}}],["disparate",{"2":{"25":1,"29":1}}],["dispatches",{"2":{"6":1,"34":1,"37":1,"40":1,"44":1,"47":1,"66":1,"69":1,"75":1,"89":1,"103":1,"106":1,"116":1}}],["dispatch",{"2":{"4":1,"6":5,"24":1,"40":1,"69":1,"131":1,"136":2,"164":1,"166":1}}],["displaying",{"2":{"171":1}}],["display",{"2":{"13":1,"39":1,"171":1}}],["disjoint",{"0":{"87":1,"88":1,"91":1,"92":1,"93":1,"94":1,"95":1},"1":{"88":1,"89":1},"2":{"0":2,"3":5,"6":7,"23":1,"31":1,"57":2,"87":1,"88":3,"89":11,"90":6,"91":15,"92":18,"93":10,"94":5,"95":4,"96":2,"97":16,"100":3,"139":2,"143":2,"145":7,"175":1}}],["diffs",{"2":{"37":4}}],["diff",{"2":{"6":2,"37":17,"51":5,"52":3,"103":3,"145":8}}],["differs",{"2":{"171":1}}],["differ",{"2":{"4":1,"6":1,"66":1}}],["differently",{"2":{"4":3,"6":4,"34":2,"37":1,"47":1}}],["different",{"2":{"3":1,"4":4,"6":6,"20":1,"23":1,"34":4,"37":1,"45":3,"47":1,"54":2,"62":1,"103":3,"127":1,"134":1,"136":1,"143":2,"171":2,"174":1}}],["differences",{"0":{"52":1},"2":{"54":1,"158":1}}],["difference",{"0":{"51":1},"2":{"0":1,"6":7,"11":1,"23":1,"31":1,"45":3,"51":12,"52":14,"54":1,"56":1,"57":3,"139":1,"145":1,"152":1}}],["diffintersectingpolygons",{"2":{"0":1,"6":1,"139":1,"145":4}}],["doi",{"2":{"51":2,"53":2,"56":2,"97":1}}],["doing",{"2":{"17":1,"22":1,"136":1,"172":1}}],["dot",{"2":{"37":2,"40":1}}],["doable",{"2":{"9":1}}],["documenter",{"2":{"131":3,"132":1,"151":2}}],["documentation",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"30":1,"39":1}}],["docstring",{"2":{"131":6,"132":2,"151":4}}],["docstrings",{"0":{"130":1},"1":{"131":1},"2":{"7":1}}],["docs",{"0":{"30":1},"2":{"30":1,"127":1}}],["doc",{"2":{"9":1,"10":1}}],["does",{"0":{"22":1},"2":{"7":1,"19":1,"43":1,"54":2,"71":1,"74":3,"97":1}}],["doesn",{"2":{"4":1,"6":2,"34":1,"50":1,"69":1,"152":1,"166":1,"177":1}}],["download",{"2":{"171":1}}],["down",{"2":{"6":1,"18":1,"27":1,"40":1,"136":1}}],["doublets",{"2":{"177":2}}],["double",{"2":{"159":4}}],["doubled",{"2":{"6":1,"159":1}}],["douglas",{"2":{"154":2,"156":2,"158":1}}],["douglaspeucker",{"0":{"158":1},"2":{"0":1,"6":5,"154":1,"156":5,"158":6}}],["done",{"0":{"10":1},"2":{"13":1,"14":1,"97":2,"127":1,"129":1,"143":1,"170":1,"175":1}}],["don",{"2":{"4":2,"6":3,"45":4,"51":1,"57":1,"69":6,"92":1,"97":1,"105":1,"109":1,"127":2,"136":3,"153":1,"166":1}}],["do",{"0":{"9":1,"23":1,"55":1},"2":{"1":1,"6":2,"14":1,"23":1,"31":1,"34":2,"37":1,"40":2,"41":1,"44":1,"47":1,"50":1,"57":3,"66":2,"68":1,"69":1,"84":1,"92":2,"93":1,"94":2,"97":1,"127":4,"129":1,"136":11,"141":1,"142":1,"144":1,"147":2,"149":1,"152":1,"156":1,"161":2,"162":2,"171":2,"172":2,"173":3,"176":1,"177":1}}],["ay",{"2":{"126":2}}],["azimuth",{"2":{"126":2}}],["automatically",{"2":{"103":1,"171":1}}],["a3",{"2":{"61":1}}],["against",{"2":{"69":1,"97":2,"152":1,"156":1}}],["again",{"2":{"54":1,"136":1}}],["a``",{"2":{"52":2}}],["a`",{"2":{"52":7,"54":3,"57":2}}],["away",{"2":{"41":1,"86":1,"178":1}}],["a2y",{"2":{"54":4}}],["a2x",{"2":{"54":4}}],["a2",{"2":{"39":4,"54":54,"62":1,"103":6}}],["a1y",{"2":{"54":7}}],["a1x",{"2":{"54":7}}],["a1",{"2":{"39":2,"45":9,"54":66,"62":1,"103":6}}],["ams",{"2":{"168":2}}],["america",{"2":{"156":1}}],["am",{"2":{"97":1}}],["ambiguity",{"2":{"66":2,"136":5}}],["amounts",{"2":{"174":1}}],["amount",{"2":{"33":1,"46":1}}],["amp",{"2":{"6":1,"9":1}}],["axes",{"2":{"127":6}}],["ax",{"2":{"13":3,"14":3,"126":2,"170":5}}],["axislegend",{"2":{"60":1,"151":1,"155":1}}],["axis",{"2":{"13":2,"14":1,"33":1,"36":1,"39":4,"43":1,"46":1,"62":2,"65":1,"127":2,"151":1,"156":1,"168":1}}],["axs",{"2":{"13":2}}],["a>",{"2":{"6":2}}],["adjust",{"2":{"54":1}}],["adjacent",{"2":{"45":1,"52":1,"54":1,"57":1}}],["adaptivity",{"0":{"55":1}}],["adaptive",{"2":{"7":1,"13":3,"14":2,"55":1}}],["adapted",{"2":{"51":1,"53":1,"56":1,"126":1}}],["advance",{"2":{"44":2}}],["advised",{"2":{"6":1,"164":1}}],["administrative",{"2":{"177":1}}],["admin",{"2":{"11":1,"61":1,"156":2}}],["adm0",{"2":{"11":7,"61":4}}],["additional",{"2":{"174":1}}],["additionally",{"2":{"45":3,"69":1}}],["addition",{"2":{"39":1,"57":1}}],["adding",{"2":{"4":1,"6":4,"7":1,"57":2,"127":1,"146":1,"150":1,"152":2,"153":1}}],["added",{"2":{"6":1,"37":1,"45":6,"47":1,"57":2,"131":1,"136":1,"145":2,"158":1}}],["add",{"2":{"3":1,"6":1,"7":2,"40":1,"41":1,"45":16,"47":1,"50":4,"51":3,"53":1,"54":2,"56":2,"57":9,"63":1,"86":1,"127":4,"136":1,"150":1,"152":1,"158":10,"165":1,"171":1,"173":2,"175":1}}],["average",{"2":{"38":3,"44":4,"54":1}}],["available",{"0":{"139":1},"2":{"6":3,"31":1,"44":1,"138":3,"150":1,"151":1,"153":1,"156":1,"160":1,"164":1}}],["avoid",{"2":{"5":1,"6":7,"40":1,"51":1,"53":1,"54":1,"56":1,"57":1,"127":2,"136":5,"153":1,"157":1,"158":1,"159":1,"170":3}}],["achieve",{"2":{"143":1}}],["across",{"2":{"134":1}}],["acos",{"2":{"37":1}}],["activate",{"2":{"151":1}}],["action",{"2":{"20":2}}],["actions",{"2":{"20":2}}],["actual",{"2":{"10":1,"40":1,"126":1,"142":1,"148":1,"152":1}}],["actually",{"2":{"1":1,"6":1,"9":1,"40":4,"54":1,"57":3,"97":1,"127":1,"161":1,"174":1}}],["access",{"2":{"171":1}}],["accessed",{"2":{"166":1}}],["acceptable",{"2":{"97":1}}],["accepts",{"2":{"63":1}}],["accept",{"2":{"6":1,"166":1}}],["according",{"2":{"141":1,"143":1,"144":1,"176":1}}],["accordingly",{"2":{"45":1}}],["account",{"2":{"51":1,"53":1}}],["accurary",{"2":{"54":1}}],["accuratearithmetic",{"2":{"11":2}}],["accurate",{"0":{"11":1},"2":{"11":3,"151":1}}],["accumulators",{"2":{"40":1}}],["accumulator",{"2":{"40":1}}],["accumulate",{"2":{"34":1,"44":3}}],["accumulation",{"0":{"11":1},"2":{"40":1}}],["after",{"2":{"6":8,"37":1,"45":3,"136":1,"156":2}}],["ab",{"2":{"45":3,"51":1,"53":1,"54":5,"56":1}}],["able",{"2":{"20":1,"54":1}}],["ability",{"2":{"17":1}}],["about",{"2":{"6":1,"24":2,"28":1,"40":2,"97":1,"140":1}}],["above",{"2":{"4":1,"6":1,"37":1,"44":1,"45":1,"54":1,"57":1,"138":1}}],["abs",{"2":{"34":4,"37":1,"44":1,"47":2,"86":8,"103":2,"127":1,"159":1,"178":1}}],["absolute",{"2":{"4":1,"6":1,"33":1,"34":2}}],["abstractpolygon",{"2":{"136":1}}],["abstractpolygontrait",{"2":{"66":1}}],["abstractpoint",{"2":{"136":1}}],["abstractface",{"2":{"136":1}}],["abstractfloat",{"2":{"31":1,"34":2,"37":1,"45":1,"47":2,"50":1,"51":1,"53":1,"54":1,"56":1,"66":8}}],["abstractrange",{"2":{"127":6}}],["abstractmesh",{"2":{"136":1}}],["abstractmulticurvetrait",{"2":{"81":1,"82":1,"95":1,"96":1,"112":1,"113":1,"122":1,"123":1}}],["abstractmatrix",{"2":{"6":5,"127":13}}],["abstractcurvetrait",{"2":{"34":1,"37":1,"47":1,"77":1,"80":1,"81":1,"86":1,"91":1,"95":1,"108":1,"111":1,"112":1,"118":1,"121":1,"122":1,"126":1,"156":2,"167":3}}],["abstractarrays",{"2":{"134":1}}],["abstractarray",{"2":{"6":1,"131":1,"136":6,"167":2}}],["abstract",{"2":{"6":3,"40":3,"137":1,"138":4,"139":1,"156":3,"165":1}}],["abstractvector",{"2":{"5":1,"6":1,"40":26,"127":8}}],["abstractgeometrytrait`",{"2":{"138":1}}],["abstractgeometrytrait",{"2":{"6":3,"34":2,"47":1,"66":1,"82":1,"96":1,"113":1,"123":1,"131":1,"134":1,"138":4,"139":2,"167":5}}],["abstractgeometry",{"2":{"3":4,"6":4,"72":2,"85":2,"136":1}}],["abstracttrait",{"2":{"1":2,"3":2,"6":8,"50":1,"52":2,"54":4,"57":2,"103":4,"129":1,"131":2,"136":9,"164":3}}],["abstractbarycentriccoordinatemethod",{"2":{"0":1,"5":1,"6":7,"40":18}}],["attribute",{"2":{"174":1}}],["attributed",{"2":{"173":1}}],["attributes",{"0":{"173":1},"2":{"169":1,"173":3}}],["attempts",{"2":{"97":1}}],["attach",{"2":{"1":2,"4":1,"6":5,"133":1}}],["atomic",{"2":{"7":1}}],["at",{"2":{"3":4,"5":1,"6":6,"9":1,"18":1,"20":1,"24":1,"30":1,"33":1,"34":1,"37":2,"39":1,"40":2,"45":4,"47":2,"54":8,"57":2,"62":1,"97":17,"103":6,"105":1,"106":1,"109":3,"110":2,"111":2,"112":1,"113":1,"116":1,"122":1,"126":1,"134":1,"136":1,"151":1,"153":1,"158":1,"160":1,"171":1,"172":2}}],["arbitrarily",{"2":{"134":1}}],["arbitrary",{"2":{"38":1,"129":1,"170":1}}],["around",{"2":{"39":1,"40":2,"50":1,"65":1,"69":1,"127":1,"156":1,"176":1}}],["argmin",{"2":{"160":1}}],["argtypes",{"2":{"41":2,"149":1,"152":1}}],["args",{"2":{"13":2}}],["argumenterror",{"2":{"57":1,"127":1,"136":5}}],["argument",{"2":{"4":5,"6":10,"34":2,"37":1,"44":1,"47":1,"51":1,"53":1,"56":1,"66":2,"136":2,"166":2,"171":1,"172":1}}],["arguments",{"2":{"1":1,"3":1,"6":5,"45":1,"75":2,"89":1,"106":1,"116":1,"148":1,"152":2,"153":1,"166":1}}],["arithmetic",{"2":{"11":1}}],["archgdal",{"2":{"23":1}}],["arc",{"2":{"6":1,"152":1}}],["array",{"2":{"4":1,"6":2,"34":1,"47":1,"127":5,"136":7,"157":1,"160":1}}],["arrays",{"2":{"1":1,"6":2,"22":1,"127":1,"136":2}}],["aren",{"2":{"4":3,"6":5,"50":1,"52":1,"54":2,"57":4,"69":3,"139":2,"145":2}}],["are",{"2":{"1":1,"3":4,"4":18,"5":2,"6":50,"9":2,"20":2,"22":3,"24":1,"25":1,"29":1,"30":2,"33":1,"34":2,"36":1,"37":8,"38":6,"40":11,"43":1,"44":3,"45":31,"47":6,"50":3,"51":3,"52":15,"53":2,"54":16,"56":5,"57":9,"62":3,"65":1,"66":1,"68":3,"69":26,"71":1,"75":7,"77":1,"78":3,"79":3,"80":1,"82":1,"88":1,"89":5,"91":1,"92":1,"93":1,"95":1,"96":1,"97":12,"103":7,"106":5,"108":1,"110":2,"115":1,"116":5,"118":1,"119":3,"120":3,"121":1,"123":1,"126":1,"127":14,"128":1,"131":1,"134":1,"136":4,"138":1,"139":3,"140":1,"141":1,"142":1,"143":1,"144":1,"145":2,"146":1,"151":1,"152":1,"153":1,"156":4,"158":1,"160":2,"162":1,"163":2,"164":1,"166":1,"168":1,"170":1,"173":2,"174":2,"175":3,"176":6,"177":1,"178":1}}],["area2",{"2":{"44":4}}],["area1",{"2":{"44":4}}],["areas",{"2":{"4":2,"6":2,"34":3,"159":2}}],["area",{"0":{"32":2,"33":2},"1":{"33":2,"34":2},"2":{"0":5,"4":15,"6":25,"11":6,"31":1,"32":2,"33":9,"34":61,"42":1,"43":3,"44":49,"46":2,"47":44,"56":2,"57":1,"103":1,"129":1,"139":2,"145":2,"156":2,"159":4,"171":1}}],["ask",{"2":{"23":1}}],["aspect",{"2":{"13":1,"14":1,"33":1,"36":1,"39":2,"43":1,"46":1,"65":2,"127":2,"151":1,"156":1}}],["assign",{"2":{"169":1}}],["assigned",{"2":{"45":1,"127":7,"176":1}}],["assets",{"2":{"171":1}}],["assetpath",{"2":{"171":1}}],["assemble",{"2":{"142":1}}],["assert",{"2":{"40":23,"44":1,"45":1,"50":1,"52":1,"54":1,"153":1,"167":1}}],["assume",{"2":{"103":2,"136":3,"141":1,"145":1}}],["assumed",{"2":{"34":1,"69":1,"97":1}}],["assumes",{"2":{"6":1,"45":1,"66":1,"152":1,"160":1}}],["associativity",{"2":{"19":1}}],["associated",{"0":{"1":1},"2":{"38":2}}],["as",{"2":{"1":8,"3":18,"4":6,"5":1,"6":80,"7":1,"11":2,"13":3,"14":3,"15":3,"17":2,"18":2,"20":1,"22":1,"23":2,"24":1,"25":1,"29":1,"33":2,"34":3,"36":2,"37":4,"38":4,"39":1,"40":4,"41":3,"43":2,"44":1,"45":15,"46":2,"47":5,"49":3,"50":5,"51":8,"52":2,"53":7,"54":8,"56":7,"57":5,"58":1,"60":2,"61":2,"62":3,"63":3,"65":3,"66":1,"68":2,"69":2,"71":2,"72":2,"74":3,"75":3,"84":2,"85":2,"86":2,"88":2,"89":3,"97":7,"99":2,"100":2,"102":2,"103":2,"105":2,"106":3,"108":1,"115":2,"116":3,"126":8,"127":3,"129":3,"131":1,"134":2,"135":2,"136":15,"138":1,"139":1,"141":2,"142":2,"144":2,"146":1,"148":3,"150":2,"151":2,"152":3,"154":2,"155":2,"156":7,"158":2,"161":3,"164":2,"165":2,"166":2,"167":2,"168":3,"169":3,"170":2,"171":1,"172":1,"174":3,"175":2,"176":3,"177":2}}],["alone",{"2":{"136":1}}],["along",{"2":{"4":4,"6":5,"45":3,"47":2,"54":4,"69":4,"97":1}}],["although",{"2":{"119":1,"120":1}}],["alternate",{"2":{"45":1}}],["alternative",{"2":{"45":1}}],["already",{"2":{"69":1,"97":2,"158":1}}],["almost",{"2":{"54":1}}],["alg=nothing",{"2":{"156":1}}],["alg`",{"2":{"156":1}}],["alg",{"2":{"6":4,"156":21,"157":3,"158":8,"159":3,"160":7,"166":9}}],["algorithms",{"2":{"6":3,"58":1,"62":1,"141":1,"153":1,"154":1,"156":4,"158":1,"160":1}}],["algorithm",{"0":{"157":1,"158":1,"159":1},"2":{"6":12,"39":1,"45":2,"47":1,"50":3,"51":1,"53":1,"56":1,"58":1,"63":4,"97":1,"154":1,"156":8,"157":1,"158":3,"159":1,"166":4}}],["allocating",{"2":{"63":1}}],["allocations",{"2":{"5":1,"6":1,"40":1}}],["allocate",{"2":{"63":1}}],["allow=",{"2":{"97":1}}],["allows",{"2":{"11":1,"18":1,"23":1,"24":1,"27":1,"75":2,"77":3,"78":3,"79":3,"80":1,"89":2,"91":3,"92":3,"93":2,"94":1,"106":1,"109":1,"110":1,"111":1,"116":3,"118":3,"119":3,"120":3,"121":1,"129":1,"154":1,"171":1,"173":1,"175":1}}],["allowed",{"2":{"6":1,"75":3,"89":3,"97":6,"106":5,"108":1,"109":2,"116":3,"156":1}}],["allow",{"2":{"1":1,"6":1,"23":1,"54":1,"75":7,"86":3,"89":7,"97":73,"106":10,"116":10,"161":1}}],["all",{"2":{"1":3,"3":2,"4":3,"6":14,"9":1,"11":7,"22":1,"25":1,"29":1,"31":2,"34":3,"37":5,"40":1,"45":13,"47":3,"51":1,"52":3,"54":3,"57":5,"58":1,"61":3,"63":1,"65":1,"69":2,"71":1,"78":3,"79":3,"82":1,"95":1,"96":1,"97":7,"103":4,"115":1,"123":1,"126":1,"127":3,"128":1,"131":1,"134":2,"135":1,"136":8,"138":1,"142":1,"143":1,"146":1,"147":1,"156":1,"161":2,"162":1,"163":1,"170":1,"172":1,"174":1,"175":1}}],["always",{"2":{"1":7,"4":6,"6":10,"25":1,"29":1,"33":1,"34":4,"47":2,"62":1,"65":1,"66":1,"69":1,"136":2,"148":4,"175":1}}],["also",{"2":{"1":2,"6":11,"23":1,"34":2,"37":1,"44":2,"45":3,"47":1,"51":1,"53":1,"54":2,"56":1,"58":1,"62":1,"63":1,"65":1,"66":2,"69":3,"103":1,"127":1,"134":1,"136":1,"139":3,"142":1,"145":2,"149":1,"150":1,"151":1,"152":1,"154":1,"161":1,"164":1,"170":2,"173":1}}],["a",{"0":{"23":1,"171":1,"173":1},"2":{"1":13,"3":5,"4":79,"5":1,"6":196,"7":3,"9":1,"11":1,"15":2,"17":1,"18":6,"20":3,"22":3,"23":4,"24":2,"25":2,"27":2,"28":2,"29":2,"33":11,"34":20,"36":3,"37":22,"38":13,"39":4,"40":11,"41":2,"43":5,"44":8,"45":281,"46":2,"47":17,"49":3,"50":4,"51":39,"52":30,"53":38,"54":91,"55":3,"56":36,"57":45,"58":3,"60":3,"61":2,"62":1,"63":4,"65":15,"66":27,"68":2,"69":54,"71":2,"74":1,"75":3,"77":5,"78":3,"79":2,"81":2,"82":2,"84":2,"86":1,"88":1,"89":3,"91":4,"92":3,"93":1,"95":2,"96":2,"97":52,"99":2,"102":5,"103":27,"105":2,"106":4,"108":4,"109":2,"110":2,"111":1,"112":2,"113":2,"115":1,"116":3,"118":5,"119":2,"120":2,"122":2,"123":2,"125":1,"126":4,"127":79,"129":4,"131":2,"134":4,"136":36,"137":5,"138":5,"139":9,"140":6,"141":2,"142":2,"143":8,"145":6,"146":2,"147":3,"148":8,"149":3,"150":5,"151":4,"152":8,"153":10,"155":3,"156":5,"159":3,"160":1,"161":2,"162":1,"164":6,"165":1,"166":12,"167":2,"168":1,"169":1,"170":21,"171":12,"172":5,"173":5,"174":11,"175":5,"176":8,"177":3,"178":3}}],["annotation",{"2":{"165":1}}],["annotated",{"2":{"30":1}}],["angels",{"2":{"37":1}}],["angle",{"2":{"37":35,"126":1}}],["angles",{"0":{"35":1,"36":1},"1":{"36":1,"37":1},"2":{"0":2,"4":10,"6":10,"31":1,"35":1,"36":4,"37":42}}],["answers",{"2":{"143":1}}],["answer",{"2":{"6":3,"51":1,"53":1,"54":1,"56":1}}],["another",{"2":{"3":1,"6":1,"45":2,"54":1,"63":1,"65":1,"71":1,"74":1,"77":1,"79":1,"80":1,"84":1,"88":1,"91":1,"92":1,"93":1,"94":1,"97":1,"99":1,"102":1,"103":1,"105":1,"108":1,"109":1,"110":1,"111":1,"115":1,"118":1,"119":1,"120":1,"121":1,"127":1,"148":1}}],["anonymous",{"2":{"1":1,"6":1,"161":1}}],["an",{"2":{"1":3,"4":11,"5":1,"6":29,"9":1,"13":1,"14":1,"18":1,"20":1,"23":2,"33":1,"34":2,"36":1,"37":4,"39":1,"40":3,"41":2,"43":1,"45":15,"46":2,"47":2,"49":1,"50":1,"51":2,"52":5,"53":2,"54":9,"56":2,"57":2,"63":3,"65":2,"66":5,"68":1,"69":1,"71":1,"74":2,"77":2,"84":1,"88":1,"97":13,"99":1,"102":1,"103":1,"105":1,"115":1,"118":2,"119":1,"120":1,"127":3,"128":1,"131":1,"134":1,"135":1,"136":8,"142":1,"146":1,"148":1,"152":1,"161":2,"166":3,"167":1,"168":1,"170":2,"171":2,"173":1,"176":1}}],["anything",{"2":{"39":1,"97":1}}],["any",{"2":{"1":3,"3":1,"4":2,"6":19,"18":1,"24":1,"25":1,"27":1,"29":1,"38":2,"44":1,"45":7,"47":1,"50":1,"52":1,"54":4,"57":1,"66":2,"76":2,"77":1,"80":1,"88":1,"90":2,"91":1,"92":2,"93":1,"94":2,"97":8,"103":2,"107":2,"117":2,"121":1,"127":2,"129":2,"131":1,"136":2,"137":1,"138":3,"139":4,"142":1,"145":4,"148":2,"150":1,"152":1,"153":1,"158":1,"167":1,"175":2,"176":2}}],["and",{"0":{"1":1,"20":1,"22":1,"24":1,"32":1,"52":1,"54":1,"57":1,"64":1,"170":1,"171":1,"173":1},"1":{"33":1,"34":1,"65":1,"66":1},"2":{"0":2,"1":8,"3":11,"4":18,"6":84,"7":1,"9":2,"17":4,"18":4,"20":2,"22":1,"23":2,"24":3,"25":2,"27":2,"28":1,"29":2,"30":5,"31":2,"33":1,"34":7,"37":13,"38":2,"39":2,"40":20,"41":1,"42":2,"43":1,"44":29,"45":71,"46":2,"47":18,"49":1,"50":4,"51":4,"52":16,"53":4,"54":38,"56":6,"57":15,"62":1,"63":2,"65":2,"66":13,"68":2,"69":13,"71":3,"72":2,"74":2,"75":3,"78":3,"79":4,"80":1,"84":2,"85":2,"86":1,"89":3,"92":3,"93":1,"94":1,"97":36,"99":1,"102":2,"103":3,"106":2,"110":2,"111":2,"115":3,"116":4,"118":2,"119":3,"120":3,"121":1,"126":2,"127":16,"129":8,"131":1,"134":2,"135":3,"136":22,"137":1,"138":4,"139":2,"140":1,"141":2,"142":1,"143":1,"146":2,"147":2,"148":2,"151":1,"152":5,"153":4,"154":2,"155":1,"156":8,"158":8,"159":1,"160":1,"161":1,"164":1,"165":3,"166":4,"169":3,"170":9,"171":7,"172":2,"174":5,"175":2,"176":4,"177":2}}],["apart",{"2":{"145":1}}],["april",{"0":{"7":1}}],["appears",{"2":{"141":1}}],["append",{"2":{"37":1,"45":5,"51":1,"52":2,"54":2,"56":1,"57":5,"145":2}}],["approximately",{"2":{"45":1,"151":1}}],["approach",{"2":{"19":1}}],["appropriately",{"2":{"176":1}}],["appropriate",{"2":{"6":1,"166":2}}],["applies",{"2":{"134":2}}],["applied",{"2":{"6":3,"20":1,"131":1,"136":2,"137":2,"138":2,"139":1}}],["application",{"2":{"1":1,"6":3,"136":1,"138":3,"139":1,"142":1,"145":2,"150":1,"153":1}}],["apply`",{"2":{"136":1}}],["applys",{"2":{"34":1,"47":1}}],["applyreduce",{"0":{"19":1},"2":{"0":2,"1":1,"6":1,"17":1,"19":2,"27":1,"34":1,"37":1,"44":2,"47":1,"66":2,"129":3,"131":1,"136":39,"165":1}}],["apply",{"0":{"1":1,"18":1,"22":1,"27":1,"134":1},"1":{"19":1},"2":{"0":2,"1":4,"6":7,"17":1,"18":5,"20":1,"22":1,"24":1,"27":3,"129":5,"131":1,"133":1,"134":4,"135":1,"136":60,"138":4,"139":1,"146":1,"147":3,"148":1,"152":1,"153":1,"156":2,"161":3,"162":2,"165":1}}],["apis",{"2":{"17":1}}],["api",{"0":{"0":1,"40":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"6":3,"24":1,"40":1,"152":1,"156":1,"166":1}}],["snapped",{"2":{"127":1}}],["s3",{"2":{"45":3}}],["scratch",{"2":{"174":1}}],["sciences",{"2":{"171":1}}],["scalefactor",{"2":{"152":3}}],["scattered",{"2":{"176":1}}],["scatter",{"2":{"43":1,"65":2,"68":2,"71":2,"74":1,"84":1,"88":2,"102":2,"115":2,"176":1}}],["schema",{"2":{"136":6}}],["scheme",{"2":{"44":1}}],["scenario",{"2":{"97":2}}],["scene",{"2":{"14":1}}],["square",{"2":{"66":1,"157":1,"158":1}}],["squared",{"2":{"6":2,"47":2,"66":12,"157":2,"158":7}}],["sqrt",{"2":{"37":2,"44":1,"66":3}}],["sgn",{"2":{"37":5}}],["smallest",{"2":{"37":2,"54":1,"58":1}}],["skipmissing",{"2":{"127":1}}],["skipped",{"2":{"127":1}}],["skip",{"2":{"34":1,"97":14,"127":1,"160":4}}],["skygering",{"2":{"7":1}}],["sᵢ₋₁",{"2":{"40":25}}],["sᵢ₊₁",{"2":{"6":2,"40":41}}],["sᵢ",{"2":{"6":4,"40":46}}],["src",{"2":{"6":2}}],["syntax",{"2":{"173":1}}],["symdifference",{"2":{"128":1}}],["sym10100477",{"2":{"97":1}}],["symbol=",{"2":{"86":1}}],["symbol",{"2":{"6":1,"166":2}}],["system",{"0":{"171":1,"172":1},"2":{"1":2,"148":2,"169":2,"171":1}}],["switches",{"2":{"54":1,"57":1}}],["switch",{"2":{"45":1,"57":1,"165":1}}],["switching",{"2":{"6":1,"47":1}}],["swap",{"2":{"6":1,"57":1,"66":2,"147":1}}],["swapped",{"2":{"3":1,"6":1,"72":1,"75":1,"85":1,"86":1,"100":1,"103":1}}],["swapping",{"2":{"1":1,"6":1,"136":1}}],["s2",{"2":{"6":4,"40":6,"45":3}}],["s1",{"2":{"6":3,"40":6,"45":3}}],["saving",{"0":{"174":1}}],["saved",{"2":{"69":1}}],["save",{"2":{"37":1,"169":1,"174":3}}],["samples",{"2":{"13":1}}],["sample",{"2":{"13":1}}],["same",{"2":{"3":2,"4":12,"6":23,"18":1,"34":1,"37":3,"45":15,"47":1,"50":1,"51":3,"53":1,"54":1,"56":1,"57":1,"62":1,"65":1,"68":2,"69":30,"97":2,"102":1,"103":8,"131":1,"134":1,"136":6,"139":2,"140":1,"144":1,"145":2,"151":1,"170":1,"171":1,"174":1}}],["says",{"2":{"62":1}}],["say",{"2":{"6":1,"40":1,"152":1}}],["span",{"2":{"176":1}}],["spatial",{"0":{"175":1},"1":{"176":1,"177":1,"178":1},"2":{"175":6,"176":3,"178":1}}],["spawn",{"2":{"136":5}}],["space",{"2":{"6":2,"25":1,"29":1,"33":1,"37":1,"97":1,"152":1,"153":1}}],["sp",{"2":{"97":2}}],["split",{"2":{"50":1}}],["specialized",{"2":{"25":1,"29":1,"63":1}}],["specify",{"2":{"6":1,"131":1,"136":1,"171":1,"172":1,"175":1}}],["specification",{"2":{"138":1,"141":1,"143":1,"144":1}}],["specifically",{"2":{"6":2,"40":3,"154":1,"175":1}}],["specific",{"2":{"45":1,"75":1,"89":1,"106":1,"116":1,"136":5}}],["specified",{"2":{"3":1,"6":2,"45":1,"52":2,"54":2,"57":2,"103":1,"134":1,"156":1}}],["slow",{"2":{"177":1}}],["slower",{"2":{"6":1,"166":2}}],["slope2",{"2":{"126":2}}],["slope1",{"2":{"126":2}}],["slidergrid",{"2":{"14":1}}],["sliders",{"2":{"14":3}}],["slightly",{"2":{"4":2,"6":2,"34":2}}],["suite",{"2":{"152":5,"156":13}}],["suggestion",{"2":{"149":1}}],["sun",{"2":{"97":1}}],["surrounds",{"2":{"97":1}}],["sure",{"2":{"9":1,"37":1,"45":2,"66":1,"103":1,"160":1}}],["suppose",{"2":{"177":1,"178":1}}],["support",{"2":{"41":1,"150":1,"178":1}}],["supports",{"2":{"39":1,"40":1,"58":1,"174":1,"178":2}}],["supported",{"2":{"23":1,"174":1}}],["supertype",{"2":{"6":1,"40":1}}],["sukumar",{"2":{"6":1,"40":1}}],["such",{"2":{"4":1,"6":1,"33":1,"49":1,"58":1,"134":1,"146":1}}],["sum=1",{"2":{"40":1}}],["sum",{"2":{"4":2,"6":3,"11":6,"33":1,"34":2,"38":2,"40":8,"47":1,"66":2,"126":5,"160":1,"167":4}}],["sublevel",{"2":{"177":1}}],["subsequent",{"2":{"170":1}}],["substituted",{"2":{"1":1,"6":1,"136":1}}],["subgeom1",{"2":{"136":2}}],["subgeom",{"2":{"136":3}}],["subject",{"2":{"45":1}}],["subtype",{"2":{"136":1}}],["subtypes",{"2":{"6":2,"40":2}}],["subtracted",{"2":{"126":1}}],["subtitle",{"2":{"13":1,"39":2,"152":1,"156":2}}],["sub",{"2":{"4":6,"6":7,"34":3,"37":1,"47":1,"52":6,"54":3,"57":4,"66":2,"81":2,"82":2,"95":2,"96":2,"112":2,"113":2,"122":2,"123":2,"136":3,"143":4,"144":2,"145":4}}],["series",{"2":{"170":1}}],["serve",{"2":{"6":1,"40":1}}],["searchsortedfirst",{"2":{"158":1}}],["seg2",{"2":{"126":2}}],["seg1",{"2":{"126":3}}],["seg",{"2":{"97":23,"103":9}}],["segmentation",{"2":{"151":1}}],["segments",{"2":{"23":1,"31":1,"36":2,"37":1,"43":1,"44":2,"45":3,"47":1,"54":6,"97":18,"152":1,"153":3}}],["segmentization",{"2":{"150":1}}],["segmentizing",{"2":{"6":3,"151":1,"152":2,"153":1}}],["segmentized",{"2":{"151":1}}],["segmentizes",{"2":{"150":1}}],["segmentizemethod",{"2":{"6":1,"152":3,"153":2}}],["segmentize",{"0":{"150":1},"1":{"151":1,"152":1,"153":1},"2":{"0":1,"6":4,"31":1,"41":1,"129":1,"150":1,"151":5,"152":11,"153":13,"168":1}}],["segment",{"2":{"4":4,"6":7,"37":1,"44":5,"45":6,"47":3,"49":1,"54":17,"66":2,"86":3,"97":43,"103":3,"126":2,"150":1,"152":2,"153":1}}],["seperate",{"2":{"54":1}}],["separates",{"2":{"97":1}}],["separate",{"2":{"45":1,"127":1,"136":1,"165":1,"174":1,"176":1}}],["separately",{"2":{"40":1,"127":1}}],["sense",{"2":{"34":1,"66":1}}],["several",{"2":{"20":2,"34":1,"140":1,"145":1}}],["section",{"2":{"30":1,"97":3,"102":1}}],["sections",{"2":{"10":1,"30":1}}],["seconds=1",{"2":{"152":3,"156":8}}],["secondisleft",{"2":{"127":4}}],["secondisstraight",{"2":{"127":7}}],["secondary",{"2":{"3":3,"6":3,"72":1,"75":1,"116":1}}],["second",{"2":{"3":8,"6":9,"45":1,"54":4,"69":1,"71":2,"72":1,"74":1,"75":1,"78":1,"79":1,"80":1,"85":2,"89":2,"97":2,"106":1,"115":1,"116":1,"119":1,"120":1,"121":2,"158":1,"172":1,"175":1}}],["self",{"2":{"9":2}}],["selected",{"2":{"127":1}}],["selectednode",{"2":{"127":3}}],["selection",{"2":{"14":1}}],["select",{"2":{"6":1,"164":1}}],["seem",{"2":{"25":1,"29":1}}],["see",{"2":{"6":4,"7":1,"27":1,"43":1,"63":1,"66":1,"68":1,"71":1,"74":1,"88":1,"97":5,"99":1,"102":1,"105":1,"115":1,"127":2,"138":1,"139":3,"141":1,"142":1,"144":1,"145":2,"151":2,"158":1,"176":2}}],["setup=",{"2":{"75":1,"89":1,"106":1,"116":1}}],["sets",{"2":{"45":1,"62":1}}],["setting",{"2":{"23":1}}],["set",{"0":{"23":1},"2":{"3":2,"4":7,"6":19,"23":1,"37":1,"38":2,"40":8,"45":3,"51":2,"53":2,"54":7,"56":2,"58":2,"68":2,"69":10,"75":1,"86":1,"89":1,"97":2,"103":1,"106":1,"116":1,"126":1,"127":1,"139":2,"145":2,"158":2,"170":1,"174":1,"176":3}}],["sve",{"2":{"1":1,"6":1,"161":1}}],["svector",{"2":{"1":14,"6":14,"45":5,"51":1,"54":2,"57":6,"97":1,"127":1,"161":13,"170":6,"172":4}}],["solution",{"2":{"97":1}}],["solid",{"2":{"6":2}}],["south",{"2":{"47":7}}],["source",{"2":{"1":10,"3":19,"4":22,"5":3,"6":91,"30":4,"86":2,"131":3,"138":1,"139":4,"148":3,"171":13,"172":1}}],["sort",{"2":{"45":4,"50":2,"54":2,"56":2,"97":1,"103":2,"127":1,"158":1}}],["sorted",{"2":{"20":1,"45":1,"158":7,"175":1}}],["someone",{"2":{"63":1,"166":1}}],["something",{"0":{"55":1},"2":{"10":1}}],["some",{"2":{"3":1,"6":3,"9":1,"17":1,"40":4,"69":1,"97":3,"103":1,"127":1,"128":1,"129":2,"134":2,"136":2,"137":1,"138":2,"139":1,"160":1,"163":2,"169":2,"175":1,"178":1}}],["so",{"2":{"1":1,"4":4,"6":10,"9":1,"17":1,"19":1,"25":1,"29":1,"31":1,"39":1,"40":1,"45":1,"46":1,"54":1,"56":2,"57":2,"65":1,"66":1,"68":1,"69":4,"71":1,"88":1,"97":2,"99":1,"115":1,"127":3,"131":1,"136":6,"150":1,"151":1,"152":3,"153":1,"160":1,"161":1,"166":2,"171":1,"172":1}}],["step",{"2":{"45":7,"51":1,"52":3,"53":1,"54":3,"56":1,"57":3,"127":6,"167":1}}],["storing",{"2":{"174":1}}],["stored",{"2":{"45":2,"176":1}}],["stores",{"2":{"45":1}}],["store",{"2":{"40":1,"174":1}}],["stopping",{"2":{"158":2}}],["stops",{"2":{"134":1}}],["stop",{"2":{"18":2,"86":3,"97":4,"103":3}}],["style",{"2":{"6":2}}],["style=",{"2":{"6":2}}],["stay",{"2":{"57":1}}],["stackoverflow",{"2":{"54":1}}],["stack",{"2":{"50":1}}],["states",{"2":{"156":1}}],["state",{"2":{"56":1,"177":9}}],["status",{"2":{"45":31,"52":4,"54":5,"57":4,"127":1}}],["static",{"2":{"165":1}}],["staticarray",{"2":{"40":1}}],["staticarrays",{"2":{"31":1,"45":5,"51":1,"54":2,"57":6,"97":1,"127":1,"161":2}}],["staticarraysco",{"2":{"1":1,"6":1,"161":1}}],["staticarrayscore",{"2":{"1":10,"6":10,"40":1,"161":10,"170":6,"172":4}}],["statica",{"2":{"1":1,"6":1,"161":1}}],["statistics",{"2":{"13":2,"31":1}}],["stability",{"2":{"23":1,"28":1}}],["stable",{"2":{"13":1,"24":1,"153":1}}],["stage",{"2":{"7":1}}],["standardized",{"2":{"97":1}}],["standards",{"2":{"97":1}}],["standard",{"2":{"6":1,"63":1}}],["started",{"2":{"45":1}}],["starting",{"2":{"44":2,"45":1,"47":1,"54":1,"145":4}}],["startvalue",{"2":{"14":4}}],["start",{"2":{"6":1,"18":1,"37":7,"40":1,"45":76,"47":17,"52":4,"54":4,"57":5,"69":1,"86":4,"97":44,"103":3,"118":1,"127":2,"140":1,"158":16,"170":1}}],["straightline",{"2":{"127":3}}],["straight",{"2":{"127":6}}],["strait",{"2":{"127":1}}],["structs",{"2":{"20":1,"138":1}}],["structures",{"2":{"129":1}}],["structure",{"2":{"6":2,"131":1,"136":1,"147":1}}],["struct",{"2":{"6":3,"40":2,"45":2,"63":1,"142":1,"145":2,"152":2,"157":1,"158":1,"159":1,"164":3,"165":2,"166":4}}],["strings",{"2":{"6":1,"44":1,"54":1}}],["string",{"2":{"1":2,"14":1,"43":1,"44":1,"148":2}}],["still",{"2":{"0":1,"34":1,"44":1,"45":3,"74":1,"158":1}}],["shp",{"2":{"174":1}}],["ships",{"2":{"171":1}}],["shifting",{"2":{"172":1}}],["shift",{"2":{"170":3}}],["shewchuck",{"2":{"7":1}}],["short",{"2":{"136":1}}],["shorthand",{"2":{"63":1}}],["show",{"2":{"9":1,"11":1,"13":1,"14":1,"39":1,"171":1,"174":1,"175":2}}],["shoelace",{"2":{"4":1,"6":1,"34":2,"47":1}}],["shouldn",{"2":{"54":1}}],["should",{"2":{"1":1,"4":1,"6":14,"17":1,"18":1,"20":2,"25":1,"29":1,"34":1,"37":3,"44":1,"45":3,"46":1,"69":1,"97":4,"127":2,"131":1,"136":2,"138":4,"139":2,"141":1,"153":1,"156":2,"165":1}}],["sharing",{"2":{"88":1}}],["shares",{"2":{"54":1}}],["share",{"2":{"4":7,"6":8,"68":2,"69":8,"92":2,"93":1,"94":1,"103":1,"111":1}}],["shared",{"0":{"160":1},"2":{"3":1,"6":1,"45":2,"54":2,"103":3}}],["shapes",{"2":{"66":1,"174":7}}],["shape",{"2":{"43":1,"52":1,"54":1,"68":1,"144":1,"170":1}}],["shaped",{"2":{"39":1}}],["shapefiles",{"2":{"174":1}}],["shapefile",{"2":{"27":1,"174":4}}],["shallower",{"2":{"1":1,"6":1,"136":1}}],["sites",{"2":{"177":1}}],["sides",{"2":{"45":3,"141":1}}],["side",{"2":{"37":4,"45":26}}],["signals",{"2":{"135":1}}],["sign",{"2":{"13":2,"14":2,"34":2,"37":7,"126":3}}],["signed",{"0":{"32":1,"33":1,"64":1,"65":1},"1":{"33":1,"34":1,"65":1,"66":1},"2":{"0":4,"4":15,"6":18,"11":3,"32":1,"33":5,"34":23,"47":3,"64":1,"65":7,"66":19}}],["six",{"2":{"6":1,"156":1}}],["size=",{"2":{"171":1}}],["sizehint",{"2":{"45":2,"52":1,"153":1}}],["size",{"2":{"6":4,"13":2,"14":5,"39":1,"57":1,"127":2,"136":4,"156":1}}],["sin",{"2":{"170":3,"171":1,"172":2}}],["singed",{"2":{"66":1}}],["singular",{"2":{"54":1}}],["singlepoly",{"2":{"156":6}}],["single",{"2":{"4":6,"6":10,"23":1,"34":1,"37":2,"47":1,"69":5,"102":2,"127":2,"139":2,"143":1,"145":2,"170":3,"174":1}}],["since",{"2":{"1":1,"6":2,"30":1,"34":1,"37":1,"44":1,"47":2,"56":1,"66":1,"69":1,"97":1,"103":2,"110":1,"148":1,"165":1,"166":2,"177":1}}],["simulation",{"2":{"23":1}}],["simultaneously",{"2":{"20":1}}],["simply",{"2":{"7":1,"33":1,"41":1,"45":1,"54":1,"57":1,"72":1,"85":1,"100":1,"127":1,"137":1,"148":1,"149":1,"152":1,"170":1,"173":1}}],["simpler",{"2":{"6":1,"127":1}}],["simple",{"0":{"60":1,"176":1},"2":{"6":3,"40":1,"63":1,"129":3,"147":1,"148":1,"155":2,"156":2,"165":1}}],["simplifier",{"2":{"156":4}}],["simplified",{"2":{"23":1,"155":1}}],["simplifies",{"2":{"6":3,"157":1,"158":1,"159":1}}],["simplification",{"0":{"154":1},"1":{"155":1,"156":1},"2":{"6":2,"154":2,"156":3}}],["simplifying",{"2":{"154":1}}],["simplify",{"0":{"157":1,"158":1,"159":1},"2":{"0":1,"6":15,"9":1,"31":1,"45":1,"129":1,"155":1,"156":41,"157":1,"158":2,"159":1}}],["simplifyalgs",{"2":{"160":1}}],["simplifyalg",{"2":{"0":1,"6":8,"156":5,"157":2,"158":2,"159":2}}],["similarly",{"2":{"129":1}}],["similar",{"2":{"1":1,"6":4,"18":1,"25":1,"27":1,"29":1,"41":1,"58":1,"63":1,"127":2,"136":1,"152":2,"153":1,"162":1}}],["s",{"0":{"28":1},"2":{"0":1,"3":1,"6":10,"7":1,"9":1,"18":1,"19":1,"27":1,"33":1,"34":4,"37":1,"38":1,"39":2,"40":5,"43":3,"44":3,"45":3,"47":1,"49":1,"52":1,"54":2,"57":3,"62":1,"66":1,"69":1,"84":2,"91":3,"92":4,"93":2,"97":9,"103":1,"105":1,"106":1,"111":1,"127":5,"129":2,"131":3,"132":1,"136":1,"139":4,"142":1,"143":1,"145":3,"151":4,"152":1,"154":1,"156":2,"160":4,"164":2,"165":1,"166":6,"170":6,"171":4,"172":4,"173":2,"174":5,"178":2}}],["fn",{"2":{"174":8}}],["f5fpn",{"2":{"171":1}}],["fc",{"2":{"136":22,"156":3,"167":14}}],["fj",{"2":{"127":2}}],["f2",{"2":{"45":2}}],["f1",{"2":{"45":2}}],["f64",{"2":{"13":2,"14":2}}],["few",{"2":{"141":1}}],["fetch",{"2":{"136":2}}],["fetched",{"2":{"127":1}}],["feb",{"0":{"8":1},"1":{"9":1,"10":1}}],["featurecollection",{"2":{"6":2,"11":1,"18":1,"127":4,"136":7,"171":2}}],["featurecollectiontrait",{"2":{"1":1,"6":2,"131":1,"134":1,"136":14,"167":5}}],["features",{"0":{"76":1,"90":1,"107":1,"117":1},"2":{"1":1,"6":3,"11":1,"22":1,"63":1,"127":3,"135":1,"136":19,"171":1}}],["featuretrait",{"2":{"1":2,"6":3,"76":4,"86":2,"90":4,"107":4,"117":4,"131":1,"134":3,"136":15,"167":5}}],["feature",{"2":{"1":6,"4":1,"6":10,"18":2,"22":1,"34":1,"47":1,"127":2,"129":1,"135":1,"136":49,"156":2,"167":2,"174":1}}],["fra",{"2":{"177":2}}],["frame",{"2":{"173":1}}],["framework",{"2":{"129":4}}],["fracs",{"2":{"45":20,"50":1}}],["frac",{"2":{"40":1,"45":2,"54":17,"156":2}}],["fractional",{"2":{"45":1,"54":3}}],["fractions",{"2":{"45":1,"54":4}}],["fraction",{"2":{"6":4,"54":2,"66":1,"156":1}}],["front",{"2":{"37":1}}],["from",{"2":{"1":3,"3":4,"4":16,"6":29,"7":1,"11":1,"20":1,"22":1,"30":1,"31":1,"34":2,"39":1,"40":4,"41":1,"44":1,"45":6,"47":11,"50":1,"51":1,"52":3,"53":1,"54":11,"56":1,"57":6,"63":1,"66":25,"89":2,"91":5,"92":4,"93":2,"94":1,"95":2,"97":6,"103":2,"126":2,"127":7,"131":3,"136":3,"145":1,"148":4,"150":1,"156":1,"157":1,"158":3,"159":1,"167":1,"169":1,"171":5,"174":1,"175":1,"176":1,"178":1}}],["footprint",{"2":{"172":1}}],["foldable",{"2":{"136":3}}],["follows",{"2":{"45":2,"75":1,"89":1,"106":1,"116":1,"127":1}}],["followed",{"2":{"30":1}}],["following",{"2":{"6":1,"40":1,"49":1,"141":1,"144":1,"156":1,"175":1}}],["focusing",{"2":{"25":1,"29":1}}],["foundational",{"2":{"17":1}}],["found",{"2":{"6":8,"30":1,"47":1,"50":1,"51":2,"53":2,"54":1,"56":2,"69":1,"127":5,"134":3,"136":7,"153":1}}],["forward",{"2":{"54":1}}],["forwards",{"2":{"45":1,"52":1,"57":1}}],["formats",{"2":{"169":1,"172":1,"174":3}}],["format",{"2":{"50":1,"174":3}}],["form",{"2":{"18":1,"45":3,"54":8,"57":3,"136":1}}],["formed",{"2":{"4":2,"6":3,"36":1,"37":4,"40":1,"45":8,"56":1,"57":1,"158":1}}],["formula",{"2":{"4":1,"6":1,"34":2,"47":1}}],["force",{"2":{"1":1,"136":2,"148":1,"156":1}}],["for",{"0":{"52":1,"54":1,"57":1},"2":{"0":2,"1":3,"3":1,"4":4,"5":3,"6":46,"7":4,"9":2,"13":5,"14":1,"18":1,"20":1,"22":1,"23":5,"25":3,"27":1,"29":3,"30":1,"31":2,"34":8,"37":5,"38":1,"39":1,"40":19,"41":3,"44":7,"45":35,"47":11,"50":5,"51":2,"52":3,"53":1,"54":7,"56":1,"57":9,"58":2,"61":1,"63":3,"65":2,"66":7,"69":13,"75":3,"81":1,"82":1,"84":1,"86":6,"89":2,"95":1,"96":1,"97":22,"102":1,"103":11,"106":2,"112":1,"113":1,"116":3,"122":1,"123":1,"125":1,"126":5,"127":13,"128":1,"129":3,"131":6,"132":2,"136":6,"137":1,"138":5,"140":3,"141":2,"143":3,"144":1,"145":5,"146":1,"148":3,"150":4,"151":7,"152":6,"153":8,"154":4,"156":12,"157":2,"158":2,"159":1,"160":6,"164":1,"165":2,"166":5,"167":7,"169":1,"171":4,"172":1,"174":3,"175":1,"177":2,"178":1}}],["fi",{"2":{"127":2}}],["fine",{"2":{"151":1}}],["final",{"2":{"57":1,"138":4,"152":1}}],["finally",{"2":{"39":2,"54":1,"127":1,"136":3,"174":1}}],["findmin",{"2":{"160":1}}],["findmax",{"2":{"156":1,"158":1}}],["findall",{"2":{"138":1}}],["finding",{"2":{"54":1}}],["findfirst",{"2":{"45":6,"50":2,"61":1,"156":1}}],["findnext",{"2":{"45":3}}],["findlast",{"2":{"45":2}}],["findprev",{"2":{"45":2}}],["finds",{"2":{"45":1,"47":1}}],["find",{"2":{"34":1,"37":6,"45":12,"47":3,"50":2,"51":4,"53":2,"54":8,"56":1,"66":3,"69":1,"97":7,"127":2,"158":5,"177":1}}],["finish",{"2":{"9":1}}],["fill",{"2":{"45":1,"127":1,"153":3}}],["filled",{"2":{"45":5,"47":3,"65":1,"66":2,"97":16}}],["files",{"2":{"163":1,"174":2}}],["file",{"2":{"30":1,"45":1,"75":3,"89":3,"106":3,"116":3,"127":1,"128":1,"129":1,"137":1,"148":1,"153":1,"154":1,"163":2,"169":1,"174":2}}],["filters",{"2":{"45":1}}],["filtering",{"2":{"6":1,"156":1}}],["filter",{"2":{"4":1,"6":2,"45":2,"136":3,"145":2,"146":1,"156":1}}],["fit",{"2":{"17":1}}],["field",{"2":{"13":2,"45":2}}],["figure",{"2":{"13":1,"14":1,"33":1,"39":2,"62":1,"171":3}}],["fig",{"2":{"13":6,"14":6,"62":5,"168":2,"170":7,"171":4}}],["fix1",{"2":{"136":2,"153":1}}],["fixme",{"2":{"126":1}}],["fix2",{"2":{"45":2}}],["fixed",{"2":{"6":3,"51":1,"53":1,"56":1}}],["fix",{"0":{"20":1},"2":{"6":9,"9":3,"15":3,"17":1,"20":1,"51":1,"52":11,"53":1,"54":11,"56":1,"57":10,"62":2,"137":1,"138":1,"141":1,"144":1}}],["firstisright",{"2":{"127":2}}],["firstisleft",{"2":{"127":4}}],["firstisstraight",{"2":{"127":4}}],["firstnode",{"2":{"127":9}}],["first",{"2":{"3":9,"6":10,"34":7,"37":14,"39":1,"40":9,"41":1,"44":1,"45":17,"47":2,"50":1,"51":2,"53":1,"54":5,"56":3,"66":8,"69":4,"71":2,"72":2,"74":1,"75":2,"78":1,"79":1,"80":1,"85":2,"89":3,"97":22,"103":1,"106":2,"108":1,"115":1,"116":2,"119":1,"120":1,"121":2,"126":1,"127":16,"136":6,"141":1,"153":3,"157":1,"158":2,"167":2,"169":1,"170":1,"171":1,"172":1,"175":1,"176":1}}],["fancy",{"2":{"170":1}}],["fancis",{"2":{"6":1,"40":1}}],["fair",{"2":{"151":1}}],["fail",{"2":{"1":1,"6":2,"136":6,"152":1}}],["fallback",{"2":{"136":1}}],["falses",{"2":{"45":2,"50":1,"51":1,"53":1}}],["false",{"0":{"24":1},"2":{"1":29,"3":7,"4":3,"6":55,"34":1,"37":2,"39":5,"45":26,"47":5,"50":1,"51":1,"52":3,"54":1,"56":4,"66":2,"68":2,"69":27,"71":2,"75":8,"77":2,"78":4,"79":1,"80":1,"81":1,"82":1,"84":2,"86":11,"89":9,"91":1,"92":4,"95":1,"96":1,"97":39,"103":22,"106":8,"108":3,"109":4,"110":1,"112":1,"113":1,"115":1,"116":7,"118":2,"119":4,"120":1,"121":1,"122":1,"123":1,"126":10,"127":5,"136":20,"141":16,"144":44,"145":4,"153":2,"156":1,"160":2,"161":20,"165":2,"167":2,"170":242,"171":12,"172":18,"175":1}}],["fashion",{"2":{"33":1}}],["faster",{"2":{"40":1,"136":1}}],["fast",{"2":{"12":1}}],["f",{"2":{"1":12,"6":25,"15":1,"18":3,"19":1,"22":2,"33":2,"36":1,"39":4,"41":1,"43":2,"45":19,"46":2,"49":2,"51":2,"52":2,"53":2,"54":2,"56":2,"57":2,"60":2,"61":2,"65":5,"68":2,"71":2,"74":2,"84":2,"88":2,"97":7,"99":2,"102":2,"105":2,"115":2,"127":30,"131":2,"134":2,"136":172,"149":1,"151":2,"152":1,"155":2,"156":1,"160":6,"161":6,"166":5,"167":16,"170":6,"172":2,"176":3}}],["fulfilled",{"2":{"158":1}}],["fully",{"2":{"6":1,"45":4,"50":1,"103":4}}],["full",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"47":5,"138":1,"177":4}}],["furthest",{"2":{"127":1}}],["further",{"2":{"43":1,"136":1}}],["furthermore",{"2":{"3":2,"6":5,"45":1,"51":1,"53":1,"56":1,"75":1,"116":1}}],["fun",{"2":{"170":1}}],["fundamental",{"2":{"30":1,"163":1}}],["func",{"2":{"13":5}}],["funcs",{"2":{"13":2,"14":3}}],["functionality",{"2":{"54":1,"129":1,"147":1,"148":1,"153":1,"166":1}}],["functionalities",{"2":{"45":1}}],["functionally",{"2":{"1":1,"6":1,"18":1,"27":1,"136":1}}],["function",{"2":{"1":8,"3":9,"4":9,"5":3,"6":14,"7":2,"9":1,"13":3,"14":2,"18":2,"27":1,"31":1,"34":3,"37":5,"40":13,"44":6,"45":18,"47":7,"49":2,"50":4,"51":3,"52":3,"53":2,"54":7,"55":1,"56":2,"57":4,"63":2,"66":6,"68":1,"69":8,"71":1,"74":1,"75":1,"81":1,"82":1,"84":1,"86":5,"88":1,"89":1,"95":1,"96":1,"97":9,"99":1,"102":1,"103":7,"105":1,"106":1,"112":1,"113":1,"115":1,"116":1,"122":1,"123":1,"126":4,"127":16,"128":3,"131":3,"134":2,"136":30,"138":7,"139":2,"142":2,"145":2,"147":2,"148":1,"150":2,"152":2,"153":7,"156":3,"157":2,"158":3,"159":2,"160":7,"161":3,"162":1,"166":6,"167":12,"170":1,"175":1,"178":4}}],["functions",{"0":{"1":1,"52":1,"54":1,"57":1,"129":1,"131":1,"167":1},"1":{"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1},"2":{"6":1,"9":3,"17":1,"27":1,"30":1,"34":1,"40":1,"44":1,"45":2,"47":1,"49":1,"97":1,"128":1,"129":2,"134":1,"138":2,"139":1}}],["future",{"2":{"23":1,"58":1,"66":1,"150":2}}],["flexijoins",{"2":{"175":1,"176":3,"177":1,"178":5}}],["flags",{"2":{"45":5}}],["flag",{"2":{"45":12,"50":1}}],["flat",{"2":{"6":1,"160":2,"167":1}}],["flattened",{"2":{"18":1}}],["flattening",{"2":{"6":4,"152":2}}],["flatten",{"2":{"0":2,"6":4,"11":3,"13":1,"18":1,"40":1,"45":2,"47":3,"53":1,"57":1,"63":2,"86":1,"131":4,"136":27,"145":1}}],["floating",{"2":{"6":1,"45":1,"54":5,"127":2}}],["float",{"2":{"6":3,"51":1,"53":1,"56":1}}],["float64x2",{"2":{"13":6,"14":6,"15":2}}],["float64",{"2":{"1":6,"4":10,"6":30,"13":1,"34":6,"36":1,"37":3,"44":1,"47":4,"50":2,"51":2,"53":1,"54":3,"56":1,"62":1,"66":12,"97":4,"103":2,"126":4,"141":6,"144":26,"151":2,"152":2,"153":1,"157":4,"158":9,"159":2,"160":6,"161":6,"162":1,"167":8,"170":190,"171":7,"172":10}}],["flipping",{"0":{"147":1},"2":{"147":1}}],["flipped",{"2":{"1":2,"6":2,"136":2}}],["flipaxis",{"2":{"39":1}}],["flip",{"2":{"0":1,"6":1,"31":1,"129":2,"136":1,"147":2}}],["wgs84",{"2":{"171":1}}],["wglmakie",{"2":{"14":1}}],["wₜₒₜ",{"2":{"40":8}}],["wᵢ",{"2":{"40":18}}],["wt",{"2":{"40":3}}],["w",{"2":{"13":13,"14":7,"66":4,"127":1}}],["wrong",{"2":{"143":1,"160":1}}],["writing",{"2":{"174":1}}],["written",{"2":{"69":1}}],["write",{"2":{"7":1,"28":1,"127":1,"174":7}}],["wrap",{"2":{"4":1,"6":1,"146":1,"152":1}}],["wrapped",{"2":{"22":1,"127":2,"134":1,"136":1}}],["wrapper",{"0":{"28":1},"2":{"28":1,"34":1,"37":1,"44":1,"47":1,"66":1,"69":1,"75":1,"89":1,"103":1,"106":1,"116":1}}],["wrappers`",{"2":{"136":1}}],["wrappers",{"2":{"1":10,"6":12,"22":1,"126":2,"127":1,"131":1,"141":8,"142":1,"144":22,"151":1,"152":1,"156":1,"161":10,"167":1,"170":121,"171":5,"172":9}}],["wrappergeometry`",{"2":{"148":1}}],["wrappergeometry",{"2":{"1":1}}],["wrapping",{"2":{"1":1,"6":1,"69":1,"148":1,"162":1}}],["web",{"2":{"174":1}}],["west",{"2":{"47":8}}],["were",{"2":{"45":1,"127":1,"176":1}}],["welcome",{"2":{"25":1,"29":1}}],["well",{"2":{"17":1,"45":1,"47":1,"63":1,"150":1,"154":1,"165":1}}],["we",{"0":{"55":2},"2":{"7":1,"11":1,"13":1,"17":3,"19":1,"23":3,"24":1,"25":2,"29":2,"30":1,"33":2,"34":2,"37":1,"39":4,"40":8,"41":2,"44":1,"45":7,"47":4,"52":8,"53":2,"54":3,"57":1,"58":1,"62":3,"63":2,"66":1,"68":1,"69":5,"71":1,"72":1,"74":1,"75":1,"85":1,"88":1,"89":1,"97":2,"99":3,"100":1,"102":1,"103":2,"105":1,"106":1,"115":1,"116":1,"127":21,"128":1,"134":1,"136":21,"140":1,"149":1,"150":2,"151":2,"152":3,"153":1,"156":5,"160":2,"163":1,"165":4,"166":1,"169":2,"170":4,"171":6,"172":4,"173":1,"174":3,"175":3,"176":7}}],["weighting",{"2":{"43":2,"44":1}}],["weights",{"2":{"38":4}}],["weight",{"2":{"6":5,"40":14,"44":1}}],["weighted",{"2":{"0":1,"6":2,"38":3,"40":4,"44":4}}],["walk",{"2":{"50":1}}],["wall2",{"2":{"47":7}}],["wall1",{"2":{"47":12}}],["walls",{"2":{"47":3}}],["wall",{"2":{"47":69}}],["wachspress",{"2":{"40":1}}],["wasincreasing",{"2":{"127":10}}],["wasn",{"2":{"45":1}}],["was",{"2":{"31":1,"34":1,"37":1,"39":1,"40":4,"41":1,"44":1,"45":1,"47":1,"50":1,"51":1,"52":3,"53":1,"54":2,"55":1,"56":1,"57":3,"63":1,"66":1,"69":1,"72":1,"82":1,"85":1,"86":1,"96":1,"97":1,"100":1,"103":1,"113":1,"123":1,"126":1,"127":1,"128":1,"134":1,"136":1,"139":1,"142":1,"145":1,"146":1,"147":1,"149":1,"151":1,"153":1,"160":1,"161":1,"162":1,"166":2,"167":1}}],["wanted",{"2":{"178":1}}],["wants",{"2":{"63":1,"136":1}}],["want",{"0":{"23":1,"55":1},"2":{"13":1,"18":1,"23":1,"40":1,"45":1,"126":1,"171":2,"173":1,"177":1,"178":1}}],["ways",{"2":{"143":1}}],["way",{"2":{"6":1,"17":1,"18":1,"24":1,"27":1,"38":1,"129":1,"137":1,"153":1,"164":1,"166":2,"173":1}}],["warn",{"2":{"127":2}}],["warned",{"2":{"6":1,"166":1}}],["warning",{"2":{"0":1,"5":1,"6":3,"24":1,"40":1,"63":1,"136":1,"152":1,"163":1,"177":1}}],["wong",{"2":{"60":1,"61":1,"168":1}}],["won",{"2":{"23":1,"45":1,"136":1}}],["wouldn",{"2":{"54":1}}],["would",{"0":{"55":1},"2":{"6":3,"23":1,"51":1,"53":1,"54":1,"56":1,"63":4,"127":1,"165":2,"171":1,"177":1,"178":1}}],["wound",{"2":{"6":1,"63":1}}],["world",{"0":{"177":1},"2":{"175":1}}],["worrying",{"2":{"24":1}}],["words",{"2":{"3":1,"6":1,"71":1,"99":1,"105":1,"106":1}}],["workflow",{"2":{"86":1,"103":1}}],["workflows",{"2":{"23":1,"25":1,"29":1}}],["works",{"2":{"30":1,"148":1,"150":1}}],["working",{"2":{"3":1,"6":1,"86":1,"171":1}}],["work",{"2":{"1":3,"6":3,"9":1,"34":2,"37":1,"44":1,"47":2,"50":2,"58":1,"66":1,"69":1,"97":1,"103":1,"126":1,"136":2,"148":1,"161":1,"177":1}}],["whole",{"2":{"97":1}}],["whose",{"2":{"3":1,"6":1,"86":1}}],["white",{"2":{"39":1}}],["while",{"2":{"37":1,"43":1,"44":1,"45":5,"54":2,"62":2,"65":1,"69":1,"86":1,"97":1,"127":3,"145":1,"158":1,"160":2,"176":1}}],["whichever",{"2":{"6":1,"156":1}}],["which",{"2":{"1":1,"4":2,"5":1,"6":8,"7":1,"11":1,"13":1,"14":1,"17":1,"18":4,"20":1,"23":2,"33":1,"34":1,"38":1,"39":2,"40":5,"41":1,"45":11,"47":2,"54":2,"58":1,"63":1,"69":2,"97":3,"127":3,"128":1,"129":1,"136":1,"138":1,"140":2,"141":1,"143":1,"144":1,"149":1,"150":1,"151":1,"152":3,"153":2,"156":1,"158":2,"161":1,"164":1,"166":4,"174":3,"175":3,"176":6,"178":1}}],["what",{"0":{"22":1,"28":1,"29":1,"33":2,"36":1,"43":1,"46":1,"49":1,"65":2,"68":1,"71":1,"74":1,"84":1,"88":1,"99":1,"102":1,"105":1,"115":1,"134":1},"2":{"13":1,"14":1,"24":1,"43":1,"126":1,"127":1,"151":1,"165":1,"171":1,"177":1}}],["whatever",{"2":{"1":1,"6":1,"22":1,"136":1}}],["whyatt",{"2":{"154":1}}],["why",{"0":{"22":1,"23":1},"2":{"9":1,"17":1,"28":1,"34":1}}],["wheel",{"2":{"17":1}}],["whether",{"2":{"1":4,"4":1,"6":10,"125":1,"126":1,"133":2,"140":1}}],["when",{"2":{"1":1,"4":2,"5":1,"6":5,"18":1,"20":1,"23":2,"24":1,"34":1,"40":3,"44":1,"45":2,"52":5,"54":6,"57":7,"97":1,"127":1,"134":3,"136":1,"138":1,"141":1,"146":2,"156":1,"171":1,"172":2,"174":1,"178":1}}],["wherever",{"2":{"6":1,"162":1}}],["where",{"2":{"1":2,"4":5,"6":11,"20":1,"31":2,"34":12,"37":8,"38":2,"40":24,"44":8,"45":14,"47":8,"50":5,"51":2,"52":5,"53":3,"54":18,"56":2,"57":9,"66":25,"69":1,"97":9,"127":3,"136":53,"143":1,"148":1,"151":1,"162":1,"163":1,"164":5,"167":3,"170":4}}],["widely",{"2":{"174":1}}],["widths",{"2":{"14":1}}],["width",{"2":{"6":2}}],["wiki",{"2":{"97":1,"158":1}}],["wikipedia",{"2":{"97":1,"158":2}}],["wind",{"2":{"4":1,"6":2,"34":1,"69":1}}],["winding",{"0":{"62":1},"2":{"4":2,"6":3,"34":3,"45":7,"62":4,"63":1,"69":1,"127":1}}],["without",{"2":{"1":2,"6":1,"17":1,"24":1,"45":1,"88":1,"103":1,"136":3,"148":1,"161":1}}],["with",{"0":{"52":1,"54":1,"57":1,"157":1,"158":1,"159":1,"172":1,"173":1},"2":{"1":5,"3":5,"4":7,"6":27,"11":1,"20":1,"22":2,"23":1,"34":7,"36":1,"37":2,"38":4,"39":1,"40":2,"44":1,"45":14,"47":6,"52":8,"53":5,"54":15,"56":1,"57":12,"65":1,"66":2,"75":1,"88":1,"92":1,"97":28,"99":1,"102":2,"103":5,"105":1,"106":1,"109":3,"110":2,"111":2,"121":1,"127":7,"129":1,"131":2,"134":1,"136":17,"141":1,"143":1,"146":1,"148":1,"150":1,"153":2,"156":2,"158":2,"159":1,"161":1,"165":1,"166":1,"169":1,"170":4,"171":6,"172":2,"173":2,"174":2,"175":1,"176":1,"177":1}}],["within",{"0":{"114":1,"115":1,"118":1,"119":1,"121":1,"122":1,"123":1},"1":{"115":1,"116":1},"2":{"0":2,"3":9,"4":3,"5":1,"6":13,"7":1,"9":1,"31":1,"34":1,"37":2,"38":3,"40":1,"44":1,"45":9,"46":2,"47":5,"52":1,"54":2,"56":1,"57":6,"65":1,"66":5,"71":2,"72":3,"74":2,"91":1,"97":9,"102":1,"103":9,"114":1,"115":6,"116":11,"117":6,"118":14,"119":15,"120":15,"121":7,"122":4,"123":4,"129":1,"175":1,"176":4,"177":2}}],["will",{"2":{"1":8,"4":7,"5":1,"6":44,"11":1,"18":3,"23":2,"24":1,"34":3,"37":4,"40":2,"44":1,"45":5,"47":1,"50":1,"51":4,"52":4,"53":4,"54":4,"56":4,"57":4,"63":1,"65":2,"66":4,"69":1,"86":1,"126":1,"127":2,"131":2,"134":1,"135":2,"136":8,"139":2,"141":1,"143":1,"145":2,"148":3,"150":2,"152":3,"156":2,"158":1,"160":1,"161":2,"166":1,"171":1,"174":1,"175":2,"177":1,"178":1}}],["wip",{"2":{"0":1}}]],"serializationVersion":2}';export{e as default}; diff --git a/dev/assets/chunks/VPLocalSearchBox.LH27nImM.js b/dev/assets/chunks/VPLocalSearchBox.DZXphNwP.js similarity index 99% rename from dev/assets/chunks/VPLocalSearchBox.LH27nImM.js rename to dev/assets/chunks/VPLocalSearchBox.DZXphNwP.js index 33fcc059b..944271317 100644 --- a/dev/assets/chunks/VPLocalSearchBox.LH27nImM.js +++ b/dev/assets/chunks/VPLocalSearchBox.DZXphNwP.js @@ -1,4 +1,4 @@ -var kt=Object.defineProperty;var Ft=(a,e,t)=>e in a?kt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Re=(a,e,t)=>Ft(a,typeof e!="symbol"?e+"":e,t);import{V as Ot,p as se,h as pe,aj as Xe,ak as Rt,al as Ct,q as Ve,am as Mt,d as At,D as be,an as et,ao as Lt,ap as Dt,s as zt,aq as Pt,v as Ce,P as ue,O as ye,ar as Vt,as as jt,W as $t,R as Bt,$ as Wt,o as G,b as Kt,j as S,a0 as Jt,k as D,at as Ut,au as qt,av as Gt,c as Y,n as tt,e as we,C as st,F as nt,a as de,t as he,aw as Ht,ax as it,ay as Qt,a9 as Yt,af as Zt,az as Xt,_ as es}from"./framework.B9oBnxE7.js";import{u as ts,c as ss}from"./theme.C-Lfz_wz.js";const ns={root:()=>Ot(()=>import("./@localSearchIndexroot.CeRkZQsH.js"),[])};/*! +var kt=Object.defineProperty;var Ft=(a,e,t)=>e in a?kt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Re=(a,e,t)=>Ft(a,typeof e!="symbol"?e+"":e,t);import{V as Ot,p as se,h as pe,aj as Xe,ak as Rt,al as Ct,q as Ve,am as Mt,d as At,D as be,an as et,ao as Lt,ap as Dt,s as zt,aq as Pt,v as Ce,P as ue,O as ye,ar as Vt,as as jt,W as $t,R as Bt,$ as Wt,o as G,b as Kt,j as S,a0 as Jt,k as D,at as Ut,au as qt,av as Gt,c as Y,n as tt,e as we,C as st,F as nt,a as de,t as he,aw as Ht,ax as it,ay as Qt,a9 as Yt,af as Zt,az as Xt,_ as es}from"./framework.B0Ss3dHN.js";import{u as ts,c as ss}from"./theme.DZANPkyA.js";const ns={root:()=>Ot(()=>import("./@localSearchIndexroot.DjI2oAK6.js"),[])};/*! * tabbable 6.2.0 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE */var vt=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],Te=vt.join(","),mt=typeof Element>"u",ie=mt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Ie=!mt&&Element.prototype.getRootNode?function(a){var e;return a==null||(e=a.getRootNode)===null||e===void 0?void 0:e.call(a)}:function(a){return a==null?void 0:a.ownerDocument},Ne=function a(e,t){var s;t===void 0&&(t=!0);var n=e==null||(s=e.getAttribute)===null||s===void 0?void 0:s.call(e,"inert"),r=n===""||n==="true",i=r||t&&e&&a(e.parentNode);return i},is=function(e){var t,s=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return s===""||s==="true"},gt=function(e,t,s){if(Ne(e))return[];var n=Array.prototype.slice.apply(e.querySelectorAll(Te));return t&&ie.call(e,Te)&&n.unshift(e),n=n.filter(s),n},bt=function a(e,t,s){for(var n=[],r=Array.from(e);r.length;){var i=r.shift();if(!Ne(i,!1))if(i.tagName==="SLOT"){var o=i.assignedElements(),l=o.length?o:i.children,c=a(l,!0,s);s.flatten?n.push.apply(n,c):n.push({scopeParent:i,candidates:c})}else{var h=ie.call(i,Te);h&&s.filter(i)&&(t||!e.includes(i))&&n.push(i);var m=i.shadowRoot||typeof s.getShadowRoot=="function"&&s.getShadowRoot(i),f=!Ne(m,!1)&&(!s.shadowRootFilter||s.shadowRootFilter(i));if(m&&f){var b=a(m===!0?i.children:m.children,!0,s);s.flatten?n.push.apply(n,b):n.push({scopeParent:i,candidates:b})}else r.unshift.apply(r,i.children)}}return n},yt=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},ne=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||is(e))&&!yt(e)?0:e.tabIndex},rs=function(e,t){var s=ne(e);return s<0&&t&&!yt(e)?0:s},as=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},wt=function(e){return e.tagName==="INPUT"},os=function(e){return wt(e)&&e.type==="hidden"},ls=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(s){return s.tagName==="SUMMARY"});return t},cs=function(e,t){for(var s=0;ssummary:first-of-type"),i=r?e.parentElement:e;if(ie.call(i,"details:not([open]) *"))return!0;if(!s||s==="full"||s==="legacy-full"){if(typeof n=="function"){for(var o=e;e;){var l=e.parentElement,c=Ie(e);if(l&&!l.shadowRoot&&n(l)===!0)return rt(e);e.assignedSlot?e=e.assignedSlot:!l&&c!==e.ownerDocument?e=c.host:e=l}e=o}if(fs(e))return!e.getClientRects().length;if(s!=="legacy-full")return!0}else if(s==="non-zero-area")return rt(e);return!1},vs=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var s=0;s=0)},gs=function a(e){var t=[],s=[];return e.forEach(function(n,r){var i=!!n.scopeParent,o=i?n.scopeParent:n,l=rs(o,i),c=i?a(n.candidates):o;l===0?i?t.push.apply(t,c):t.push(o):s.push({documentOrder:r,tabIndex:l,item:n,isScope:i,content:c})}),s.sort(as).reduce(function(n,r){return r.isScope?n.push.apply(n,r.content):n.push(r.content),n},[]).concat(t)},bs=function(e,t){t=t||{};var s;return t.getShadowRoot?s=bt([e],t.includeContainer,{filter:je.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:ms}):s=gt(e,t.includeContainer,je.bind(null,t)),gs(s)},ys=function(e,t){t=t||{};var s;return t.getShadowRoot?s=bt([e],t.includeContainer,{filter:ke.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):s=gt(e,t.includeContainer,ke.bind(null,t)),s},re=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ie.call(e,Te)===!1?!1:je(t,e)},ws=vt.concat("iframe").join(","),Me=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ie.call(e,ws)===!1?!1:ke(t,e)};/*! diff --git a/dev/assets/chunks/framework.B0Ss3dHN.js b/dev/assets/chunks/framework.B0Ss3dHN.js new file mode 100644 index 000000000..d8f3897fb --- /dev/null +++ b/dev/assets/chunks/framework.B0Ss3dHN.js @@ -0,0 +1,17 @@ +/** +* @vue/shared v3.5.4 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function $r(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ee={},Ct=[],Ue=()=>{},Xo=()=>!1,Qt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Dr=e=>e.startsWith("onUpdate:"),fe=Object.assign,jr=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},zo=Object.prototype.hasOwnProperty,J=(e,t)=>zo.call(e,t),K=Array.isArray,Tt=e=>Fn(e)==="[object Map]",fi=e=>Fn(e)==="[object Set]",q=e=>typeof e=="function",se=e=>typeof e=="string",rt=e=>typeof e=="symbol",ne=e=>e!==null&&typeof e=="object",ui=e=>(ne(e)||q(e))&&q(e.then)&&q(e.catch),di=Object.prototype.toString,Fn=e=>di.call(e),Jo=e=>Fn(e).slice(8,-1),hi=e=>Fn(e)==="[object Object]",Vr=e=>se(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,At=$r(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Hn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Qo=/-(\w)/g,Ne=Hn(e=>e.replace(Qo,(t,n)=>n?n.toUpperCase():"")),Zo=/\B([A-Z])/g,st=Hn(e=>e.replace(Zo,"-$1").toLowerCase()),$n=Hn(e=>e.charAt(0).toUpperCase()+e.slice(1)),bn=Hn(e=>e?`on${$n(e)}`:""),tt=(e,t)=>!Object.is(e,t),wn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},Sr=e=>{const t=parseFloat(e);return isNaN(t)?e:t},el=e=>{const t=se(e)?Number(e):NaN;return isNaN(t)?e:t};let hs;const gi=()=>hs||(hs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ur(e){if(K(e)){const t={};for(let n=0;n{if(n){const r=n.split(nl);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Br(e){let t="";if(se(e))t=e;else if(K(e))for(let n=0;n!!(e&&e.__v_isRef===!0),ll=e=>se(e)?e:e==null?"":K(e)||ne(e)&&(e.toString===di||!q(e.toString))?yi(e)?ll(e.value):JSON.stringify(e,vi,2):String(e),vi=(e,t)=>yi(t)?vi(e,t.value):Tt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],i)=>(n[er(r,i)+" =>"]=s,n),{})}:fi(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>er(n))}:rt(t)?er(t):ne(t)&&!K(t)&&!hi(t)?String(t):t,er=(e,t="")=>{var n;return rt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.5.4 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let be;class cl{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=be,!t&&be&&(this.index=(be.scopes||(be.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0)return;let e;for(;Dt;){let t=Dt;for(Dt=void 0;t;){const n=t.nextEffect;if(t.nextEffect=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function Si(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ei(e){let t,n=e.depsTail;for(let r=n;r;r=r.prevDep)r.version===-1?(r===n&&(n=r.prevDep),Kr(r),fl(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0;e.deps=t,e.depsTail=n}function Er(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&xi(t.dep.computed)||t.dep.version!==t.version)return!0;return!!e._dirty}function xi(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Wt))return;e.globalVersion=Wt;const t=e.dep;if(e.flags|=2,t.version>0&&!e.isSSR&&!Er(e)){e.flags&=-3;return}const n=Z,r=Le;Z=e,Le=!0;try{Si(e);const s=e.fn(e._value);(t.version===0||tt(s,e._value))&&(e._value=s,t.version++)}catch(s){throw t.version++,s}finally{Z=n,Le=r,Ei(e),e.flags&=-3}}function Kr(e){const{dep:t,prevSub:n,nextSub:r}=e;if(n&&(n.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=n,e.nextSub=void 0),t.subs===e&&(t.subs=n),!t.subs&&t.computed){t.computed.flags&=-5;for(let s=t.computed.deps;s;s=s.nextDep)Kr(s)}}function fl(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Le=!0;const Ci=[];function it(){Ci.push(Le),Le=!1}function ot(){const e=Ci.pop();Le=e===void 0?!0:e}function ps(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=Z;Z=void 0;try{t()}finally{Z=n}}}let Wt=0;class Dn{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0}track(t){if(!Z||!Le||Z===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==Z)n=this.activeLink={dep:this,sub:Z,version:this.version,nextDep:void 0,prevDep:void 0,nextSub:void 0,prevSub:void 0,prevActiveLink:void 0},Z.deps?(n.prevDep=Z.depsTail,Z.depsTail.nextDep=n,Z.depsTail=n):Z.deps=Z.depsTail=n,Z.flags&4&&Ti(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=Z.depsTail,n.nextDep=void 0,Z.depsTail.nextDep=n,Z.depsTail=n,Z.deps===n&&(Z.deps=r)}return n}trigger(t){this.version++,Wt++,this.notify(t)}notify(t){kr();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()}finally{Wr()}}}function Ti(e){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Ti(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}const An=new WeakMap,ht=Symbol(""),xr=Symbol(""),Kt=Symbol("");function ve(e,t,n){if(Le&&Z){let r=An.get(e);r||An.set(e,r=new Map);let s=r.get(n);s||r.set(n,s=new Dn),s.track()}}function Ge(e,t,n,r,s,i){const o=An.get(e);if(!o){Wt++;return}const l=c=>{c&&c.trigger()};if(kr(),t==="clear")o.forEach(l);else{const c=K(e),f=c&&Vr(n);if(c&&n==="length"){const a=Number(r);o.forEach((h,g)=>{(g==="length"||g===Kt||!rt(g)&&g>=a)&&l(h)})}else switch(n!==void 0&&l(o.get(n)),f&&l(o.get(Kt)),t){case"add":c?f&&l(o.get("length")):(l(o.get(ht)),Tt(e)&&l(o.get(xr)));break;case"delete":c||(l(o.get(ht)),Tt(e)&&l(o.get(xr)));break;case"set":Tt(e)&&l(o.get(ht));break}}Wr()}function ul(e,t){var n;return(n=An.get(e))==null?void 0:n.get(t)}function bt(e){const t=z(e);return t===e?t:(ve(t,"iterate",Kt),Ie(e)?t:t.map(me))}function jn(e){return ve(e=z(e),"iterate",Kt),e}const dl={__proto__:null,[Symbol.iterator](){return nr(this,Symbol.iterator,me)},concat(...e){return bt(this).concat(...e.map(t=>K(t)?bt(t):t))},entries(){return nr(this,"entries",e=>(e[1]=me(e[1]),e))},every(e,t){return We(this,"every",e,t,void 0,arguments)},filter(e,t){return We(this,"filter",e,t,n=>n.map(me),arguments)},find(e,t){return We(this,"find",e,t,me,arguments)},findIndex(e,t){return We(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return We(this,"findLast",e,t,me,arguments)},findLastIndex(e,t){return We(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return We(this,"forEach",e,t,void 0,arguments)},includes(...e){return rr(this,"includes",e)},indexOf(...e){return rr(this,"indexOf",e)},join(e){return bt(this).join(e)},lastIndexOf(...e){return rr(this,"lastIndexOf",e)},map(e,t){return We(this,"map",e,t,void 0,arguments)},pop(){return Ft(this,"pop")},push(...e){return Ft(this,"push",e)},reduce(e,...t){return gs(this,"reduce",e,t)},reduceRight(e,...t){return gs(this,"reduceRight",e,t)},shift(){return Ft(this,"shift")},some(e,t){return We(this,"some",e,t,void 0,arguments)},splice(...e){return Ft(this,"splice",e)},toReversed(){return bt(this).toReversed()},toSorted(e){return bt(this).toSorted(e)},toSpliced(...e){return bt(this).toSpliced(...e)},unshift(...e){return Ft(this,"unshift",e)},values(){return nr(this,"values",me)}};function nr(e,t,n){const r=jn(e),s=r[t]();return r!==e&&!Ie(e)&&(s._next=s.next,s.next=()=>{const i=s._next();return i.value&&(i.value=n(i.value)),i}),s}const hl=Array.prototype;function We(e,t,n,r,s,i){const o=jn(e),l=o!==e&&!Ie(e),c=o[t];if(c!==hl[t]){const h=c.apply(e,i);return l?me(h):h}let f=n;o!==e&&(l?f=function(h,g){return n.call(this,me(h),g,e)}:n.length>2&&(f=function(h,g){return n.call(this,h,g,e)}));const a=c.call(o,f,r);return l&&s?s(a):a}function gs(e,t,n,r){const s=jn(e);let i=n;return s!==e&&(Ie(e)?n.length>3&&(i=function(o,l,c){return n.call(this,o,l,c,e)}):i=function(o,l,c){return n.call(this,o,me(l),c,e)}),s[t](i,...r)}function rr(e,t,n){const r=z(e);ve(r,"iterate",Kt);const s=r[t](...n);return(s===-1||s===!1)&&Xr(n[0])?(n[0]=z(n[0]),r[t](...n)):s}function Ft(e,t,n=[]){it(),kr();const r=z(e)[t].apply(e,n);return Wr(),ot(),r}const pl=$r("__proto__,__v_isRef,__isVue"),Ai=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(rt));function gl(e){rt(e)||(e=String(e));const t=z(this);return ve(t,"has",e),t.hasOwnProperty(e)}class Ri{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){const s=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return i;if(n==="__v_raw")return r===(s?i?Rl:Pi:i?Ii:Mi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const o=K(t);if(!s){let c;if(o&&(c=dl[n]))return c;if(n==="hasOwnProperty")return gl}const l=Reflect.get(t,n,ae(t)?t:r);return(rt(n)?Ai.has(n):pl(n))||(s||ve(t,"get",n),i)?l:ae(l)?o&&Vr(n)?l:l.value:ne(l)?s?Bn(l):Un(l):l}}class Oi extends Ri{constructor(t=!1){super(!1,t)}set(t,n,r,s){let i=t[n];if(!this._isShallow){const c=vt(i);if(!Ie(r)&&!vt(r)&&(i=z(i),r=z(r)),!K(t)&&ae(i)&&!ae(r))return c?!1:(i.value=r,!0)}const o=K(t)&&Vr(n)?Number(n)e,Vn=e=>Reflect.getPrototypeOf(e);function ln(e,t,n=!1,r=!1){e=e.__v_raw;const s=z(e),i=z(t);n||(tt(t,i)&&ve(s,"get",t),ve(s,"get",i));const{has:o}=Vn(s),l=r?qr:n?zr:me;if(o.call(s,t))return l(e.get(t));if(o.call(s,i))return l(e.get(i));e!==s&&e.get(t)}function cn(e,t=!1){const n=this.__v_raw,r=z(n),s=z(e);return t||(tt(e,s)&&ve(r,"has",e),ve(r,"has",s)),e===s?n.has(e):n.has(e)||n.has(s)}function an(e,t=!1){return e=e.__v_raw,!t&&ve(z(e),"iterate",ht),Reflect.get(e,"size",e)}function ms(e,t=!1){!t&&!Ie(e)&&!vt(e)&&(e=z(e));const n=z(this);return Vn(n).has.call(n,e)||(n.add(e),Ge(n,"add",e,e)),this}function ys(e,t,n=!1){!n&&!Ie(t)&&!vt(t)&&(t=z(t));const r=z(this),{has:s,get:i}=Vn(r);let o=s.call(r,e);o||(e=z(e),o=s.call(r,e));const l=i.call(r,e);return r.set(e,t),o?tt(t,l)&&Ge(r,"set",e,t):Ge(r,"add",e,t),this}function vs(e){const t=z(this),{has:n,get:r}=Vn(t);let s=n.call(t,e);s||(e=z(e),s=n.call(t,e)),r&&r.call(t,e);const i=t.delete(e);return s&&Ge(t,"delete",e,void 0),i}function _s(){const e=z(this),t=e.size!==0,n=e.clear();return t&&Ge(e,"clear",void 0,void 0),n}function fn(e,t){return function(r,s){const i=this,o=i.__v_raw,l=z(o),c=t?qr:e?zr:me;return!e&&ve(l,"iterate",ht),o.forEach((f,a)=>r.call(s,c(f),c(a),i))}}function un(e,t,n){return function(...r){const s=this.__v_raw,i=z(s),o=Tt(i),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,f=s[e](...r),a=n?qr:t?zr:me;return!t&&ve(i,"iterate",c?xr:ht),{next(){const{value:h,done:g}=f.next();return g?{value:h,done:g}:{value:l?[a(h[0]),a(h[1])]:a(h),done:g}},[Symbol.iterator](){return this}}}}function Xe(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function bl(){const e={get(i){return ln(this,i)},get size(){return an(this)},has:cn,add:ms,set:ys,delete:vs,clear:_s,forEach:fn(!1,!1)},t={get(i){return ln(this,i,!1,!0)},get size(){return an(this)},has:cn,add(i){return ms.call(this,i,!0)},set(i,o){return ys.call(this,i,o,!0)},delete:vs,clear:_s,forEach:fn(!1,!0)},n={get(i){return ln(this,i,!0)},get size(){return an(this,!0)},has(i){return cn.call(this,i,!0)},add:Xe("add"),set:Xe("set"),delete:Xe("delete"),clear:Xe("clear"),forEach:fn(!0,!1)},r={get(i){return ln(this,i,!0,!0)},get size(){return an(this,!0)},has(i){return cn.call(this,i,!0)},add:Xe("add"),set:Xe("set"),delete:Xe("delete"),clear:Xe("clear"),forEach:fn(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(i=>{e[i]=un(i,!1,!1),n[i]=un(i,!0,!1),t[i]=un(i,!1,!0),r[i]=un(i,!0,!0)}),[e,n,t,r]}const[wl,Sl,El,xl]=bl();function Gr(e,t){const n=t?e?xl:El:e?Sl:wl;return(r,s,i)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(J(n,s)&&s in r?n:r,s,i)}const Cl={get:Gr(!1,!1)},Tl={get:Gr(!1,!0)},Al={get:Gr(!0,!1)};const Mi=new WeakMap,Ii=new WeakMap,Pi=new WeakMap,Rl=new WeakMap;function Ol(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Ml(e){return e.__v_skip||!Object.isExtensible(e)?0:Ol(Jo(e))}function Un(e){return vt(e)?e:Yr(e,!1,yl,Cl,Mi)}function Il(e){return Yr(e,!1,_l,Tl,Ii)}function Bn(e){return Yr(e,!0,vl,Al,Pi)}function Yr(e,t,n,r,s){if(!ne(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=s.get(e);if(i)return i;const o=Ml(e);if(o===0)return e;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function pt(e){return vt(e)?pt(e.__v_raw):!!(e&&e.__v_isReactive)}function vt(e){return!!(e&&e.__v_isReadonly)}function Ie(e){return!!(e&&e.__v_isShallow)}function Xr(e){return e?!!e.__v_raw:!1}function z(e){const t=e&&e.__v_raw;return t?z(t):e}function Sn(e){return!J(e,"__v_skip")&&Object.isExtensible(e)&&pi(e,"__v_skip",!0),e}const me=e=>ne(e)?Un(e):e,zr=e=>ne(e)?Bn(e):e;function ae(e){return e?e.__v_isRef===!0:!1}function oe(e){return Li(e,!1)}function Jr(e){return Li(e,!0)}function Li(e,t){return ae(e)?e:new Pl(e,t)}class Pl{constructor(t,n){this.dep=new Dn,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:z(t),this._value=n?t:me(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||Ie(t)||vt(t);t=r?t:z(t),tt(t,n)&&(this._rawValue=t,this._value=r?t:me(t),this.dep.trigger())}}function Ni(e){return ae(e)?e.value:e}const Ll={get:(e,t,n)=>t==="__v_raw"?e:Ni(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ae(s)&&!ae(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Fi(e){return pt(e)?e:new Proxy(e,Ll)}class Nl{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new Dn,{get:r,set:s}=t(n.track.bind(n),n.trigger.bind(n));this._get=r,this._set=s}get value(){return this._value=this._get()}set value(t){this._set(t)}}function Fl(e){return new Nl(e)}class Hl{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return ul(z(this._object),this._key)}}class $l{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Dl(e,t,n){return ae(e)?e:q(e)?new $l(e):ne(e)&&arguments.length>1?jl(e,t,n):oe(e)}function jl(e,t,n){const r=e[t];return ae(r)?r:new Hl(e,t,n)}class Vl{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Dn(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Wt-1,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){this.flags|=16,Z!==this&&this.dep.notify()}get value(){const t=this.dep.track();return xi(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Ul(e,t,n=!1){let r,s;return q(e)?r=e:(r=e.get,s=e.set),new Vl(r,s,n)}const dn={},Rn=new WeakMap;let ut;function Bl(e,t=!1,n=ut){if(n){let r=Rn.get(n);r||Rn.set(n,r=[]),r.push(e)}}function kl(e,t,n=ee){const{immediate:r,deep:s,once:i,scheduler:o,augmentJob:l,call:c}=n,f=m=>s?m:Ie(m)||s===!1||s===0?qe(m,1):qe(m);let a,h,g,_,b=!1,S=!1;if(ae(e)?(h=()=>e.value,b=Ie(e)):pt(e)?(h=()=>f(e),b=!0):K(e)?(S=!0,b=e.some(m=>pt(m)||Ie(m)),h=()=>e.map(m=>{if(ae(m))return m.value;if(pt(m))return f(m);if(q(m))return c?c(m,2):m()})):q(e)?t?h=c?()=>c(e,2):e:h=()=>{if(g){it();try{g()}finally{ot()}}const m=ut;ut=a;try{return c?c(e,3,[_]):e(_)}finally{ut=m}}:h=Ue,t&&s){const m=h,M=s===!0?1/0:s;h=()=>qe(m(),M)}const V=_i(),N=()=>{a.stop(),V&&jr(V.effects,a)};if(i)if(t){const m=t;t=(...M)=>{m(...M),N()}}else{const m=h;h=()=>{m(),N()}}let U=S?new Array(e.length).fill(dn):dn;const p=m=>{if(!(!(a.flags&1)||!a.dirty&&!m))if(t){const M=a.run();if(s||b||(S?M.some((F,$)=>tt(F,U[$])):tt(M,U))){g&&g();const F=ut;ut=a;try{const $=[M,U===dn?void 0:S&&U[0]===dn?[]:U,_];c?c(t,3,$):t(...$),U=M}finally{ut=F}}}else a.run()};return l&&l(p),a=new bi(h),a.scheduler=o?()=>o(p,!1):p,_=m=>Bl(m,!1,a),g=a.onStop=()=>{const m=Rn.get(a);if(m){if(c)c(m,4);else for(const M of m)M();Rn.delete(a)}},t?r?p(!0):U=a.run():o?o(p.bind(null,!0),!0):a.run(),N.pause=a.pause.bind(a),N.resume=a.resume.bind(a),N.stop=N,N}function qe(e,t=1/0,n){if(t<=0||!ne(e)||e.__v_skip||(n=n||new Set,n.has(e)))return e;if(n.add(e),t--,ae(e))qe(e.value,t,n);else if(K(e))for(let r=0;r{qe(r,t,n)});else if(hi(e)){for(const r in e)qe(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&qe(e[r],t,n)}return e}/** +* @vue/runtime-core v3.5.4 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Zt(e,t,n,r){try{return r?e(...r):e()}catch(s){en(s,t,n)}}function Fe(e,t,n,r){if(q(e)){const s=Zt(e,t,n,r);return s&&ui(s)&&s.catch(i=>{en(i,t,n)}),s}if(K(e)){const s=[];for(let i=0;i>>1,s=we[r],i=Gt(s);i=Gt(n)?we.push(e):we.splice(Kl(t),0,e),e.flags|=1,$i()}}function $i(){!qt&&!Cr&&(Cr=!0,Qr=Hi.then(Di))}function ql(e){K(e)?Rt.push(...e):Qe&&e.id===-1?Qe.splice(St+1,0,e):e.flags&1||(Rt.push(e),e.flags|=1),$i()}function bs(e,t,n=qt?je+1:0){for(;nGt(n)-Gt(r));if(Rt.length=0,Qe){Qe.push(...t);return}for(Qe=t,St=0;Ste.id==null?e.flags&2?-1:1/0:e.id;function Di(e){Cr=!1,qt=!0;try{for(je=0;je{r._d&&Ns(-1);const i=Mn(t);let o;try{o=e(...s)}finally{Mn(i),r._d&&Ns(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function Mf(e,t){if(de===null)return e;const n=zn(de),r=e.dirs||(e.dirs=[]);for(let s=0;se.__isTeleport,jt=e=>e&&(e.disabled||e.disabled===""),Yl=e=>e&&(e.defer||e.defer===""),ws=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Ss=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Tr=(e,t)=>{const n=e&&e.to;return se(n)?t?t(n):null:n},Xl={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,i,o,l,c,f){const{mc:a,pc:h,pbc:g,o:{insert:_,querySelector:b,createText:S,createComment:V}}=f,N=jt(t.props);let{shapeFlag:U,children:p,dynamicChildren:m}=t;if(e==null){const M=t.el=S(""),F=t.anchor=S("");_(M,n,r),_(F,n,r);const $=(R,v)=>{U&16&&a(p,R,v,s,i,o,l,c)},D=()=>{const R=t.target=Tr(t.props,b),v=Bi(R,t,S,_);R&&(o!=="svg"&&ws(R)?o="svg":o!=="mathml"&&Ss(R)&&(o="mathml"),N||($(R,v),En(t)))};N&&($(n,F),En(t)),Yl(t.props)?Ee(D,i):D()}else{t.el=e.el,t.targetStart=e.targetStart;const M=t.anchor=e.anchor,F=t.target=e.target,$=t.targetAnchor=e.targetAnchor,D=jt(e.props),R=D?n:F,v=D?M:$;if(o==="svg"||ws(F)?o="svg":(o==="mathml"||Ss(F))&&(o="mathml"),m?(g(e.dynamicChildren,m,R,s,i,o,l),rs(e,t,!0)):c||h(e,t,R,v,s,i,o,l,!1),N)D?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):hn(t,n,M,f,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const L=t.target=Tr(t.props,b);L&&hn(t,L,null,f,0)}else D&&hn(t,F,$,f,1);En(t)}},remove(e,t,n,{um:r,o:{remove:s}},i){const{shapeFlag:o,children:l,anchor:c,targetStart:f,targetAnchor:a,target:h,props:g}=e;if(h&&(s(f),s(a)),i&&s(c),o&16){const _=i||!jt(g);for(let b=0;b{e.isMounted=!0}),Xi(()=>{e.isUnmounting=!0}),e}const Re=[Function,Array],ki={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Re,onEnter:Re,onAfterEnter:Re,onEnterCancelled:Re,onBeforeLeave:Re,onLeave:Re,onAfterLeave:Re,onLeaveCancelled:Re,onBeforeAppear:Re,onAppear:Re,onAfterAppear:Re,onAppearCancelled:Re},Wi=e=>{const t=e.subTree;return t.component?Wi(t.component):t},Ql={name:"BaseTransition",props:ki,setup(e,{slots:t}){const n=Xn(),r=Jl();return()=>{const s=t.default&&Gi(t.default(),!0);if(!s||!s.length)return;const i=Ki(s),o=z(e),{mode:l}=o;if(r.isLeaving)return sr(i);const c=Es(i);if(!c)return sr(i);let f=Ar(c,o,r,n,g=>f=g);c.type!==ye&&Yt(c,f);const a=n.subTree,h=a&&Es(a);if(h&&h.type!==ye&&!dt(c,h)&&Wi(n).type!==ye){const g=Ar(h,o,r,n);if(Yt(h,g),l==="out-in"&&c.type!==ye)return r.isLeaving=!0,g.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete g.afterLeave},sr(i);l==="in-out"&&c.type!==ye&&(g.delayLeave=(_,b,S)=>{const V=qi(r,h);V[String(h.key)]=h,_[Ze]=()=>{b(),_[Ze]=void 0,delete f.delayedLeave},f.delayedLeave=S})}return i}}};function Ki(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==ye){t=n;break}}return t}const Zl=Ql;function qi(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Ar(e,t,n,r,s){const{appear:i,mode:o,persisted:l=!1,onBeforeEnter:c,onEnter:f,onAfterEnter:a,onEnterCancelled:h,onBeforeLeave:g,onLeave:_,onAfterLeave:b,onLeaveCancelled:S,onBeforeAppear:V,onAppear:N,onAfterAppear:U,onAppearCancelled:p}=t,m=String(e.key),M=qi(n,e),F=(R,v)=>{R&&Fe(R,r,9,v)},$=(R,v)=>{const L=v[1];F(R,v),K(R)?R.every(x=>x.length<=1)&&L():R.length<=1&&L()},D={mode:o,persisted:l,beforeEnter(R){let v=c;if(!n.isMounted)if(i)v=V||c;else return;R[Ze]&&R[Ze](!0);const L=M[m];L&&dt(e,L)&&L.el[Ze]&&L.el[Ze](),F(v,[R])},enter(R){let v=f,L=a,x=h;if(!n.isMounted)if(i)v=N||f,L=U||a,x=p||h;else return;let W=!1;const re=R[pn]=ce=>{W||(W=!0,ce?F(x,[R]):F(L,[R]),D.delayedLeave&&D.delayedLeave(),R[pn]=void 0)};v?$(v,[R,re]):re()},leave(R,v){const L=String(e.key);if(R[pn]&&R[pn](!0),n.isUnmounting)return v();F(g,[R]);let x=!1;const W=R[Ze]=re=>{x||(x=!0,v(),re?F(S,[R]):F(b,[R]),R[Ze]=void 0,M[L]===e&&delete M[L])};M[L]=e,_?$(_,[R,W]):W()},clone(R){const v=Ar(R,t,n,r,s);return s&&s(v),v}};return D}function sr(e){if(tn(e))return e=nt(e),e.children=null,e}function Es(e){if(!tn(e))return Ui(e.type)&&e.children?Ki(e.children):e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&q(n.default))return n.default()}}function Yt(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Yt(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Gi(e,t=!1,n){let r=[],s=0;for(let i=0;i1)for(let i=0;iIn(b,t&&(K(t)?t[S]:t),n,r,s));return}if(gt(r)&&!s)return;const i=r.shapeFlag&4?zn(r.component):r.el,o=s?null:i,{i:l,r:c}=e,f=t&&t.r,a=l.refs===ee?l.refs={}:l.refs,h=l.setupState,g=z(h),_=h===ee?()=>!1:b=>J(g,b);if(f!=null&&f!==c&&(se(f)?(a[f]=null,_(f)&&(h[f]=null)):ae(f)&&(f.value=null)),q(c))Zt(c,l,12,[o,a]);else{const b=se(c),S=ae(c);if(b||S){const V=()=>{if(e.f){const N=b?_(c)?h[c]:a[c]:c.value;s?K(N)&&jr(N,i):K(N)?N.includes(i)||N.push(i):b?(a[c]=[i],_(c)&&(h[c]=a[c])):(c.value=[i],e.k&&(a[e.k]=c.value))}else b?(a[c]=o,_(c)&&(h[c]=o)):S&&(c.value=o,e.k&&(a[e.k]=o))};o?(V.id=-1,Ee(V,n)):V()}}}let xs=!1;const wt=()=>{xs||(console.error("Hydration completed but contains mismatches."),xs=!0)},ec=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",tc=e=>e.namespaceURI.includes("MathML"),gn=e=>{if(e.nodeType===1){if(ec(e))return"svg";if(tc(e))return"mathml"}},xt=e=>e.nodeType===8;function nc(e){const{mt:t,p:n,o:{patchProp:r,createText:s,nextSibling:i,parentNode:o,remove:l,insert:c,createComment:f}}=e,a=(p,m)=>{if(!m.hasChildNodes()){n(null,p,m),On(),m._vnode=p;return}h(m.firstChild,p,null,null,null),On(),m._vnode=p},h=(p,m,M,F,$,D=!1)=>{D=D||!!m.dynamicChildren;const R=xt(p)&&p.data==="[",v=()=>S(p,m,M,F,$,R),{type:L,ref:x,shapeFlag:W,patchFlag:re}=m;let ce=p.nodeType;m.el=p,re===-2&&(D=!1,m.dynamicChildren=null);let j=null;switch(L){case mt:ce!==3?m.children===""?(c(m.el=s(""),o(p),p),j=p):j=v():(p.data!==m.children&&(wt(),p.data=m.children),j=i(p));break;case ye:U(p)?(j=i(p),N(m.el=p.content.firstChild,p,M)):ce!==8||R?j=v():j=i(p);break;case Ut:if(R&&(p=i(p),ce=p.nodeType),ce===1||ce===3){j=p;const Y=!m.children.length;for(let B=0;B{D=D||!!m.dynamicChildren;const{type:R,props:v,patchFlag:L,shapeFlag:x,dirs:W,transition:re}=m,ce=R==="input"||R==="option";if(ce||L!==-1){W&&Ve(m,null,M,"created");let j=!1;if(U(p)){j=ho(F,re)&&M&&M.vnode.props&&M.vnode.props.appear;const B=p.content.firstChild;j&&re.beforeEnter(B),N(B,p,M),m.el=p=B}if(x&16&&!(v&&(v.innerHTML||v.textContent))){let B=_(p.firstChild,m,p,M,F,$,D);for(;B;){mn(p,1)||wt();const he=B;B=B.nextSibling,l(he)}}else x&8&&p.textContent!==m.children&&(mn(p,0)||wt(),p.textContent=m.children);if(v){if(ce||!D||L&48){const B=p.tagName.includes("-");for(const he in v)(ce&&(he.endsWith("value")||he==="indeterminate")||Qt(he)&&!At(he)||he[0]==="."||B)&&r(p,he,null,v[he],void 0,M)}else if(v.onClick)r(p,"onClick",null,v.onClick,void 0,M);else if(L&4&&pt(v.style))for(const B in v.style)v.style[B]}let Y;(Y=v&&v.onVnodeBeforeMount)&&Oe(Y,M,m),W&&Ve(m,null,M,"beforeMount"),((Y=v&&v.onVnodeMounted)||W||j)&&vo(()=>{Y&&Oe(Y,M,m),j&&re.enter(p),W&&Ve(m,null,M,"mounted")},F)}return p.nextSibling},_=(p,m,M,F,$,D,R)=>{R=R||!!m.dynamicChildren;const v=m.children,L=v.length;for(let x=0;x{const{slotScopeIds:R}=m;R&&($=$?$.concat(R):R);const v=o(p),L=_(i(p),m,v,M,F,$,D);return L&&xt(L)&&L.data==="]"?i(m.anchor=L):(wt(),c(m.anchor=f("]"),v,L),L)},S=(p,m,M,F,$,D)=>{if(mn(p.parentElement,1)||wt(),m.el=null,D){const L=V(p);for(;;){const x=i(p);if(x&&x!==L)l(x);else break}}const R=i(p),v=o(p);return l(p),n(null,m,v,R,M,F,gn(v),$),R},V=(p,m="[",M="]")=>{let F=0;for(;p;)if(p=i(p),p&&xt(p)&&(p.data===m&&F++,p.data===M)){if(F===0)return i(p);F--}return p},N=(p,m,M)=>{const F=m.parentNode;F&&F.replaceChild(p,m);let $=M;for(;$;)$.vnode.el===m&&($.vnode.el=$.subTree.el=p),$=$.parent},U=p=>p.nodeType===1&&p.tagName.toLowerCase()==="template";return[a,h]}const Cs="data-allow-mismatch",rc={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function mn(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(Cs);)e=e.parentElement;const n=e&&e.getAttribute(Cs);if(n==null)return!1;if(n==="")return!0;{const r=n.split(",");return t===0&&r.includes("children")?!0:n.split(",").includes(rc[t])}}function sc(e,t){if(xt(e)&&e.data==="["){let n=1,r=e.nextSibling;for(;r;){if(r.nodeType===1)t(r);else if(xt(r))if(r.data==="]"){if(--n===0)break}else r.data==="["&&n++;r=r.nextSibling}}else t(e)}const gt=e=>!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function Pf(e){q(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:s=200,hydrate:i,timeout:o,suspensible:l=!0,onError:c}=e;let f=null,a,h=0;const g=()=>(h++,f=null,_()),_=()=>{let b;return f||(b=f=t().catch(S=>{if(S=S instanceof Error?S:new Error(String(S)),c)return new Promise((V,N)=>{c(S,()=>V(g()),()=>N(S),h+1)});throw S}).then(S=>b!==f&&f?f:(S&&(S.__esModule||S[Symbol.toStringTag]==="Module")&&(S=S.default),a=S,S)))};return Zr({name:"AsyncComponentWrapper",__asyncLoader:_,__asyncHydrate(b,S,V){const N=i?()=>{const U=i(V,p=>sc(b,p));U&&(S.bum||(S.bum=[])).push(U)}:V;a?N():_().then(()=>!S.isUnmounted&&N())},get __asyncResolved(){return a},setup(){const b=ue;if(es(b),a)return()=>ir(a,b);const S=p=>{f=null,en(p,b,13,!r)};if(l&&b.suspense||rn)return _().then(p=>()=>ir(p,b)).catch(p=>(S(p),()=>r?le(r,{error:p}):null));const V=oe(!1),N=oe(),U=oe(!!s);return s&&setTimeout(()=>{U.value=!1},s),o!=null&&setTimeout(()=>{if(!V.value&&!N.value){const p=new Error(`Async component timed out after ${o}ms.`);S(p),N.value=p}},o),_().then(()=>{V.value=!0,b.parent&&tn(b.parent.vnode)&&Wn(b.parent.update)}).catch(p=>{S(p),N.value=p}),()=>{if(V.value&&a)return ir(a,b);if(N.value&&r)return le(r,{error:N.value});if(n&&!U.value)return le(n)}}})}function ir(e,t){const{ref:n,props:r,children:s,ce:i}=t.vnode,o=le(e,r,s);return o.ref=n,o.ce=i,delete t.vnode.ce,o}const tn=e=>e.type.__isKeepAlive;function ic(e,t){Yi(e,"a",t)}function oc(e,t){Yi(e,"da",t)}function Yi(e,t,n=ue){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Kn(t,r,n),n){let s=n.parent;for(;s&&s.parent;)tn(s.parent.vnode)&&lc(r,t,n,s),s=s.parent}}function lc(e,t,n,r){const s=Kn(t,e,r,!0);qn(()=>{jr(r[t],s)},n)}function Kn(e,t,n=ue,r=!1){if(n){const s=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{it();const l=nn(n),c=Fe(t,n,e,o);return l(),ot(),c});return r?s.unshift(i):s.push(i),i}}const Ye=e=>(t,n=ue)=>{(!rn||e==="sp")&&Kn(e,(...r)=>t(...r),n)},cc=Ye("bm"),Pt=Ye("m"),ac=Ye("bu"),fc=Ye("u"),Xi=Ye("bum"),qn=Ye("um"),uc=Ye("sp"),dc=Ye("rtg"),hc=Ye("rtc");function pc(e,t=ue){Kn("ec",e,t)}const zi="components";function Lf(e,t){return Qi(zi,e,!0,t)||e}const Ji=Symbol.for("v-ndc");function Nf(e){return se(e)?Qi(zi,e,!1)||e:e||Ji}function Qi(e,t,n=!0,r=!1){const s=de||ue;if(s){const i=s.type;{const l=Zc(i,!1);if(l&&(l===t||l===Ne(t)||l===$n(Ne(t))))return i}const o=Ts(s[e]||i[e],t)||Ts(s.appContext[e],t);return!o&&r?i:o}}function Ts(e,t){return e&&(e[t]||e[Ne(t)]||e[$n(Ne(t))])}function Ff(e,t,n,r){let s;const i=n,o=K(e);if(o||se(e)){const l=o&&pt(e);let c=!1;l&&(c=!Ie(e),e=jn(e)),s=new Array(e.length);for(let f=0,a=e.length;ft(l,c,void 0,i));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,f=l.length;cLn(t)?!(t.type===ye||t.type===Se&&!Zi(t.children)):!0)?e:null}function $f(e,t){const n={};for(const r in e)n[/[A-Z]/.test(r)?`on:${r}`:bn(r)]=e[r];return n}const Rr=e=>e?Eo(e)?zn(e):Rr(e.parent):null,Vt=fe(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Rr(e.parent),$root:e=>Rr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ts(e),$forceUpdate:e=>e.f||(e.f=()=>{Wn(e.update)}),$nextTick:e=>e.n||(e.n=kn.bind(e.proxy)),$watch:e=>Hc.bind(e)}),or=(e,t)=>e!==ee&&!e.__isScriptSetup&&J(e,t),gc={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:i,accessCache:o,type:l,appContext:c}=e;let f;if(t[0]!=="$"){const _=o[t];if(_!==void 0)switch(_){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return i[t]}else{if(or(r,t))return o[t]=1,r[t];if(s!==ee&&J(s,t))return o[t]=2,s[t];if((f=e.propsOptions[0])&&J(f,t))return o[t]=3,i[t];if(n!==ee&&J(n,t))return o[t]=4,n[t];Or&&(o[t]=0)}}const a=Vt[t];let h,g;if(a)return t==="$attrs"&&ve(e.attrs,"get",""),a(e);if((h=l.__cssModules)&&(h=h[t]))return h;if(n!==ee&&J(n,t))return o[t]=4,n[t];if(g=c.config.globalProperties,J(g,t))return g[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:i}=e;return or(s,t)?(s[t]=n,!0):r!==ee&&J(r,t)?(r[t]=n,!0):J(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,propsOptions:i}},o){let l;return!!n[o]||e!==ee&&J(e,o)||or(t,o)||(l=i[0])&&J(l,o)||J(r,o)||J(Vt,o)||J(s.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:J(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Df(){return mc().slots}function mc(){const e=Xn();return e.setupContext||(e.setupContext=Co(e))}function As(e){return K(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Or=!0;function yc(e){const t=ts(e),n=e.proxy,r=e.ctx;Or=!1,t.beforeCreate&&Rs(t.beforeCreate,e,"bc");const{data:s,computed:i,methods:o,watch:l,provide:c,inject:f,created:a,beforeMount:h,mounted:g,beforeUpdate:_,updated:b,activated:S,deactivated:V,beforeDestroy:N,beforeUnmount:U,destroyed:p,unmounted:m,render:M,renderTracked:F,renderTriggered:$,errorCaptured:D,serverPrefetch:R,expose:v,inheritAttrs:L,components:x,directives:W,filters:re}=t;if(f&&vc(f,r,null),o)for(const Y in o){const B=o[Y];q(B)&&(r[Y]=B.bind(n))}if(s){const Y=s.call(n,n);ne(Y)&&(e.data=Un(Y))}if(Or=!0,i)for(const Y in i){const B=i[Y],he=q(B)?B.bind(n,n):q(B.get)?B.get.bind(n,n):Ue,sn=!q(B)&&q(B.set)?B.set.bind(n):Ue,lt=ie({get:he,set:sn});Object.defineProperty(r,Y,{enumerable:!0,configurable:!0,get:()=>lt.value,set:$e=>lt.value=$e})}if(l)for(const Y in l)eo(l[Y],r,n,Y);if(c){const Y=q(c)?c.call(n):c;Reflect.ownKeys(Y).forEach(B=>{xc(B,Y[B])})}a&&Rs(a,e,"c");function j(Y,B){K(B)?B.forEach(he=>Y(he.bind(n))):B&&Y(B.bind(n))}if(j(cc,h),j(Pt,g),j(ac,_),j(fc,b),j(ic,S),j(oc,V),j(pc,D),j(hc,F),j(dc,$),j(Xi,U),j(qn,m),j(uc,R),K(v))if(v.length){const Y=e.exposed||(e.exposed={});v.forEach(B=>{Object.defineProperty(Y,B,{get:()=>n[B],set:he=>n[B]=he})})}else e.exposed||(e.exposed={});M&&e.render===Ue&&(e.render=M),L!=null&&(e.inheritAttrs=L),x&&(e.components=x),W&&(e.directives=W),R&&es(e)}function vc(e,t,n=Ue){K(e)&&(e=Mr(e));for(const r in e){const s=e[r];let i;ne(s)?"default"in s?i=Mt(s.from||r,s.default,!0):i=Mt(s.from||r):i=Mt(s),ae(i)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[r]=i}}function Rs(e,t,n){Fe(K(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function eo(e,t,n,r){let s=r.includes(".")?go(n,r):()=>n[r];if(se(e)){const i=t[e];q(i)&&Be(s,i)}else if(q(e))Be(s,e.bind(n));else if(ne(e))if(K(e))e.forEach(i=>eo(i,t,n,r));else{const i=q(e.handler)?e.handler.bind(n):t[e.handler];q(i)&&Be(s,i,e)}}function ts(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(f=>Pn(c,f,o,!0)),Pn(c,t,o)),ne(t)&&i.set(t,c),c}function Pn(e,t,n,r=!1){const{mixins:s,extends:i}=t;i&&Pn(e,i,n,!0),s&&s.forEach(o=>Pn(e,o,n,!0));for(const o in t)if(!(r&&o==="expose")){const l=_c[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const _c={data:Os,props:Ms,emits:Ms,methods:$t,computed:$t,beforeCreate:_e,created:_e,beforeMount:_e,mounted:_e,beforeUpdate:_e,updated:_e,beforeDestroy:_e,beforeUnmount:_e,destroyed:_e,unmounted:_e,activated:_e,deactivated:_e,errorCaptured:_e,serverPrefetch:_e,components:$t,directives:$t,watch:wc,provide:Os,inject:bc};function Os(e,t){return t?e?function(){return fe(q(e)?e.call(this,this):e,q(t)?t.call(this,this):t)}:t:e}function bc(e,t){return $t(Mr(e),Mr(t))}function Mr(e){if(K(e)){const t={};for(let n=0;n1)return n&&q(t)?t.call(r&&r.proxy):t}}const no={},ro=()=>Object.create(no),so=e=>Object.getPrototypeOf(e)===no;function Cc(e,t,n,r=!1){const s={},i=ro();e.propsDefaults=Object.create(null),io(e,t,s,i);for(const o in e.propsOptions[0])o in s||(s[o]=void 0);n?e.props=r?s:Il(s):e.type.props?e.props=s:e.props=i,e.attrs=i}function Tc(e,t,n,r){const{props:s,attrs:i,vnode:{patchFlag:o}}=e,l=z(s),[c]=e.propsOptions;let f=!1;if((r||o>0)&&!(o&16)){if(o&8){const a=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[g,_]=oo(h,t,!0);fe(o,g),_&&l.push(..._)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!i&&!c)return ne(e)&&r.set(e,Ct),Ct;if(K(i))for(let a=0;ae[0]==="_"||e==="$stable",ns=e=>K(e)?e.map(Me):[Me(e)],Rc=(e,t,n)=>{if(t._n)return t;const r=Gl((...s)=>ns(t(...s)),n);return r._c=!1,r},co=(e,t,n)=>{const r=e._ctx;for(const s in e){if(lo(s))continue;const i=e[s];if(q(i))t[s]=Rc(s,i,r);else if(i!=null){const o=ns(i);t[s]=()=>o}}},ao=(e,t)=>{const n=ns(t);e.slots.default=()=>n},fo=(e,t,n)=>{for(const r in t)(n||r!=="_")&&(e[r]=t[r])},Oc=(e,t,n)=>{const r=e.slots=ro();if(e.vnode.shapeFlag&32){const s=t._;s?(fo(r,t,n),n&&pi(r,"_",s,!0)):co(t,r)}else t&&ao(e,t)},Mc=(e,t,n)=>{const{vnode:r,slots:s}=e;let i=!0,o=ee;if(r.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:fo(s,t,n):(i=!t.$stable,co(t,s)),o=t}else t&&(ao(e,t),o={default:1});if(i)for(const l in s)!lo(l)&&o[l]==null&&delete s[l]},Ee=vo;function Ic(e){return uo(e)}function Pc(e){return uo(e,nc)}function uo(e,t){const n=gi();n.__VUE__=!0;const{insert:r,remove:s,patchProp:i,createElement:o,createText:l,createComment:c,setText:f,setElementText:a,parentNode:h,nextSibling:g,setScopeId:_=Ue,insertStaticContent:b}=e,S=(u,d,y,C=null,w=null,E=null,I=void 0,O=null,A=!!d.dynamicChildren)=>{if(u===d)return;u&&!dt(u,d)&&(C=on(u),$e(u,w,E,!0),u=null),d.patchFlag===-2&&(A=!1,d.dynamicChildren=null);const{type:T,ref:k,shapeFlag:P}=d;switch(T){case mt:V(u,d,y,C);break;case ye:N(u,d,y,C);break;case Ut:u==null&&U(d,y,C,I);break;case Se:x(u,d,y,C,w,E,I,O,A);break;default:P&1?M(u,d,y,C,w,E,I,O,A):P&6?W(u,d,y,C,w,E,I,O,A):(P&64||P&128)&&T.process(u,d,y,C,w,E,I,O,A,_t)}k!=null&&w&&In(k,u&&u.ref,E,d||u,!d)},V=(u,d,y,C)=>{if(u==null)r(d.el=l(d.children),y,C);else{const w=d.el=u.el;d.children!==u.children&&f(w,d.children)}},N=(u,d,y,C)=>{u==null?r(d.el=c(d.children||""),y,C):d.el=u.el},U=(u,d,y,C)=>{[u.el,u.anchor]=b(u.children,d,y,C,u.el,u.anchor)},p=({el:u,anchor:d},y,C)=>{let w;for(;u&&u!==d;)w=g(u),r(u,y,C),u=w;r(d,y,C)},m=({el:u,anchor:d})=>{let y;for(;u&&u!==d;)y=g(u),s(u),u=y;s(d)},M=(u,d,y,C,w,E,I,O,A)=>{d.type==="svg"?I="svg":d.type==="math"&&(I="mathml"),u==null?F(d,y,C,w,E,I,O,A):R(u,d,w,E,I,O,A)},F=(u,d,y,C,w,E,I,O)=>{let A,T;const{props:k,shapeFlag:P,transition:H,dirs:G}=u;if(A=u.el=o(u.type,E,k&&k.is,k),P&8?a(A,u.children):P&16&&D(u.children,A,null,C,w,lr(u,E),I,O),G&&Ve(u,null,C,"created"),$(A,u,u.scopeId,I,C),k){for(const te in k)te!=="value"&&!At(te)&&i(A,te,null,k[te],E,C);"value"in k&&i(A,"value",null,k.value,E),(T=k.onVnodeBeforeMount)&&Oe(T,C,u)}G&&Ve(u,null,C,"beforeMount");const X=ho(w,H);X&&H.beforeEnter(A),r(A,d,y),((T=k&&k.onVnodeMounted)||X||G)&&Ee(()=>{T&&Oe(T,C,u),X&&H.enter(A),G&&Ve(u,null,C,"mounted")},w)},$=(u,d,y,C,w)=>{if(y&&_(u,y),C)for(let E=0;E{for(let T=A;T{const O=d.el=u.el;let{patchFlag:A,dynamicChildren:T,dirs:k}=d;A|=u.patchFlag&16;const P=u.props||ee,H=d.props||ee;let G;if(y&&ct(y,!1),(G=H.onVnodeBeforeUpdate)&&Oe(G,y,d,u),k&&Ve(d,u,y,"beforeUpdate"),y&&ct(y,!0),(P.innerHTML&&H.innerHTML==null||P.textContent&&H.textContent==null)&&a(O,""),T?v(u.dynamicChildren,T,O,y,C,lr(d,w),E):I||B(u,d,O,null,y,C,lr(d,w),E,!1),A>0){if(A&16)L(O,P,H,y,w);else if(A&2&&P.class!==H.class&&i(O,"class",null,H.class,w),A&4&&i(O,"style",P.style,H.style,w),A&8){const X=d.dynamicProps;for(let te=0;te{G&&Oe(G,y,d,u),k&&Ve(d,u,y,"updated")},C)},v=(u,d,y,C,w,E,I)=>{for(let O=0;O{if(d!==y){if(d!==ee)for(const E in d)!At(E)&&!(E in y)&&i(u,E,d[E],null,w,C);for(const E in y){if(At(E))continue;const I=y[E],O=d[E];I!==O&&E!=="value"&&i(u,E,O,I,w,C)}"value"in y&&i(u,"value",d.value,y.value,w)}},x=(u,d,y,C,w,E,I,O,A)=>{const T=d.el=u?u.el:l(""),k=d.anchor=u?u.anchor:l("");let{patchFlag:P,dynamicChildren:H,slotScopeIds:G}=d;G&&(O=O?O.concat(G):G),u==null?(r(T,y,C),r(k,y,C),D(d.children||[],y,k,w,E,I,O,A)):P>0&&P&64&&H&&u.dynamicChildren?(v(u.dynamicChildren,H,y,w,E,I,O),(d.key!=null||w&&d===w.subTree)&&rs(u,d,!0)):B(u,d,y,k,w,E,I,O,A)},W=(u,d,y,C,w,E,I,O,A)=>{d.slotScopeIds=O,u==null?d.shapeFlag&512?w.ctx.activate(d,y,C,I,A):re(d,y,C,w,E,I,A):ce(u,d,A)},re=(u,d,y,C,w,E,I)=>{const O=u.component=Xc(u,C,w);if(tn(u)&&(O.ctx.renderer=_t),zc(O,!1,I),O.asyncDep){if(w&&w.registerDep(O,j,I),!u.el){const A=O.subTree=le(ye);N(null,A,d,y)}}else j(O,u,d,y,w,E,I)},ce=(u,d,y)=>{const C=d.component=u.component;if(Uc(u,d,y))if(C.asyncDep&&!C.asyncResolved){Y(C,d,y);return}else C.next=d,C.update();else d.el=u.el,C.vnode=d},j=(u,d,y,C,w,E,I)=>{const O=()=>{if(u.isMounted){let{next:P,bu:H,u:G,parent:X,vnode:te}=u;{const Ce=po(u);if(Ce){P&&(P.el=te.el,Y(u,P,I)),Ce.asyncDep.then(()=>{u.isUnmounted||O()});return}}let Q=P,xe;ct(u,!1),P?(P.el=te.el,Y(u,P,I)):P=te,H&&wn(H),(xe=P.props&&P.props.onVnodeBeforeUpdate)&&Oe(xe,X,P,te),ct(u,!0);const pe=cr(u),Pe=u.subTree;u.subTree=pe,S(Pe,pe,h(Pe.el),on(Pe),u,w,E),P.el=pe.el,Q===null&&Bc(u,pe.el),G&&Ee(G,w),(xe=P.props&&P.props.onVnodeUpdated)&&Ee(()=>Oe(xe,X,P,te),w)}else{let P;const{el:H,props:G}=d,{bm:X,m:te,parent:Q,root:xe,type:pe}=u,Pe=gt(d);if(ct(u,!1),X&&wn(X),!Pe&&(P=G&&G.onVnodeBeforeMount)&&Oe(P,Q,d),ct(u,!0),H&&Zn){const Ce=()=>{u.subTree=cr(u),Zn(H,u.subTree,u,w,null)};Pe&&pe.__asyncHydrate?pe.__asyncHydrate(H,u,Ce):Ce()}else{xe.ce&&xe.ce._injectChildStyle(pe);const Ce=u.subTree=cr(u);S(null,Ce,y,C,u,w,E),d.el=Ce.el}if(te&&Ee(te,w),!Pe&&(P=G&&G.onVnodeMounted)){const Ce=d;Ee(()=>Oe(P,Q,Ce),w)}(d.shapeFlag&256||Q&>(Q.vnode)&&Q.vnode.shapeFlag&256)&&u.a&&Ee(u.a,w),u.isMounted=!0,d=y=C=null}};u.scope.on();const A=u.effect=new bi(O);u.scope.off();const T=u.update=A.run.bind(A),k=u.job=A.runIfDirty.bind(A);k.i=u,k.id=u.uid,A.scheduler=()=>Wn(k),ct(u,!0),T()},Y=(u,d,y)=>{d.component=u;const C=u.vnode.props;u.vnode=d,u.next=null,Tc(u,d.props,C,y),Mc(u,d.children,y),it(),bs(u),ot()},B=(u,d,y,C,w,E,I,O,A=!1)=>{const T=u&&u.children,k=u?u.shapeFlag:0,P=d.children,{patchFlag:H,shapeFlag:G}=d;if(H>0){if(H&128){sn(T,P,y,C,w,E,I,O,A);return}else if(H&256){he(T,P,y,C,w,E,I,O,A);return}}G&8?(k&16&&Lt(T,w,E),P!==T&&a(y,P)):k&16?G&16?sn(T,P,y,C,w,E,I,O,A):Lt(T,w,E,!0):(k&8&&a(y,""),G&16&&D(P,y,C,w,E,I,O,A))},he=(u,d,y,C,w,E,I,O,A)=>{u=u||Ct,d=d||Ct;const T=u.length,k=d.length,P=Math.min(T,k);let H;for(H=0;Hk?Lt(u,w,E,!0,!1,P):D(d,y,C,w,E,I,O,A,P)},sn=(u,d,y,C,w,E,I,O,A)=>{let T=0;const k=d.length;let P=u.length-1,H=k-1;for(;T<=P&&T<=H;){const G=u[T],X=d[T]=A?et(d[T]):Me(d[T]);if(dt(G,X))S(G,X,y,null,w,E,I,O,A);else break;T++}for(;T<=P&&T<=H;){const G=u[P],X=d[H]=A?et(d[H]):Me(d[H]);if(dt(G,X))S(G,X,y,null,w,E,I,O,A);else break;P--,H--}if(T>P){if(T<=H){const G=H+1,X=GH)for(;T<=P;)$e(u[T],w,E,!0),T++;else{const G=T,X=T,te=new Map;for(T=X;T<=H;T++){const Te=d[T]=A?et(d[T]):Me(d[T]);Te.key!=null&&te.set(Te.key,T)}let Q,xe=0;const pe=H-X+1;let Pe=!1,Ce=0;const Nt=new Array(pe);for(T=0;T=pe){$e(Te,w,E,!0);continue}let De;if(Te.key!=null)De=te.get(Te.key);else for(Q=X;Q<=H;Q++)if(Nt[Q-X]===0&&dt(Te,d[Q])){De=Q;break}De===void 0?$e(Te,w,E,!0):(Nt[De-X]=T+1,De>=Ce?Ce=De:Pe=!0,S(Te,d[De],y,null,w,E,I,O,A),xe++)}const us=Pe?Lc(Nt):Ct;for(Q=us.length-1,T=pe-1;T>=0;T--){const Te=X+T,De=d[Te],ds=Te+1{const{el:E,type:I,transition:O,children:A,shapeFlag:T}=u;if(T&6){lt(u.component.subTree,d,y,C);return}if(T&128){u.suspense.move(d,y,C);return}if(T&64){I.move(u,d,y,_t);return}if(I===Se){r(E,d,y);for(let P=0;PO.enter(E),w);else{const{leave:P,delayLeave:H,afterLeave:G}=O,X=()=>r(E,d,y),te=()=>{P(E,()=>{X(),G&&G()})};H?H(E,X,te):te()}else r(E,d,y)},$e=(u,d,y,C=!1,w=!1)=>{const{type:E,props:I,ref:O,children:A,dynamicChildren:T,shapeFlag:k,patchFlag:P,dirs:H,cacheIndex:G}=u;if(P===-2&&(w=!1),O!=null&&In(O,null,y,u,!0),G!=null&&(d.renderCache[G]=void 0),k&256){d.ctx.deactivate(u);return}const X=k&1&&H,te=!gt(u);let Q;if(te&&(Q=I&&I.onVnodeBeforeUnmount)&&Oe(Q,d,u),k&6)Yo(u.component,y,C);else{if(k&128){u.suspense.unmount(y,C);return}X&&Ve(u,null,d,"beforeUnmount"),k&64?u.type.remove(u,d,y,_t,C):T&&!T.hasOnce&&(E!==Se||P>0&&P&64)?Lt(T,d,y,!1,!0):(E===Se&&P&384||!w&&k&16)&&Lt(A,d,y),C&&as(u)}(te&&(Q=I&&I.onVnodeUnmounted)||X)&&Ee(()=>{Q&&Oe(Q,d,u),X&&Ve(u,null,d,"unmounted")},y)},as=u=>{const{type:d,el:y,anchor:C,transition:w}=u;if(d===Se){Go(y,C);return}if(d===Ut){m(u);return}const E=()=>{s(y),w&&!w.persisted&&w.afterLeave&&w.afterLeave()};if(u.shapeFlag&1&&w&&!w.persisted){const{leave:I,delayLeave:O}=w,A=()=>I(y,E);O?O(u.el,E,A):A()}else E()},Go=(u,d)=>{let y;for(;u!==d;)y=g(u),s(u),u=y;s(d)},Yo=(u,d,y)=>{const{bum:C,scope:w,job:E,subTree:I,um:O,m:A,a:T}=u;Ps(A),Ps(T),C&&wn(C),w.stop(),E&&(E.flags|=8,$e(I,u,d,y)),O&&Ee(O,d),Ee(()=>{u.isUnmounted=!0},d),d&&d.pendingBranch&&!d.isUnmounted&&u.asyncDep&&!u.asyncResolved&&u.suspenseId===d.pendingId&&(d.deps--,d.deps===0&&d.resolve())},Lt=(u,d,y,C=!1,w=!1,E=0)=>{for(let I=E;I{if(u.shapeFlag&6)return on(u.component.subTree);if(u.shapeFlag&128)return u.suspense.next();const d=g(u.anchor||u.el),y=d&&d[Vi];return y?g(y):d};let Jn=!1;const fs=(u,d,y)=>{u==null?d._vnode&&$e(d._vnode,null,null,!0):S(d._vnode||null,u,d,null,null,null,y),d._vnode=u,Jn||(Jn=!0,bs(),On(),Jn=!1)},_t={p:S,um:$e,m:lt,r:as,mt:re,mc:D,pc:B,pbc:v,n:on,o:e};let Qn,Zn;return t&&([Qn,Zn]=t(_t)),{render:fs,hydrate:Qn,createApp:Ec(fs,Qn)}}function lr({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function ct({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function ho(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function rs(e,t,n=!1){const r=e.children,s=t.children;if(K(r)&&K(s))for(let i=0;i>1,e[n[l]]0&&(t[r]=n[i-1]),n[i]=r)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}function po(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:po(t)}function Ps(e){if(e)for(let t=0;tMt(Nc);function ss(e,t){return Gn(e,null,t)}function jf(e,t){return Gn(e,null,{flush:"post"})}function Be(e,t,n){return Gn(e,t,n)}function Gn(e,t,n=ee){const{immediate:r,deep:s,flush:i,once:o}=n,l=fe({},n);let c;if(rn)if(i==="sync"){const g=Fc();c=g.__watcherHandles||(g.__watcherHandles=[])}else if(!t||r)l.once=!0;else return{stop:Ue,resume:Ue,pause:Ue};const f=ue;l.call=(g,_,b)=>Fe(g,f,_,b);let a=!1;i==="post"?l.scheduler=g=>{Ee(g,f&&f.suspense)}:i!=="sync"&&(a=!0,l.scheduler=(g,_)=>{_?g():Wn(g)}),l.augmentJob=g=>{t&&(g.flags|=4),a&&(g.flags|=2,f&&(g.id=f.uid,g.i=f))};const h=kl(e,t,l);return c&&c.push(h),h}function Hc(e,t,n){const r=this.proxy,s=se(e)?e.includes(".")?go(r,e):()=>r[e]:e.bind(r,r);let i;q(t)?i=t:(i=t.handler,n=t);const o=nn(this),l=Gn(s,i.bind(r),n);return o(),l}function go(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;st==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Ne(t)}Modifiers`]||e[`${st(t)}Modifiers`];function Dc(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ee;let s=n;const i=t.startsWith("update:"),o=i&&$c(r,t.slice(7));o&&(o.trim&&(s=n.map(a=>se(a)?a.trim():a)),o.number&&(s=n.map(Sr)));let l,c=r[l=bn(t)]||r[l=bn(Ne(t))];!c&&i&&(c=r[l=bn(st(t))]),c&&Fe(c,e,6,s);const f=r[l+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Fe(f,e,6,s)}}function mo(e,t,n=!1){const r=t.emitsCache,s=r.get(e);if(s!==void 0)return s;const i=e.emits;let o={},l=!1;if(!q(e)){const c=f=>{const a=mo(f,t,!0);a&&(l=!0,fe(o,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(ne(e)&&r.set(e,null),null):(K(i)?i.forEach(c=>o[c]=null):fe(o,i),ne(e)&&r.set(e,o),o)}function Yn(e,t){return!e||!Qt(t)?!1:(t=t.slice(2).replace(/Once$/,""),J(e,t[0].toLowerCase()+t.slice(1))||J(e,st(t))||J(e,t))}function cr(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[i],slots:o,attrs:l,emit:c,render:f,renderCache:a,props:h,data:g,setupState:_,ctx:b,inheritAttrs:S}=e,V=Mn(e);let N,U;try{if(n.shapeFlag&4){const m=s||r,M=m;N=Me(f.call(M,m,a,h,_,g,b)),U=l}else{const m=t;N=Me(m.length>1?m(h,{attrs:l,slots:o,emit:c}):m(h,null)),U=t.props?l:jc(l)}}catch(m){Bt.length=0,en(m,e,1),N=le(ye)}let p=N;if(U&&S!==!1){const m=Object.keys(U),{shapeFlag:M}=p;m.length&&M&7&&(i&&m.some(Dr)&&(U=Vc(U,i)),p=nt(p,U,!1,!0))}return n.dirs&&(p=nt(p,null,!1,!0),p.dirs=p.dirs?p.dirs.concat(n.dirs):n.dirs),n.transition&&Yt(p,n.transition),N=p,Mn(V),N}const jc=e=>{let t;for(const n in e)(n==="class"||n==="style"||Qt(n))&&((t||(t={}))[n]=e[n]);return t},Vc=(e,t)=>{const n={};for(const r in e)(!Dr(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Uc(e,t,n){const{props:r,children:s,component:i}=e,{props:o,children:l,patchFlag:c}=t,f=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?Ls(r,o,f):!!o;if(c&8){const a=t.dynamicProps;for(let h=0;he.__isSuspense;function vo(e,t){t&&t.pendingBranch?K(e)?t.effects.push(...e):t.effects.push(e):ql(e)}const Se=Symbol.for("v-fgt"),mt=Symbol.for("v-txt"),ye=Symbol.for("v-cmt"),Ut=Symbol.for("v-stc"),Bt=[];let Ae=null;function Pr(e=!1){Bt.push(Ae=e?null:[])}function kc(){Bt.pop(),Ae=Bt[Bt.length-1]||null}let Xt=1;function Ns(e){Xt+=e,e<0&&Ae&&(Ae.hasOnce=!0)}function _o(e){return e.dynamicChildren=Xt>0?Ae||Ct:null,kc(),Xt>0&&Ae&&Ae.push(e),e}function Vf(e,t,n,r,s,i){return _o(wo(e,t,n,r,s,i,!0))}function Lr(e,t,n,r,s){return _o(le(e,t,n,r,s,!0))}function Ln(e){return e?e.__v_isVNode===!0:!1}function dt(e,t){return e.type===t.type&&e.key===t.key}const bo=({key:e})=>e??null,xn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?se(e)||ae(e)||q(e)?{i:de,r:e,k:t,f:!!n}:e:null);function wo(e,t=null,n=null,r=0,s=null,i=e===Se?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&bo(t),ref:t&&xn(t),scopeId:ji,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:de};return l?(is(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=se(n)?8:16),Xt>0&&!o&&Ae&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Ae.push(c),c}const le=Wc;function Wc(e,t=null,n=null,r=0,s=null,i=!1){if((!e||e===Ji)&&(e=ye),Ln(e)){const l=nt(e,t,!0);return n&&is(l,n),Xt>0&&!i&&Ae&&(l.shapeFlag&6?Ae[Ae.indexOf(e)]=l:Ae.push(l)),l.patchFlag=-2,l}if(ea(e)&&(e=e.__vccOpts),t){t=Kc(t);let{class:l,style:c}=t;l&&!se(l)&&(t.class=Br(l)),ne(c)&&(Xr(c)&&!K(c)&&(c=fe({},c)),t.style=Ur(c))}const o=se(e)?1:yo(e)?128:Ui(e)?64:ne(e)?4:q(e)?2:0;return wo(e,t,n,r,s,o,i,!0)}function Kc(e){return e?Xr(e)||so(e)?fe({},e):e:null}function nt(e,t,n=!1,r=!1){const{props:s,ref:i,patchFlag:o,children:l,transition:c}=e,f=t?qc(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:f,key:f&&bo(f),ref:t&&t.ref?n&&i?K(i)?i.concat(xn(t)):[i,xn(t)]:xn(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Se?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&nt(e.ssContent),ssFallback:e.ssFallback&&nt(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&Yt(a,c.clone(a)),a}function So(e=" ",t=0){return le(mt,null,e,t)}function Uf(e,t){const n=le(Ut,null,e);return n.staticCount=t,n}function Bf(e="",t=!1){return t?(Pr(),Lr(ye,null,e)):le(ye,null,e)}function Me(e){return e==null||typeof e=="boolean"?le(ye):K(e)?le(Se,null,e.slice()):typeof e=="object"?et(e):le(mt,null,String(e))}function et(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:nt(e)}function is(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(K(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),is(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!so(t)?t._ctx=de:s===3&&de&&(de.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else q(t)?(t={default:t,_ctx:de},n=32):(t=String(t),r&64?(n=16,t=[So(t)]):n=8);e.children=t,e.shapeFlag|=n}function qc(...e){const t={};for(let n=0;nue||de;let Nn,Nr;{const e=gi(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),i=>{s.length>1?s.forEach(o=>o(i)):s[0](i)}};Nn=t("__VUE_INSTANCE_SETTERS__",n=>ue=n),Nr=t("__VUE_SSR_SETTERS__",n=>rn=n)}const nn=e=>{const t=ue;return Nn(e),e.scope.on(),()=>{e.scope.off(),Nn(t)}},Fs=()=>{ue&&ue.scope.off(),Nn(null)};function Eo(e){return e.vnode.shapeFlag&4}let rn=!1;function zc(e,t=!1,n=!1){t&&Nr(t);const{props:r,children:s}=e.vnode,i=Eo(e);Cc(e,r,i,t),Oc(e,s,n);const o=i?Jc(e,t):void 0;return t&&Nr(!1),o}function Jc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,gc);const{setup:r}=n;if(r){const s=e.setupContext=r.length>1?Co(e):null,i=nn(e);it();const o=Zt(r,e,0,[e.props,s]);if(ot(),i(),ui(o)){if(gt(e)||es(e),o.then(Fs,Fs),t)return o.then(l=>{Hs(e,l,t)}).catch(l=>{en(l,e,0)});e.asyncDep=o}else Hs(e,o,t)}else xo(e,t)}function Hs(e,t,n){q(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ne(t)&&(e.setupState=Fi(t)),xo(e,n)}let $s;function xo(e,t,n){const r=e.type;if(!e.render){if(!t&&$s&&!r.render){const s=r.template||ts(e).template;if(s){const{isCustomElement:i,compilerOptions:o}=e.appContext.config,{delimiters:l,compilerOptions:c}=r,f=fe(fe({isCustomElement:i,delimiters:l},o),c);r.render=$s(s,f)}}e.render=r.render||Ue}{const s=nn(e);it();try{yc(e)}finally{ot(),s()}}}const Qc={get(e,t){return ve(e,"get",""),e[t]}};function Co(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Qc),slots:e.slots,emit:e.emit,expose:t}}function zn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Fi(Sn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Vt)return Vt[n](e)},has(t,n){return n in t||n in Vt}})):e.proxy}function Zc(e,t=!0){return q(e)?e.displayName||e.name:e.name||t&&e.__name}function ea(e){return q(e)&&"__vccOpts"in e}const ie=(e,t)=>Ul(e,t,rn);function Fr(e,t,n){const r=arguments.length;return r===2?ne(t)&&!K(t)?Ln(t)?le(e,null,[t]):le(e,t):le(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Ln(n)&&(n=[n]),le(e,t,n))}const ta="3.5.4";/** +* @vue/runtime-dom v3.5.4 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Hr;const Ds=typeof window<"u"&&window.trustedTypes;if(Ds)try{Hr=Ds.createPolicy("vue",{createHTML:e=>e})}catch{}const To=Hr?e=>Hr.createHTML(e):e=>e,na="http://www.w3.org/2000/svg",ra="http://www.w3.org/1998/Math/MathML",Ke=typeof document<"u"?document:null,js=Ke&&Ke.createElement("template"),sa={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?Ke.createElementNS(na,e):t==="mathml"?Ke.createElementNS(ra,e):n?Ke.createElement(e,{is:n}):Ke.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>Ke.createTextNode(e),createComment:e=>Ke.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ke.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,i){const o=n?n.previousSibling:t.lastChild;if(s&&(s===i||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===i||!(s=s.nextSibling)););else{js.innerHTML=To(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=js.content;if(r==="svg"||r==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},ze="transition",Ht="animation",zt=Symbol("_vtc"),Ao={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},ia=fe({},ki,Ao),oa=e=>(e.displayName="Transition",e.props=ia,e),kf=oa((e,{slots:t})=>Fr(Zl,la(e),t)),at=(e,t=[])=>{K(e)?e.forEach(n=>n(...t)):e&&e(...t)},Vs=e=>e?K(e)?e.some(t=>t.length>1):e.length>1:!1;function la(e){const t={};for(const x in e)x in Ao||(t[x]=e[x]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:i=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:f=o,appearToClass:a=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:g=`${n}-leave-active`,leaveToClass:_=`${n}-leave-to`}=e,b=ca(s),S=b&&b[0],V=b&&b[1],{onBeforeEnter:N,onEnter:U,onEnterCancelled:p,onLeave:m,onLeaveCancelled:M,onBeforeAppear:F=N,onAppear:$=U,onAppearCancelled:D=p}=t,R=(x,W,re)=>{ft(x,W?a:l),ft(x,W?f:o),re&&re()},v=(x,W)=>{x._isLeaving=!1,ft(x,h),ft(x,_),ft(x,g),W&&W()},L=x=>(W,re)=>{const ce=x?$:U,j=()=>R(W,x,re);at(ce,[W,j]),Us(()=>{ft(W,x?c:i),Je(W,x?a:l),Vs(ce)||Bs(W,r,S,j)})};return fe(t,{onBeforeEnter(x){at(N,[x]),Je(x,i),Je(x,o)},onBeforeAppear(x){at(F,[x]),Je(x,c),Je(x,f)},onEnter:L(!1),onAppear:L(!0),onLeave(x,W){x._isLeaving=!0;const re=()=>v(x,W);Je(x,h),Je(x,g),ua(),Us(()=>{x._isLeaving&&(ft(x,h),Je(x,_),Vs(m)||Bs(x,r,V,re))}),at(m,[x,re])},onEnterCancelled(x){R(x,!1),at(p,[x])},onAppearCancelled(x){R(x,!0),at(D,[x])},onLeaveCancelled(x){v(x),at(M,[x])}})}function ca(e){if(e==null)return null;if(ne(e))return[ar(e.enter),ar(e.leave)];{const t=ar(e);return[t,t]}}function ar(e){return el(e)}function Je(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[zt]||(e[zt]=new Set)).add(t)}function ft(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[zt];n&&(n.delete(t),n.size||(e[zt]=void 0))}function Us(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let aa=0;function Bs(e,t,n,r){const s=e._endId=++aa,i=()=>{s===e._endId&&r()};if(n)return setTimeout(i,n);const{type:o,timeout:l,propCount:c}=fa(e,t);if(!o)return r();const f=o+"end";let a=0;const h=()=>{e.removeEventListener(f,g),i()},g=_=>{_.target===e&&++a>=c&&h()};setTimeout(()=>{a(n[b]||"").split(", "),s=r(`${ze}Delay`),i=r(`${ze}Duration`),o=ks(s,i),l=r(`${Ht}Delay`),c=r(`${Ht}Duration`),f=ks(l,c);let a=null,h=0,g=0;t===ze?o>0&&(a=ze,h=o,g=i.length):t===Ht?f>0&&(a=Ht,h=f,g=c.length):(h=Math.max(o,f),a=h>0?o>f?ze:Ht:null,g=a?a===ze?i.length:c.length:0);const _=a===ze&&/\b(transform|all)(,|$)/.test(r(`${ze}Property`).toString());return{type:a,timeout:h,propCount:g,hasTransform:_}}function ks(e,t){for(;e.lengthWs(n)+Ws(e[r])))}function Ws(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function ua(){return document.body.offsetHeight}function da(e,t,n){const r=e[zt];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Ks=Symbol("_vod"),ha=Symbol("_vsh"),pa=Symbol(""),ga=/(^|;)\s*display\s*:/;function ma(e,t,n){const r=e.style,s=se(n);let i=!1;if(n&&!s){if(t)if(se(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();n[l]==null&&Cn(r,l,"")}else for(const o in t)n[o]==null&&Cn(r,o,"");for(const o in n)o==="display"&&(i=!0),Cn(r,o,n[o])}else if(s){if(t!==n){const o=r[pa];o&&(n+=";"+o),r.cssText=n,i=ga.test(n)}}else t&&e.removeAttribute("style");Ks in e&&(e[Ks]=i?r.display:"",e[ha]&&(r.display="none"))}const qs=/\s*!important$/;function Cn(e,t,n){if(K(n))n.forEach(r=>Cn(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=ya(e,t);qs.test(n)?e.setProperty(st(r),n.replace(qs,""),"important"):e[r]=n}}const Gs=["Webkit","Moz","ms"],fr={};function ya(e,t){const n=fr[t];if(n)return n;let r=Ne(t);if(r!=="filter"&&r in e)return fr[t]=r;r=$n(r);for(let s=0;sur||(Sa.then(()=>ur=0),ur=Date.now());function xa(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Fe(Ca(r,n.value),t,5,[r])};return n.value=e,n.attached=Ea(),n}function Ca(e,t){if(K(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const Qs=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Ta=(e,t,n,r,s,i)=>{const o=s==="svg";t==="class"?da(e,r,o):t==="style"?ma(e,n,r):Qt(t)?Dr(t)||ba(e,t,n,r,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Aa(e,t,r,o))?(va(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Xs(e,t,r,o,i,t!=="value")):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Xs(e,t,r,o))};function Aa(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Qs(t)&&q(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Qs(t)&&se(n)?!1:!!(t in e||e._isVueCE&&(/[A-Z]/.test(t)||!se(n)))}const Zs=e=>{const t=e.props["onUpdate:modelValue"]||!1;return K(t)?n=>wn(t,n):t};function Ra(e){e.target.composing=!0}function ei(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const dr=Symbol("_assign"),Wf={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[dr]=Zs(s);const i=r||s.props&&s.props.type==="number";Et(e,t?"change":"input",o=>{if(o.target.composing)return;let l=e.value;n&&(l=l.trim()),i&&(l=Sr(l)),e[dr](l)}),n&&Et(e,"change",()=>{e.value=e.value.trim()}),t||(Et(e,"compositionstart",Ra),Et(e,"compositionend",ei),Et(e,"change",ei))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:i}},o){if(e[dr]=Zs(o),e.composing)return;const l=(i||e.type==="number")&&!/^0\d/.test(e.value)?Sr(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},Oa=["ctrl","shift","alt","meta"],Ma={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Oa.some(n=>e[`${n}Key`]&&!t.includes(n))},Kf=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(s,...i)=>{for(let o=0;o{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=s=>{if(!("key"in s))return;const i=st(s.key);if(t.some(o=>o===i||Ia[o]===i))return e(s)})},Ro=fe({patchProp:Ta},sa);let kt,ti=!1;function Pa(){return kt||(kt=Ic(Ro))}function La(){return kt=ti?kt:Pc(Ro),ti=!0,kt}const Gf=(...e)=>{const t=Pa().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Mo(r);if(!s)return;const i=t._component;!q(i)&&!i.render&&!i.template&&(i.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const o=n(s,!1,Oo(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),o},t},Yf=(...e)=>{const t=La().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Mo(r);if(s)return n(s,!0,Oo(s))},t};function Oo(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Mo(e){return se(e)?document.querySelector(e):e}const Xf=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},Na=window.__VP_SITE_DATA__;function os(e){return _i()?(al(e),!0):!1}function ke(e){return typeof e=="function"?e():Ni(e)}const Io=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const zf=e=>e!=null,Fa=Object.prototype.toString,Ha=e=>Fa.call(e)==="[object Object]",Jt=()=>{},ni=$a();function $a(){var e,t;return Io&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function Da(e,t){function n(...r){return new Promise((s,i)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(s).catch(i)})}return n}const Po=e=>e();function ja(e,t={}){let n,r,s=Jt;const i=l=>{clearTimeout(l),s(),s=Jt};return l=>{const c=ke(e),f=ke(t.maxWait);return n&&i(n),c<=0||f!==void 0&&f<=0?(r&&(i(r),r=null),Promise.resolve(l())):new Promise((a,h)=>{s=t.rejectOnCancel?h:a,f&&!r&&(r=setTimeout(()=>{n&&i(n),r=null,a(l())},f)),n=setTimeout(()=>{r&&i(r),r=null,a(l())},c)})}}function Va(e=Po){const t=oe(!0);function n(){t.value=!1}function r(){t.value=!0}const s=(...i)=>{t.value&&e(...i)};return{isActive:Bn(t),pause:n,resume:r,eventFilter:s}}function Ua(e){return Xn()}function Lo(...e){if(e.length!==1)return Dl(...e);const t=e[0];return typeof t=="function"?Bn(Fl(()=>({get:t,set:Jt}))):oe(t)}function No(e,t,n={}){const{eventFilter:r=Po,...s}=n;return Be(e,Da(r,t),s)}function Ba(e,t,n={}){const{eventFilter:r,...s}=n,{eventFilter:i,pause:o,resume:l,isActive:c}=Va(r);return{stop:No(e,t,{...s,eventFilter:i}),pause:o,resume:l,isActive:c}}function ls(e,t=!0,n){Ua()?Pt(e,n):t?e():kn(e)}function Jf(e,t,n={}){const{debounce:r=0,maxWait:s=void 0,...i}=n;return No(e,t,{...i,eventFilter:ja(r,{maxWait:s})})}function Qf(e,t,n){let r;ae(n)?r={evaluating:n}:r={};const{lazy:s=!1,evaluating:i=void 0,shallow:o=!0,onError:l=Jt}=r,c=oe(!s),f=o?Jr(t):oe(t);let a=0;return ss(async h=>{if(!c.value)return;a++;const g=a;let _=!1;i&&Promise.resolve().then(()=>{i.value=!0});try{const b=await e(S=>{h(()=>{i&&(i.value=!1),_||S()})});g===a&&(f.value=b)}catch(b){l(b)}finally{i&&g===a&&(i.value=!1),_=!0}}),s?ie(()=>(c.value=!0,f.value)):f}function Fo(e){var t;const n=ke(e);return(t=n==null?void 0:n.$el)!=null?t:n}const He=Io?window:void 0;function It(...e){let t,n,r,s;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,s]=e,t=He):[t,n,r,s]=e,!t)return Jt;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const i=[],o=()=>{i.forEach(a=>a()),i.length=0},l=(a,h,g,_)=>(a.addEventListener(h,g,_),()=>a.removeEventListener(h,g,_)),c=Be(()=>[Fo(t),ke(s)],([a,h])=>{if(o(),!a)return;const g=Ha(h)?{...h}:h;i.push(...n.flatMap(_=>r.map(b=>l(a,_,b,g))))},{immediate:!0,flush:"post"}),f=()=>{c(),o()};return os(f),f}function ka(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function Zf(...e){let t,n,r={};e.length===3?(t=e[0],n=e[1],r=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],r=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:s=He,eventName:i="keydown",passive:o=!1,dedupe:l=!1}=r,c=ka(t);return It(s,i,a=>{a.repeat&&ke(l)||c(a)&&n(a)},o)}function Wa(){const e=oe(!1),t=Xn();return t&&Pt(()=>{e.value=!0},t),e}function Ka(e){const t=Wa();return ie(()=>(t.value,!!e()))}function Ho(e,t={}){const{window:n=He}=t,r=Ka(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let s;const i=oe(!1),o=f=>{i.value=f.matches},l=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",o):s.removeListener(o))},c=ss(()=>{r.value&&(l(),s=n.matchMedia(ke(e)),"addEventListener"in s?s.addEventListener("change",o):s.addListener(o),i.value=s.matches)});return os(()=>{c(),l(),s=void 0}),i}const yn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},vn="__vueuse_ssr_handlers__",qa=Ga();function Ga(){return vn in yn||(yn[vn]=yn[vn]||{}),yn[vn]}function $o(e,t){return qa[e]||t}function Ya(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const Xa={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},ri="vueuse-storage";function cs(e,t,n,r={}){var s;const{flush:i="pre",deep:o=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:f=!1,shallow:a,window:h=He,eventFilter:g,onError:_=v=>{console.error(v)},initOnMounted:b}=r,S=(a?Jr:oe)(typeof t=="function"?t():t);if(!n)try{n=$o("getDefaultStorage",()=>{var v;return(v=He)==null?void 0:v.localStorage})()}catch(v){_(v)}if(!n)return S;const V=ke(t),N=Ya(V),U=(s=r.serializer)!=null?s:Xa[N],{pause:p,resume:m}=Ba(S,()=>F(S.value),{flush:i,deep:o,eventFilter:g});h&&l&&ls(()=>{n instanceof Storage?It(h,"storage",D):It(h,ri,R),b&&D()}),b||D();function M(v,L){if(h){const x={key:e,oldValue:v,newValue:L,storageArea:n};h.dispatchEvent(n instanceof Storage?new StorageEvent("storage",x):new CustomEvent(ri,{detail:x}))}}function F(v){try{const L=n.getItem(e);if(v==null)M(L,null),n.removeItem(e);else{const x=U.write(v);L!==x&&(n.setItem(e,x),M(L,x))}}catch(L){_(L)}}function $(v){const L=v?v.newValue:n.getItem(e);if(L==null)return c&&V!=null&&n.setItem(e,U.write(V)),V;if(!v&&f){const x=U.read(L);return typeof f=="function"?f(x,V):N==="object"&&!Array.isArray(x)?{...V,...x}:x}else return typeof L!="string"?L:U.read(L)}function D(v){if(!(v&&v.storageArea!==n)){if(v&&v.key==null){S.value=V;return}if(!(v&&v.key!==e)){p();try{(v==null?void 0:v.newValue)!==U.write(S.value)&&(S.value=$(v))}catch(L){_(L)}finally{v?kn(m):m()}}}}function R(v){D(v.detail)}return S}function Do(e){return Ho("(prefers-color-scheme: dark)",e)}const za="*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function Ja(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:s=He,storage:i,storageKey:o="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:f,disableTransition:a=!0}=e,h={auto:"",light:"light",dark:"dark",...e.modes||{}},g=Do({window:s}),_=ie(()=>g.value?"dark":"light"),b=c||(o==null?Lo(r):cs(o,r,i,{window:s,listenToStorageChanges:l})),S=ie(()=>b.value==="auto"?_.value:b.value),V=$o("updateHTMLAttrs",(m,M,F)=>{const $=typeof m=="string"?s==null?void 0:s.document.querySelector(m):Fo(m);if(!$)return;const D=new Set,R=new Set;let v=null;if(M==="class"){const x=F.split(/\s/g);Object.values(h).flatMap(W=>(W||"").split(/\s/g)).filter(Boolean).forEach(W=>{x.includes(W)?D.add(W):R.add(W)})}else v={key:M,value:F};if(D.size===0&&R.size===0&&v===null)return;let L;a&&(L=s.document.createElement("style"),L.appendChild(document.createTextNode(za)),s.document.head.appendChild(L));for(const x of D)$.classList.add(x);for(const x of R)$.classList.remove(x);v&&$.setAttribute(v.key,v.value),a&&(s.getComputedStyle(L).opacity,document.head.removeChild(L))});function N(m){var M;V(t,n,(M=h[m])!=null?M:m)}function U(m){e.onChanged?e.onChanged(m,N):N(m)}Be(S,U,{flush:"post",immediate:!0}),ls(()=>U(S.value));const p=ie({get(){return f?b.value:S.value},set(m){b.value=m}});try{return Object.assign(p,{store:b,system:_,state:S})}catch{return p}}function Qa(e={}){const{valueDark:t="dark",valueLight:n="",window:r=He}=e,s=Ja({...e,onChanged:(l,c)=>{var f;e.onChanged?(f=e.onChanged)==null||f.call(e,l==="dark",c,l):c(l)},modes:{dark:t,light:n}}),i=ie(()=>s.system?s.system.value:Do({window:r}).value?"dark":"light");return ie({get(){return s.value==="dark"},set(l){const c=l?"dark":"light";i.value===c?s.value="auto":s.value=c}})}function hr(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function eu(e,t,n={}){const{window:r=He}=n;return cs(e,t,r==null?void 0:r.localStorage,n)}function jo(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const pr=new WeakMap;function tu(e,t=!1){const n=oe(t);let r=null,s="";Be(Lo(e),l=>{const c=hr(ke(l));if(c){const f=c;if(pr.get(f)||pr.set(f,f.style.overflow),f.style.overflow!=="hidden"&&(s=f.style.overflow),f.style.overflow==="hidden")return n.value=!0;if(n.value)return f.style.overflow="hidden"}},{immediate:!0});const i=()=>{const l=hr(ke(e));!l||n.value||(ni&&(r=It(l,"touchmove",c=>{Za(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},o=()=>{const l=hr(ke(e));!l||!n.value||(ni&&(r==null||r()),l.style.overflow=s,pr.delete(l),n.value=!1)};return os(o),ie({get(){return n.value},set(l){l?i():o()}})}function nu(e,t,n={}){const{window:r=He}=n;return cs(e,t,r==null?void 0:r.sessionStorage,n)}function ru(e={}){const{window:t=He,behavior:n="auto"}=e;if(!t)return{x:oe(0),y:oe(0)};const r=oe(t.scrollX),s=oe(t.scrollY),i=ie({get(){return r.value},set(l){scrollTo({left:l,behavior:n})}}),o=ie({get(){return s.value},set(l){scrollTo({top:l,behavior:n})}});return It(t,"scroll",()=>{r.value=t.scrollX,s.value=t.scrollY},{capture:!1,passive:!0}),{x:i,y:o}}function su(e={}){const{window:t=He,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:r=Number.POSITIVE_INFINITY,listenOrientation:s=!0,includeScrollbar:i=!0,type:o="inner"}=e,l=oe(n),c=oe(r),f=()=>{t&&(o==="outer"?(l.value=t.outerWidth,c.value=t.outerHeight):i?(l.value=t.innerWidth,c.value=t.innerHeight):(l.value=t.document.documentElement.clientWidth,c.value=t.document.documentElement.clientHeight))};if(f(),ls(f),It("resize",f,{passive:!0}),s){const a=Ho("(orientation: portrait)");Be(a,()=>f())}return{width:l,height:c}}const gr={BASE_URL:"/GeometryOps.jl/dev/",DEV:!1,MODE:"production",PROD:!0,SSR:!1};var mr={};const Vo=/^(?:[a-z]+:|\/\/)/i,ef="vitepress-theme-appearance",tf=/#.*$/,nf=/[?#].*$/,rf=/(?:(^|\/)index)?\.(?:md|html)$/,ge=typeof document<"u",Uo={relativePath:"404.md",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function sf(e,t,n=!1){if(t===void 0)return!1;if(e=si(`/${e}`),n)return new RegExp(t).test(e);if(si(t)!==e)return!1;const r=t.match(tf);return r?(ge?location.hash:"")===r[0]:!0}function si(e){return decodeURI(e).replace(nf,"").replace(rf,"$1")}function of(e){return Vo.test(e)}function lf(e,t){return Object.keys((e==null?void 0:e.locales)||{}).find(n=>n!=="root"&&!of(n)&&sf(t,`/${n}/`,!0))||"root"}function cf(e,t){var r,s,i,o,l,c,f;const n=lf(e,t);return Object.assign({},e,{localeIndex:n,lang:((r=e.locales[n])==null?void 0:r.lang)??e.lang,dir:((s=e.locales[n])==null?void 0:s.dir)??e.dir,title:((i=e.locales[n])==null?void 0:i.title)??e.title,titleTemplate:((o=e.locales[n])==null?void 0:o.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:ko(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(f=e.locales[n])==null?void 0:f.themeConfig}})}function Bo(e,t){const n=t.title||e.title,r=t.titleTemplate??e.titleTemplate;if(typeof r=="string"&&r.includes(":title"))return r.replace(/:title/g,n);const s=af(e.title,r);return n===s.slice(3)?n:`${n}${s}`}function af(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function ff(e,t){const[n,r]=t;if(n!=="meta")return!1;const s=Object.entries(r)[0];return s==null?!1:e.some(([i,o])=>i===n&&o[s[0]]===s[1])}function ko(e,t){return[...e.filter(n=>!ff(t,n)),...t]}const uf=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,df=/^[a-z]:/i;function ii(e){const t=df.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(uf,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const yr=new Set;function hf(e){if(yr.size===0){const n=typeof process=="object"&&(mr==null?void 0:mr.VITE_EXTRA_EXTENSIONS)||(gr==null?void 0:gr.VITE_EXTRA_EXTENSIONS)||"";("3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,yaml,yml,zip"+(n&&typeof n=="string"?","+n:"")).split(",").forEach(r=>yr.add(r))}const t=e.split(".").pop();return t==null||!yr.has(t.toLowerCase())}function iu(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const pf=Symbol(),yt=Jr(Na);function ou(e){const t=ie(()=>cf(yt.value,e.data.relativePath)),n=t.value.appearance,r=n==="force-dark"?oe(!0):n?Qa({storageKey:ef,initialValue:()=>n==="dark"?"dark":"auto",...typeof n=="object"?n:{}}):oe(!1),s=oe(ge?location.hash:"");return ge&&window.addEventListener("hashchange",()=>{s.value=location.hash}),Be(()=>e.data,()=>{s.value=ge?location.hash:""}),{site:t,theme:ie(()=>t.value.themeConfig),page:ie(()=>e.data),frontmatter:ie(()=>e.data.frontmatter),params:ie(()=>e.data.params),lang:ie(()=>t.value.lang),dir:ie(()=>e.data.frontmatter.dir||t.value.dir),localeIndex:ie(()=>t.value.localeIndex||"root"),title:ie(()=>Bo(t.value,e.data)),description:ie(()=>e.data.description||t.value.description),isDark:r,hash:ie(()=>s.value)}}function gf(){const e=Mt(pf);if(!e)throw new Error("vitepress data not properly injected in app");return e}function mf(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function oi(e){return Vo.test(e)||!e.startsWith("/")?e:mf(yt.value.base,e)}function yf(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),ge){const n="/GeometryOps.jl/dev/";t=ii(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let r=__VP_HASH_MAP__[t.toLowerCase()];if(r||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",r=__VP_HASH_MAP__[t.toLowerCase()]),!r)return null;t=`${n}assets/${t}.${r}.js`}else t=`./${ii(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let Tn=[];function lu(e){Tn.push(e),qn(()=>{Tn=Tn.filter(t=>t!==e)})}function vf(){let e=yt.value.scrollOffset,t=0,n=24;if(typeof e=="object"&&"padding"in e&&(n=e.padding,e=e.selector),typeof e=="number")t=e;else if(typeof e=="string")t=li(e,n);else if(Array.isArray(e))for(const r of e){const s=li(r,n);if(s){t=s;break}}return t}function li(e,t){const n=document.querySelector(e);if(!n)return 0;const r=n.getBoundingClientRect().bottom;return r<0?0:r+t}const _f=Symbol(),Wo="http://a.com",bf=()=>({path:"/",component:null,data:Uo});function cu(e,t){const n=Un(bf()),r={route:n,go:s};async function s(l=ge?location.href:"/"){var c,f;l=vr(l),await((c=r.onBeforeRouteChange)==null?void 0:c.call(r,l))!==!1&&(ge&&l!==vr(location.href)&&(history.replaceState({scrollPosition:window.scrollY},""),history.pushState({},"",l)),await o(l),await((f=r.onAfterRouteChanged)==null?void 0:f.call(r,l)))}let i=null;async function o(l,c=0,f=!1){var g;if(await((g=r.onBeforePageLoad)==null?void 0:g.call(r,l))===!1)return;const a=new URL(l,Wo),h=i=a.pathname;try{let _=await e(h);if(!_)throw new Error(`Page not found: ${h}`);if(i===h){i=null;const{default:b,__pageData:S}=_;if(!b)throw new Error(`Invalid route component: ${b}`);n.path=ge?h:oi(h),n.component=Sn(b),n.data=Sn(S),ge&&kn(()=>{let V=yt.value.base+S.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!yt.value.cleanUrls&&!V.endsWith("/")&&(V+=".html"),V!==a.pathname&&(a.pathname=V,l=V+a.search+a.hash,history.replaceState({},"",l)),a.hash&&!c){let N=null;try{N=document.getElementById(decodeURIComponent(a.hash).slice(1))}catch(U){console.warn(U)}if(N){ci(N,a.hash);return}}window.scrollTo(0,c)})}}catch(_){if(!/fetch|Page not found/.test(_.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(_),!f)try{const b=await fetch(yt.value.base+"hashmap.json");window.__VP_HASH_MAP__=await b.json(),await o(l,c,!0);return}catch{}if(i===h){i=null,n.path=ge?h:oi(h),n.component=t?Sn(t):null;const b=ge?h.replace(/(^|\/)$/,"$1index").replace(/(\.html)?$/,".md").replace(/^\//,""):"404.md";n.data={...Uo,relativePath:b}}}}return ge&&(history.state===null&&history.replaceState({},""),window.addEventListener("click",l=>{if(l.defaultPrevented||!(l.target instanceof Element)||l.target.closest("button")||l.button!==0||l.ctrlKey||l.shiftKey||l.altKey||l.metaKey)return;const c=l.target.closest("a");if(!c||c.closest(".vp-raw")||c.hasAttribute("download")||c.hasAttribute("target"))return;const f=c.getAttribute("href")??(c instanceof SVGAElement?c.getAttribute("xlink:href"):null);if(f==null)return;const{href:a,origin:h,pathname:g,hash:_,search:b}=new URL(f,c.baseURI),S=new URL(location.href);h===S.origin&&hf(g)&&(l.preventDefault(),g===S.pathname&&b===S.search?(_!==S.hash&&(history.pushState({},"",a),window.dispatchEvent(new HashChangeEvent("hashchange",{oldURL:S.href,newURL:a}))),_?ci(c,_,c.classList.contains("header-anchor")):window.scrollTo(0,0)):s(a))},{capture:!0}),window.addEventListener("popstate",async l=>{var c;l.state!==null&&(await o(vr(location.href),l.state&&l.state.scrollPosition||0),(c=r.onAfterRouteChanged)==null||c.call(r,location.href))}),window.addEventListener("hashchange",l=>{l.preventDefault()})),r}function wf(){const e=Mt(_f);if(!e)throw new Error("useRouter() is called without provider.");return e}function Ko(){return wf().route}function ci(e,t,n=!1){let r=null;try{r=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(s){console.warn(s)}if(r){let s=function(){!n||Math.abs(o-window.scrollY)>window.innerHeight?window.scrollTo(0,o):window.scrollTo({left:0,top:o,behavior:"smooth"})};const i=parseInt(window.getComputedStyle(r).paddingTop,10),o=window.scrollY+r.getBoundingClientRect().top-vf()+i;requestAnimationFrame(s)}}function vr(e){const t=new URL(e,Wo);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),yt.value.cleanUrls?t.pathname=t.pathname.replace(/\.html$/,""):!t.pathname.endsWith("/")&&!t.pathname.endsWith(".html")&&(t.pathname+=".html"),t.pathname+t.search+t.hash}const _r=()=>Tn.forEach(e=>e()),au=Zr({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=Ko(),{site:n}=gf();return()=>Fr(e.as,n.value.contentProps??{style:{position:"relative"}},[t.component?Fr(t.component,{onVnodeMounted:_r,onVnodeUpdated:_r,onVnodeUnmounted:_r}):"404 Page Not Found"])}}),Sf="modulepreload",Ef=function(e){return"/GeometryOps.jl/dev/"+e},ai={},fu=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),o=(i==null?void 0:i.nonce)||(i==null?void 0:i.getAttribute("nonce"));s=Promise.allSettled(n.map(l=>{if(l=Ef(l),l in ai)return;ai[l]=!0;const c=l.endsWith(".css"),f=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${f}`))return;const a=document.createElement("link");if(a.rel=c?"stylesheet":Sf,c||(a.as="script"),a.crossOrigin="",a.href=l,o&&a.setAttribute("nonce",o),document.head.appendChild(a),c)return new Promise((h,g)=>{a.addEventListener("load",h),a.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${l}`)))})}))}return s.then(i=>{for(const o of i||[]){if(o.status!=="rejected")continue;const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o.reason,window.dispatchEvent(l),!l.defaultPrevented)throw o.reason}return t()})},uu=Zr({setup(e,{slots:t}){const n=oe(!1);return Pt(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function du(){ge&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const r=(n=t.parentElement)==null?void 0:n.parentElement;if(!r)return;const s=Array.from(r.querySelectorAll("input")).indexOf(t);if(s<0)return;const i=r.querySelector(".blocks");if(!i)return;const o=Array.from(i.children).find(f=>f.classList.contains("active"));if(!o)return;const l=i.children[s];if(!l||o===l)return;o.classList.remove("active"),l.classList.add("active");const c=r==null?void 0:r.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function hu(){if(ge){const e=new WeakMap;window.addEventListener("click",t=>{var r;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const s=n.parentElement,i=(r=n.nextElementSibling)==null?void 0:r.nextElementSibling;if(!s||!i)return;const o=/language-(shellscript|shell|bash|sh|zsh)/.test(s.className),l=[".vp-copy-ignore",".diff.remove"],c=i.cloneNode(!0);c.querySelectorAll(l.join(",")).forEach(a=>a.remove());let f=c.textContent||"";o&&(f=f.replace(/^ *(\$|>) /gm,"").trim()),xf(f).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const a=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,a)})}})}}async function xf(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const r=document.getSelection(),s=r?r.rangeCount>0&&r.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),s&&(r.removeAllRanges(),r.addRange(s)),n&&n.focus()}}function pu(e,t){let n=!0,r=[];const s=i=>{if(n){n=!1,i.forEach(l=>{const c=br(l);for(const f of document.head.children)if(f.isEqualNode(c)){r.push(f);return}});return}const o=i.map(br);r.forEach((l,c)=>{const f=o.findIndex(a=>a==null?void 0:a.isEqualNode(l??null));f!==-1?delete o[f]:(l==null||l.remove(),delete r[c])}),o.forEach(l=>l&&document.head.appendChild(l)),r=[...r,...o].filter(Boolean)};ss(()=>{const i=e.data,o=t.value,l=i&&i.description,c=i&&i.frontmatter.head||[],f=Bo(o,i);f!==document.title&&(document.title=f);const a=l||o.description;let h=document.querySelector("meta[name=description]");h?h.getAttribute("content")!==a&&h.setAttribute("content",a):br(["meta",{name:"description",content:a}]),s(ko(o.head,Tf(c)))})}function br([e,t,n]){const r=document.createElement(e);for(const s in t)r.setAttribute(s,t[s]);return n&&(r.innerHTML=n),e==="script"&&!t.async&&(r.async=!1),r}function Cf(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function Tf(e){return e.filter(t=>!Cf(t))}const wr=new Set,qo=()=>document.createElement("link"),Af=e=>{const t=qo();t.rel="prefetch",t.href=e,document.head.appendChild(t)},Rf=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let _n;const Of=ge&&(_n=qo())&&_n.relList&&_n.relList.supports&&_n.relList.supports("prefetch")?Af:Rf;function gu(){if(!ge||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const r=()=>{n&&n.disconnect(),n=new IntersectionObserver(i=>{i.forEach(o=>{if(o.isIntersecting){const l=o.target;n.unobserve(l);const{pathname:c}=l;if(!wr.has(c)){wr.add(c);const f=yf(c);f&&Of(f)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{hostname:o,pathname:l}=new URL(i.href instanceof SVGAnimatedString?i.href.animVal:i.href,i.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||i.target!=="_blank"&&o===location.hostname&&(l!==location.pathname?n.observe(i):wr.add(l))})})};Pt(r);const s=Ko();Be(()=>s.path,r),qn(()=>{n&&n.disconnect()})}export{Xi as $,vf as A,Lf as B,Ff as C,Jr as D,lu as E,Se as F,le as G,Nf as H,Vo as I,Ko as J,qc as K,Mt as L,su as M,Ur as N,Zf as O,kn as P,ru as Q,ge as R,Bn as S,kf as T,Pf as U,fu as V,tu as W,xc as X,qf as Y,$f as Z,Xf as _,So as a,Kf as a0,Df as a1,Un as a2,Dl as a3,Fr as a4,Uf as a5,pu as a6,_f as a7,ou as a8,pf as a9,au as aa,uu as ab,yt as ac,Yf as ad,cu as ae,yf as af,gu as ag,hu as ah,du as ai,ke as aj,Fo as ak,zf as al,os as am,Qf as an,nu as ao,eu as ap,Jf as aq,wf as ar,It as as,Mf as at,Wf as au,ae as av,If as aw,Sn as ax,Gf as ay,iu as az,Lr as b,Vf as c,Zr as d,Bf as e,hf as f,oi as g,ie as h,of as i,wo as j,Ni as k,sf as l,Ho as m,Br as n,Pr as o,oe as p,Be as q,Hf as r,ss as s,ll as t,gf as u,Pt as v,Gl as w,qn as x,jf as y,fc as z}; diff --git a/dev/assets/chunks/framework.B9oBnxE7.js b/dev/assets/chunks/framework.B9oBnxE7.js deleted file mode 100644 index 96876785f..000000000 --- a/dev/assets/chunks/framework.B9oBnxE7.js +++ /dev/null @@ -1,17 +0,0 @@ -/** -* @vue/shared v3.5.3 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**//*! #__NO_SIDE_EFFECTS__ */function $r(e,t){const n=new Set(e.split(","));return r=>n.has(r)}const ee={},Ct=[],Ue=()=>{},Xo=()=>!1,Qt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Dr=e=>e.startsWith("onUpdate:"),fe=Object.assign,jr=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},zo=Object.prototype.hasOwnProperty,Q=(e,t)=>zo.call(e,t),K=Array.isArray,Tt=e=>Fn(e)==="[object Map]",fi=e=>Fn(e)==="[object Set]",q=e=>typeof e=="function",se=e=>typeof e=="string",rt=e=>typeof e=="symbol",ne=e=>e!==null&&typeof e=="object",ui=e=>(ne(e)||q(e))&&q(e.then)&&q(e.catch),di=Object.prototype.toString,Fn=e=>di.call(e),Jo=e=>Fn(e).slice(8,-1),hi=e=>Fn(e)==="[object Object]",Vr=e=>se(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,At=$r(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Hn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Qo=/-(\w)/g,Ne=Hn(e=>e.replace(Qo,(t,n)=>n?n.toUpperCase():"")),Zo=/\B([A-Z])/g,st=Hn(e=>e.replace(Zo,"-$1").toLowerCase()),$n=Hn(e=>e.charAt(0).toUpperCase()+e.slice(1)),_n=Hn(e=>e?`on${$n(e)}`:""),tt=(e,t)=>!Object.is(e,t),wn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},Sr=e=>{const t=parseFloat(e);return isNaN(t)?e:t},el=e=>{const t=se(e)?Number(e):NaN;return isNaN(t)?e:t};let hs;const gi=()=>hs||(hs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ur(e){if(K(e)){const t={};for(let n=0;n{if(n){const r=n.split(nl);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Br(e){let t="";if(se(e))t=e;else if(K(e))for(let n=0;n!!(e&&e.__v_isRef===!0),ll=e=>se(e)?e:e==null?"":K(e)||ne(e)&&(e.toString===di||!q(e.toString))?yi(e)?ll(e.value):JSON.stringify(e,vi,2):String(e),vi=(e,t)=>yi(t)?vi(e,t.value):Tt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],i)=>(n[er(r,i)+" =>"]=s,n),{})}:fi(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>er(n))}:rt(t)?er(t):ne(t)&&!K(t)&&!hi(t)?String(t):t,er=(e,t="")=>{var n;return rt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** -* @vue/reactivity v3.5.3 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let _e;class cl{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=_e,!t&&_e&&(this.index=(_e.scopes||(_e.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0)return;let e;for(;Dt;){let t=Dt;for(Dt=void 0;t;){const n=t.nextEffect;if(t.nextEffect=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function Si(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ei(e){let t,n=e.depsTail;for(let r=n;r;r=r.prevDep)r.version===-1?(r===n&&(n=r.prevDep),Kr(r),fl(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0;e.deps=t,e.depsTail=n}function Er(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&xi(t.dep.computed)===!1||t.dep.version!==t.version)return!0;return!!e._dirty}function xi(e){if(e.flags&2)return!1;if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Wt))return;e.globalVersion=Wt;const t=e.dep;if(e.flags|=2,t.version>0&&!e.isSSR&&!Er(e)){e.flags&=-3;return}const n=Z,r=Le;Z=e,Le=!0;try{Si(e);const s=e.fn(e._value);(t.version===0||tt(s,e._value))&&(e._value=s,t.version++)}catch(s){throw t.version++,s}finally{Z=n,Le=r,Ei(e),e.flags&=-3}}function Kr(e){const{dep:t,prevSub:n,nextSub:r}=e;if(n&&(n.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=n,e.nextSub=void 0),t.subs===e&&(t.subs=n),!t.subs&&t.computed){t.computed.flags&=-5;for(let s=t.computed.deps;s;s=s.nextDep)Kr(s)}}function fl(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Le=!0;const Ci=[];function it(){Ci.push(Le),Le=!1}function ot(){const e=Ci.pop();Le=e===void 0?!0:e}function ps(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=Z;Z=void 0;try{t()}finally{Z=n}}}let Wt=0;class Dn{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0}track(t){if(!Z||!Le||Z===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==Z)n=this.activeLink={dep:this,sub:Z,version:this.version,nextDep:void 0,prevDep:void 0,nextSub:void 0,prevSub:void 0,prevActiveLink:void 0},Z.deps?(n.prevDep=Z.depsTail,Z.depsTail.nextDep=n,Z.depsTail=n):Z.deps=Z.depsTail=n,Z.flags&4&&Ti(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=Z.depsTail,n.nextDep=void 0,Z.depsTail.nextDep=n,Z.depsTail=n,Z.deps===n&&(Z.deps=r)}return n}trigger(t){this.version++,Wt++,this.notify(t)}notify(t){kr();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()}finally{Wr()}}}function Ti(e){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Ti(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}const An=new WeakMap,ht=Symbol(""),xr=Symbol(""),Kt=Symbol("");function ve(e,t,n){if(Le&&Z){let r=An.get(e);r||An.set(e,r=new Map);let s=r.get(n);s||r.set(n,s=new Dn),s.track()}}function Ge(e,t,n,r,s,i){const o=An.get(e);if(!o){Wt++;return}let l=[];if(t==="clear")l=[...o.values()];else{const c=K(e),u=c&&Vr(n);if(c&&n==="length"){const a=Number(r);o.forEach((h,g)=>{(g==="length"||g===Kt||!rt(g)&&g>=a)&&l.push(h)})}else{const a=h=>h&&l.push(h);switch(n!==void 0&&a(o.get(n)),u&&a(o.get(Kt)),t){case"add":c?u&&a(o.get("length")):(a(o.get(ht)),Tt(e)&&a(o.get(xr)));break;case"delete":c||(a(o.get(ht)),Tt(e)&&a(o.get(xr)));break;case"set":Tt(e)&&a(o.get(ht));break}}}kr();for(const c of l)c.trigger();Wr()}function ul(e,t){var n;return(n=An.get(e))==null?void 0:n.get(t)}function _t(e){const t=z(e);return t===e?t:(ve(t,"iterate",Kt),Pe(e)?t:t.map(me))}function jn(e){return ve(e=z(e),"iterate",Kt),e}const dl={__proto__:null,[Symbol.iterator](){return nr(this,Symbol.iterator,me)},concat(...e){return _t(this).concat(...e.map(t=>K(t)?_t(t):t))},entries(){return nr(this,"entries",e=>(e[1]=me(e[1]),e))},every(e,t){return We(this,"every",e,t,void 0,arguments)},filter(e,t){return We(this,"filter",e,t,n=>n.map(me),arguments)},find(e,t){return We(this,"find",e,t,me,arguments)},findIndex(e,t){return We(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return We(this,"findLast",e,t,me,arguments)},findLastIndex(e,t){return We(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return We(this,"forEach",e,t,void 0,arguments)},includes(...e){return rr(this,"includes",e)},indexOf(...e){return rr(this,"indexOf",e)},join(e){return _t(this).join(e)},lastIndexOf(...e){return rr(this,"lastIndexOf",e)},map(e,t){return We(this,"map",e,t,void 0,arguments)},pop(){return Ft(this,"pop")},push(...e){return Ft(this,"push",e)},reduce(e,...t){return gs(this,"reduce",e,t)},reduceRight(e,...t){return gs(this,"reduceRight",e,t)},shift(){return Ft(this,"shift")},some(e,t){return We(this,"some",e,t,void 0,arguments)},splice(...e){return Ft(this,"splice",e)},toReversed(){return _t(this).toReversed()},toSorted(e){return _t(this).toSorted(e)},toSpliced(...e){return _t(this).toSpliced(...e)},unshift(...e){return Ft(this,"unshift",e)},values(){return nr(this,"values",me)}};function nr(e,t,n){const r=jn(e),s=r[t]();return r!==e&&!Pe(e)&&(s._next=s.next,s.next=()=>{const i=s._next();return i.value&&(i.value=n(i.value)),i}),s}const hl=Array.prototype;function We(e,t,n,r,s,i){const o=jn(e),l=o!==e&&!Pe(e),c=o[t];if(c!==hl[t]){const h=c.apply(e,i);return l?me(h):h}let u=n;o!==e&&(l?u=function(h,g){return n.call(this,me(h),g,e)}:n.length>2&&(u=function(h,g){return n.call(this,h,g,e)}));const a=c.call(o,u,r);return l&&s?s(a):a}function gs(e,t,n,r){const s=jn(e);let i=n;return s!==e&&(Pe(e)?n.length>3&&(i=function(o,l,c){return n.call(this,o,l,c,e)}):i=function(o,l,c){return n.call(this,o,me(l),c,e)}),s[t](i,...r)}function rr(e,t,n){const r=z(e);ve(r,"iterate",Kt);const s=r[t](...n);return(s===-1||s===!1)&&Xr(n[0])?(n[0]=z(n[0]),r[t](...n)):s}function Ft(e,t,n=[]){it(),kr();const r=z(e)[t].apply(e,n);return Wr(),ot(),r}const pl=$r("__proto__,__v_isRef,__isVue"),Ai=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(rt));function gl(e){rt(e)||(e=String(e));const t=z(this);return ve(t,"has",e),t.hasOwnProperty(e)}class Ri{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){const s=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return i;if(n==="__v_raw")return r===(s?i?Rl:Li:i?Ii:Mi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const o=K(t);if(!s){let c;if(o&&(c=dl[n]))return c;if(n==="hasOwnProperty")return gl}const l=Reflect.get(t,n,ae(t)?t:r);return(rt(n)?Ai.has(n):pl(n))||(s||ve(t,"get",n),i)?l:ae(l)?o&&Vr(n)?l:l.value:ne(l)?s?Bn(l):Un(l):l}}class Oi extends Ri{constructor(t=!1){super(!1,t)}set(t,n,r,s){let i=t[n];if(!this._isShallow){const c=vt(i);if(!Pe(r)&&!vt(r)&&(i=z(i),r=z(r)),!K(t)&&ae(i)&&!ae(r))return c?!1:(i.value=r,!0)}const o=K(t)&&Vr(n)?Number(n)e,Vn=e=>Reflect.getPrototypeOf(e);function ln(e,t,n=!1,r=!1){e=e.__v_raw;const s=z(e),i=z(t);n||(tt(t,i)&&ve(s,"get",t),ve(s,"get",i));const{has:o}=Vn(s),l=r?qr:n?zr:me;if(o.call(s,t))return l(e.get(t));if(o.call(s,i))return l(e.get(i));e!==s&&e.get(t)}function cn(e,t=!1){const n=this.__v_raw,r=z(n),s=z(e);return t||(tt(e,s)&&ve(r,"has",e),ve(r,"has",s)),e===s?n.has(e):n.has(e)||n.has(s)}function an(e,t=!1){return e=e.__v_raw,!t&&ve(z(e),"iterate",ht),Reflect.get(e,"size",e)}function ms(e,t=!1){!t&&!Pe(e)&&!vt(e)&&(e=z(e));const n=z(this);return Vn(n).has.call(n,e)||(n.add(e),Ge(n,"add",e,e)),this}function ys(e,t,n=!1){!n&&!Pe(t)&&!vt(t)&&(t=z(t));const r=z(this),{has:s,get:i}=Vn(r);let o=s.call(r,e);o||(e=z(e),o=s.call(r,e));const l=i.call(r,e);return r.set(e,t),o?tt(t,l)&&Ge(r,"set",e,t):Ge(r,"add",e,t),this}function vs(e){const t=z(this),{has:n,get:r}=Vn(t);let s=n.call(t,e);s||(e=z(e),s=n.call(t,e)),r&&r.call(t,e);const i=t.delete(e);return s&&Ge(t,"delete",e,void 0),i}function bs(){const e=z(this),t=e.size!==0,n=e.clear();return t&&Ge(e,"clear",void 0,void 0),n}function fn(e,t){return function(r,s){const i=this,o=i.__v_raw,l=z(o),c=t?qr:e?zr:me;return!e&&ve(l,"iterate",ht),o.forEach((u,a)=>r.call(s,c(u),c(a),i))}}function un(e,t,n){return function(...r){const s=this.__v_raw,i=z(s),o=Tt(i),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,u=s[e](...r),a=n?qr:t?zr:me;return!t&&ve(i,"iterate",c?xr:ht),{next(){const{value:h,done:g}=u.next();return g?{value:h,done:g}:{value:l?[a(h[0]),a(h[1])]:a(h),done:g}},[Symbol.iterator](){return this}}}}function Xe(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function _l(){const e={get(i){return ln(this,i)},get size(){return an(this)},has:cn,add:ms,set:ys,delete:vs,clear:bs,forEach:fn(!1,!1)},t={get(i){return ln(this,i,!1,!0)},get size(){return an(this)},has:cn,add(i){return ms.call(this,i,!0)},set(i,o){return ys.call(this,i,o,!0)},delete:vs,clear:bs,forEach:fn(!1,!0)},n={get(i){return ln(this,i,!0)},get size(){return an(this,!0)},has(i){return cn.call(this,i,!0)},add:Xe("add"),set:Xe("set"),delete:Xe("delete"),clear:Xe("clear"),forEach:fn(!0,!1)},r={get(i){return ln(this,i,!0,!0)},get size(){return an(this,!0)},has(i){return cn.call(this,i,!0)},add:Xe("add"),set:Xe("set"),delete:Xe("delete"),clear:Xe("clear"),forEach:fn(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(i=>{e[i]=un(i,!1,!1),n[i]=un(i,!0,!1),t[i]=un(i,!1,!0),r[i]=un(i,!0,!0)}),[e,n,t,r]}const[wl,Sl,El,xl]=_l();function Gr(e,t){const n=t?e?xl:El:e?Sl:wl;return(r,s,i)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(Q(n,s)&&s in r?n:r,s,i)}const Cl={get:Gr(!1,!1)},Tl={get:Gr(!1,!0)},Al={get:Gr(!0,!1)};const Mi=new WeakMap,Ii=new WeakMap,Li=new WeakMap,Rl=new WeakMap;function Ol(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Ml(e){return e.__v_skip||!Object.isExtensible(e)?0:Ol(Jo(e))}function Un(e){return vt(e)?e:Yr(e,!1,yl,Cl,Mi)}function Il(e){return Yr(e,!1,bl,Tl,Ii)}function Bn(e){return Yr(e,!0,vl,Al,Li)}function Yr(e,t,n,r,s){if(!ne(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=s.get(e);if(i)return i;const o=Ml(e);if(o===0)return e;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function pt(e){return vt(e)?pt(e.__v_raw):!!(e&&e.__v_isReactive)}function vt(e){return!!(e&&e.__v_isReadonly)}function Pe(e){return!!(e&&e.__v_isShallow)}function Xr(e){return e?!!e.__v_raw:!1}function z(e){const t=e&&e.__v_raw;return t?z(t):e}function Sn(e){return Object.isExtensible(e)&&pi(e,"__v_skip",!0),e}const me=e=>ne(e)?Un(e):e,zr=e=>ne(e)?Bn(e):e;function ae(e){return e?e.__v_isRef===!0:!1}function oe(e){return Pi(e,!1)}function Jr(e){return Pi(e,!0)}function Pi(e,t){return ae(e)?e:new Ll(e,t)}class Ll{constructor(t,n){this.dep=new Dn,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:z(t),this._value=n?t:me(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||Pe(t)||vt(t);t=r?t:z(t),tt(t,n)&&(this._rawValue=t,this._value=r?t:me(t),this.dep.trigger())}}function Ni(e){return ae(e)?e.value:e}const Pl={get:(e,t,n)=>t==="__v_raw"?e:Ni(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ae(s)&&!ae(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Fi(e){return pt(e)?e:new Proxy(e,Pl)}class Nl{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new Dn,{get:r,set:s}=t(n.track.bind(n),n.trigger.bind(n));this._get=r,this._set=s}get value(){return this._value=this._get()}set value(t){this._set(t)}}function Fl(e){return new Nl(e)}class Hl{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return ul(z(this._object),this._key)}}class $l{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Dl(e,t,n){return ae(e)?e:q(e)?new $l(e):ne(e)&&arguments.length>1?jl(e,t,n):oe(e)}function jl(e,t,n){const r=e[t];return ae(r)?r:new Hl(e,t,n)}class Vl{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Dn(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Wt-1,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){Z!==this&&(this.flags|=16,this.dep.notify())}get value(){const t=this.dep.track();return xi(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Ul(e,t,n=!1){let r,s;return q(e)?r=e:(r=e.get,s=e.set),new Vl(r,s,n)}const dn={},Rn=new WeakMap;let ut;function Bl(e,t=!1,n=ut){if(n){let r=Rn.get(n);r||Rn.set(n,r=[]),r.push(e)}}function kl(e,t,n=ee){const{immediate:r,deep:s,once:i,scheduler:o,augmentJob:l,call:c}=n,u=m=>s?m:Pe(m)||s===!1||s===0?qe(m,1):qe(m);let a,h,g,b,_=!1,S=!1;if(ae(e)?(h=()=>e.value,_=Pe(e)):pt(e)?(h=()=>u(e),_=!0):K(e)?(S=!0,_=e.some(m=>pt(m)||Pe(m)),h=()=>e.map(m=>{if(ae(m))return m.value;if(pt(m))return u(m);if(q(m))return c?c(m,2):m()})):q(e)?t?h=c?()=>c(e,2):e:h=()=>{if(g){it();try{g()}finally{ot()}}const m=ut;ut=a;try{return c?c(e,3,[b]):e(b)}finally{ut=m}}:h=Ue,t&&s){const m=h,M=s===!0?1/0:s;h=()=>qe(m(),M)}const V=bi(),N=()=>{a.stop(),V&&jr(V.effects,a)};if(i)if(t){const m=t;t=(...M)=>{m(...M),N()}}else{const m=h;h=()=>{m(),N()}}let U=S?new Array(e.length).fill(dn):dn;const p=m=>{if(!(!(a.flags&1)||!a.dirty&&!m))if(t){const M=a.run();if(s||_||(S?M.some((F,$)=>tt(F,U[$])):tt(M,U))){g&&g();const F=ut;ut=a;try{const $=[M,U===dn?void 0:S&&U[0]===dn?[]:U,b];c?c(t,3,$):t(...$),U=M}finally{ut=F}}}else a.run()};return l&&l(p),a=new _i(h),a.scheduler=o?()=>o(p,!1):p,b=m=>Bl(m,!1,a),g=a.onStop=()=>{const m=Rn.get(a);if(m){if(c)c(m,4);else for(const M of m)M();Rn.delete(a)}},t?r?p(!0):U=a.run():o?o(p.bind(null,!0),!0):a.run(),N.pause=a.pause.bind(a),N.resume=a.resume.bind(a),N.stop=N,N}function qe(e,t=1/0,n){if(t<=0||!ne(e)||e.__v_skip||(n=n||new Set,n.has(e)))return e;if(n.add(e),t--,ae(e))qe(e.value,t,n);else if(K(e))for(let r=0;r{qe(r,t,n)});else if(hi(e)){for(const r in e)qe(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&qe(e[r],t,n)}return e}/** -* @vue/runtime-core v3.5.3 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function Zt(e,t,n,r){try{return r?e(...r):e()}catch(s){en(s,t,n)}}function Fe(e,t,n,r){if(q(e)){const s=Zt(e,t,n,r);return s&&ui(s)&&s.catch(i=>{en(i,t,n)}),s}if(K(e)){const s=[];for(let i=0;i>>1,s=we[r],i=Gt(s);i=Gt(n)?we.push(e):we.splice(Kl(t),0,e),e.flags|=1,$i()}}function $i(){!qt&&!Cr&&(Cr=!0,Qr=Hi.then(Di))}function ql(e){K(e)?Rt.push(...e):Qe&&e.id===-1?Qe.splice(St+1,0,e):e.flags&1||(Rt.push(e),e.flags|=1),$i()}function _s(e,t,n=qt?je+1:0){for(;nGt(n)-Gt(r));if(Rt.length=0,Qe){Qe.push(...t);return}for(Qe=t,St=0;Ste.id==null?e.flags&2?-1:1/0:e.id;function Di(e){Cr=!1,qt=!0;try{for(je=0;je{r._d&&Ns(-1);const i=Mn(t);let o;try{o=e(...s)}finally{Mn(i),r._d&&Ns(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function Mf(e,t){if(de===null)return e;const n=zn(de),r=e.dirs||(e.dirs=[]);for(let s=0;se.__isTeleport,jt=e=>e&&(e.disabled||e.disabled===""),Yl=e=>e&&(e.defer||e.defer===""),ws=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Ss=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Tr=(e,t)=>{const n=e&&e.to;return se(n)?t?t(n):null:n},Xl={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,i,o,l,c,u){const{mc:a,pc:h,pbc:g,o:{insert:b,querySelector:_,createText:S,createComment:V}}=u,N=jt(t.props);let{shapeFlag:U,children:p,dynamicChildren:m}=t;if(e==null){const M=t.el=S(""),F=t.anchor=S("");b(M,n,r),b(F,n,r);const $=(R,v)=>{U&16&&a(p,R,v,s,i,o,l,c)},D=()=>{const R=t.target=Tr(t.props,_),v=Bi(R,t,S,b);R&&(o!=="svg"&&ws(R)?o="svg":o!=="mathml"&&Ss(R)&&(o="mathml"),N||($(R,v),En(t)))};N&&($(n,F),En(t)),Yl(t.props)?Ee(D,i):D()}else{t.el=e.el,t.targetStart=e.targetStart;const M=t.anchor=e.anchor,F=t.target=e.target,$=t.targetAnchor=e.targetAnchor,D=jt(e.props),R=D?n:F,v=D?M:$;if(o==="svg"||ws(F)?o="svg":(o==="mathml"||Ss(F))&&(o="mathml"),m?(g(e.dynamicChildren,m,R,s,i,o,l),rs(e,t,!0)):c||h(e,t,R,v,s,i,o,l,!1),N)D?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):hn(t,n,M,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const P=t.target=Tr(t.props,_);P&&hn(t,P,null,u,0)}else D&&hn(t,F,$,u,1);En(t)}},remove(e,t,n,{um:r,o:{remove:s}},i){const{shapeFlag:o,children:l,anchor:c,targetStart:u,targetAnchor:a,target:h,props:g}=e;if(h&&(s(u),s(a)),i&&s(c),o&16){const b=i||!jt(g);for(let _=0;_{e.isMounted=!0}),Xi(()=>{e.isUnmounting=!0}),e}const Re=[Function,Array],ki={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Re,onEnter:Re,onAfterEnter:Re,onEnterCancelled:Re,onBeforeLeave:Re,onLeave:Re,onAfterLeave:Re,onLeaveCancelled:Re,onBeforeAppear:Re,onAppear:Re,onAfterAppear:Re,onAppearCancelled:Re},Wi=e=>{const t=e.subTree;return t.component?Wi(t.component):t},Ql={name:"BaseTransition",props:ki,setup(e,{slots:t}){const n=Xn(),r=Jl();return()=>{const s=t.default&&Gi(t.default(),!0);if(!s||!s.length)return;const i=Ki(s),o=z(e),{mode:l}=o;if(r.isLeaving)return sr(i);const c=Es(i);if(!c)return sr(i);let u=Ar(c,o,r,n,g=>u=g);c.type!==ye&&Yt(c,u);const a=n.subTree,h=a&&Es(a);if(h&&h.type!==ye&&!dt(c,h)&&Wi(n).type!==ye){const g=Ar(h,o,r,n);if(Yt(h,g),l==="out-in"&&c.type!==ye)return r.isLeaving=!0,g.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete g.afterLeave},sr(i);l==="in-out"&&c.type!==ye&&(g.delayLeave=(b,_,S)=>{const V=qi(r,h);V[String(h.key)]=h,b[Ze]=()=>{_(),b[Ze]=void 0,delete u.delayedLeave},u.delayedLeave=S})}return i}}};function Ki(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==ye){t=n;break}}return t}const Zl=Ql;function qi(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Ar(e,t,n,r,s){const{appear:i,mode:o,persisted:l=!1,onBeforeEnter:c,onEnter:u,onAfterEnter:a,onEnterCancelled:h,onBeforeLeave:g,onLeave:b,onAfterLeave:_,onLeaveCancelled:S,onBeforeAppear:V,onAppear:N,onAfterAppear:U,onAppearCancelled:p}=t,m=String(e.key),M=qi(n,e),F=(R,v)=>{R&&Fe(R,r,9,v)},$=(R,v)=>{const P=v[1];F(R,v),K(R)?R.every(x=>x.length<=1)&&P():R.length<=1&&P()},D={mode:o,persisted:l,beforeEnter(R){let v=c;if(!n.isMounted)if(i)v=V||c;else return;R[Ze]&&R[Ze](!0);const P=M[m];P&&dt(e,P)&&P.el[Ze]&&P.el[Ze](),F(v,[R])},enter(R){let v=u,P=a,x=h;if(!n.isMounted)if(i)v=N||u,P=U||a,x=p||h;else return;let W=!1;const re=R[pn]=ce=>{W||(W=!0,ce?F(x,[R]):F(P,[R]),D.delayedLeave&&D.delayedLeave(),R[pn]=void 0)};v?$(v,[R,re]):re()},leave(R,v){const P=String(e.key);if(R[pn]&&R[pn](!0),n.isUnmounting)return v();F(g,[R]);let x=!1;const W=R[Ze]=re=>{x||(x=!0,v(),re?F(S,[R]):F(_,[R]),R[Ze]=void 0,M[P]===e&&delete M[P])};M[P]=e,b?$(b,[R,W]):W()},clone(R){const v=Ar(R,t,n,r,s);return s&&s(v),v}};return D}function sr(e){if(tn(e))return e=nt(e),e.children=null,e}function Es(e){if(!tn(e))return Ui(e.type)&&e.children?Ki(e.children):e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&q(n.default))return n.default()}}function Yt(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Yt(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Gi(e,t=!1,n){let r=[],s=0;for(let i=0;i1)for(let i=0;iIn(_,t&&(K(t)?t[S]:t),n,r,s));return}if(gt(r)&&!s)return;const i=r.shapeFlag&4?zn(r.component):r.el,o=s?null:i,{i:l,r:c}=e,u=t&&t.r,a=l.refs===ee?l.refs={}:l.refs,h=l.setupState,g=z(h),b=h===ee?()=>!1:_=>Q(g,_);if(u!=null&&u!==c&&(se(u)?(a[u]=null,b(u)&&(h[u]=null)):ae(u)&&(u.value=null)),q(c))Zt(c,l,12,[o,a]);else{const _=se(c),S=ae(c);if(_||S){const V=()=>{if(e.f){const N=_?b(c)?h[c]:a[c]:c.value;s?K(N)&&jr(N,i):K(N)?N.includes(i)||N.push(i):_?(a[c]=[i],b(c)&&(h[c]=a[c])):(c.value=[i],e.k&&(a[e.k]=c.value))}else _?(a[c]=o,b(c)&&(h[c]=o)):S&&(c.value=o,e.k&&(a[e.k]=o))};o?(V.id=-1,Ee(V,n)):V()}}}let xs=!1;const wt=()=>{xs||(console.error("Hydration completed but contains mismatches."),xs=!0)},ec=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",tc=e=>e.namespaceURI.includes("MathML"),gn=e=>{if(e.nodeType===1){if(ec(e))return"svg";if(tc(e))return"mathml"}},xt=e=>e.nodeType===8;function nc(e){const{mt:t,p:n,o:{patchProp:r,createText:s,nextSibling:i,parentNode:o,remove:l,insert:c,createComment:u}}=e,a=(p,m)=>{if(!m.hasChildNodes()){n(null,p,m),On(),m._vnode=p;return}h(m.firstChild,p,null,null,null),On(),m._vnode=p},h=(p,m,M,F,$,D=!1)=>{D=D||!!m.dynamicChildren;const R=xt(p)&&p.data==="[",v=()=>S(p,m,M,F,$,R),{type:P,ref:x,shapeFlag:W,patchFlag:re}=m;let ce=p.nodeType;m.el=p,re===-2&&(D=!1,m.dynamicChildren=null);let j=null;switch(P){case mt:ce!==3?m.children===""?(c(m.el=s(""),o(p),p),j=p):j=v():(p.data!==m.children&&(wt(),p.data=m.children),j=i(p));break;case ye:U(p)?(j=i(p),N(m.el=p.content.firstChild,p,M)):ce!==8||R?j=v():j=i(p);break;case Ut:if(R&&(p=i(p),ce=p.nodeType),ce===1||ce===3){j=p;const Y=!m.children.length;for(let B=0;B{D=D||!!m.dynamicChildren;const{type:R,props:v,patchFlag:P,shapeFlag:x,dirs:W,transition:re}=m,ce=R==="input"||R==="option";if(ce||P!==-1){W&&Ve(m,null,M,"created");let j=!1;if(U(p)){j=ho(F,re)&&M&&M.vnode.props&&M.vnode.props.appear;const B=p.content.firstChild;j&&re.beforeEnter(B),N(B,p,M),m.el=p=B}if(x&16&&!(v&&(v.innerHTML||v.textContent))){let B=b(p.firstChild,m,p,M,F,$,D);for(;B;){mn(p,1)||wt();const he=B;B=B.nextSibling,l(he)}}else x&8&&p.textContent!==m.children&&(mn(p,0)||wt(),p.textContent=m.children);if(v){if(ce||!D||P&48){const B=p.tagName.includes("-");for(const he in v)(ce&&(he.endsWith("value")||he==="indeterminate")||Qt(he)&&!At(he)||he[0]==="."||B)&&r(p,he,null,v[he],void 0,M)}else if(v.onClick)r(p,"onClick",null,v.onClick,void 0,M);else if(P&4&&pt(v.style))for(const B in v.style)v.style[B]}let Y;(Y=v&&v.onVnodeBeforeMount)&&Oe(Y,M,m),W&&Ve(m,null,M,"beforeMount"),((Y=v&&v.onVnodeMounted)||W||j)&&vo(()=>{Y&&Oe(Y,M,m),j&&re.enter(p),W&&Ve(m,null,M,"mounted")},F)}return p.nextSibling},b=(p,m,M,F,$,D,R)=>{R=R||!!m.dynamicChildren;const v=m.children,P=v.length;for(let x=0;x{const{slotScopeIds:R}=m;R&&($=$?$.concat(R):R);const v=o(p),P=b(i(p),m,v,M,F,$,D);return P&&xt(P)&&P.data==="]"?i(m.anchor=P):(wt(),c(m.anchor=u("]"),v,P),P)},S=(p,m,M,F,$,D)=>{if(mn(p.parentElement,1)||wt(),m.el=null,D){const P=V(p);for(;;){const x=i(p);if(x&&x!==P)l(x);else break}}const R=i(p),v=o(p);return l(p),n(null,m,v,R,M,F,gn(v),$),R},V=(p,m="[",M="]")=>{let F=0;for(;p;)if(p=i(p),p&&xt(p)&&(p.data===m&&F++,p.data===M)){if(F===0)return i(p);F--}return p},N=(p,m,M)=>{const F=m.parentNode;F&&F.replaceChild(p,m);let $=M;for(;$;)$.vnode.el===m&&($.vnode.el=$.subTree.el=p),$=$.parent},U=p=>p.nodeType===1&&p.tagName.toLowerCase()==="template";return[a,h]}const Cs="data-allow-mismatch",rc={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function mn(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(Cs);)e=e.parentElement;const n=e&&e.getAttribute(Cs);if(n==null)return!1;if(n==="")return!0;{const r=n.split(",");return t===0&&r.includes("children")?!0:n.split(",").includes(rc[t])}}function sc(e,t){if(xt(e)&&e.data==="["){let n=1,r=e.nextSibling;for(;r;){if(r.nodeType===1)t(r);else if(xt(r))if(r.data==="]"){if(--n===0)break}else r.data==="["&&n++;r=r.nextSibling}}else t(e)}const gt=e=>!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function Lf(e){q(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:s=200,hydrate:i,timeout:o,suspensible:l=!0,onError:c}=e;let u=null,a,h=0;const g=()=>(h++,u=null,b()),b=()=>{let _;return u||(_=u=t().catch(S=>{if(S=S instanceof Error?S:new Error(String(S)),c)return new Promise((V,N)=>{c(S,()=>V(g()),()=>N(S),h+1)});throw S}).then(S=>_!==u&&u?u:(S&&(S.__esModule||S[Symbol.toStringTag]==="Module")&&(S=S.default),a=S,S)))};return Zr({name:"AsyncComponentWrapper",__asyncLoader:b,__asyncHydrate(_,S,V){const N=i?()=>{const U=i(V,p=>sc(_,p));U&&(S.bum||(S.bum=[])).push(U)}:V;a?N():b().then(()=>!S.isUnmounted&&N())},get __asyncResolved(){return a},setup(){const _=ue;if(es(_),a)return()=>ir(a,_);const S=p=>{u=null,en(p,_,13,!r)};if(l&&_.suspense||rn)return b().then(p=>()=>ir(p,_)).catch(p=>(S(p),()=>r?le(r,{error:p}):null));const V=oe(!1),N=oe(),U=oe(!!s);return s&&setTimeout(()=>{U.value=!1},s),o!=null&&setTimeout(()=>{if(!V.value&&!N.value){const p=new Error(`Async component timed out after ${o}ms.`);S(p),N.value=p}},o),b().then(()=>{V.value=!0,_.parent&&tn(_.parent.vnode)&&Wn(_.parent.update)}).catch(p=>{S(p),N.value=p}),()=>{if(V.value&&a)return ir(a,_);if(N.value&&r)return le(r,{error:N.value});if(n&&!U.value)return le(n)}}})}function ir(e,t){const{ref:n,props:r,children:s,ce:i}=t.vnode,o=le(e,r,s);return o.ref=n,o.ce=i,delete t.vnode.ce,o}const tn=e=>e.type.__isKeepAlive;function ic(e,t){Yi(e,"a",t)}function oc(e,t){Yi(e,"da",t)}function Yi(e,t,n=ue){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Kn(t,r,n),n){let s=n.parent;for(;s&&s.parent;)tn(s.parent.vnode)&&lc(r,t,n,s),s=s.parent}}function lc(e,t,n,r){const s=Kn(t,e,r,!0);qn(()=>{jr(r[t],s)},n)}function Kn(e,t,n=ue,r=!1){if(n){const s=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{it();const l=nn(n),c=Fe(t,n,e,o);return l(),ot(),c});return r?s.unshift(i):s.push(i),i}}const Ye=e=>(t,n=ue)=>{(!rn||e==="sp")&&Kn(e,(...r)=>t(...r),n)},cc=Ye("bm"),Lt=Ye("m"),ac=Ye("bu"),fc=Ye("u"),Xi=Ye("bum"),qn=Ye("um"),uc=Ye("sp"),dc=Ye("rtg"),hc=Ye("rtc");function pc(e,t=ue){Kn("ec",e,t)}const zi="components";function Pf(e,t){return Qi(zi,e,!0,t)||e}const Ji=Symbol.for("v-ndc");function Nf(e){return se(e)?Qi(zi,e,!1)||e:e||Ji}function Qi(e,t,n=!0,r=!1){const s=de||ue;if(s){const i=s.type;{const l=Zc(i,!1);if(l&&(l===t||l===Ne(t)||l===$n(Ne(t))))return i}const o=Ts(s[e]||i[e],t)||Ts(s.appContext[e],t);return!o&&r?i:o}}function Ts(e,t){return e&&(e[t]||e[Ne(t)]||e[$n(Ne(t))])}function Ff(e,t,n,r){let s;const i=n,o=K(e);if(o||se(e)){const l=o&&pt(e);l&&(e=jn(e)),s=new Array(e.length);for(let c=0,u=e.length;ct(l,c,void 0,i));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;cPn(t)?!(t.type===ye||t.type===Se&&!Zi(t.children)):!0)?e:null}function $f(e,t){const n={};for(const r in e)n[/[A-Z]/.test(r)?`on:${r}`:_n(r)]=e[r];return n}const Rr=e=>e?Eo(e)?zn(e):Rr(e.parent):null,Vt=fe(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Rr(e.parent),$root:e=>Rr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ts(e),$forceUpdate:e=>e.f||(e.f=()=>{Wn(e.update)}),$nextTick:e=>e.n||(e.n=kn.bind(e.proxy)),$watch:e=>Hc.bind(e)}),or=(e,t)=>e!==ee&&!e.__isScriptSetup&&Q(e,t),gc={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:i,accessCache:o,type:l,appContext:c}=e;let u;if(t[0]!=="$"){const b=o[t];if(b!==void 0)switch(b){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return i[t]}else{if(or(r,t))return o[t]=1,r[t];if(s!==ee&&Q(s,t))return o[t]=2,s[t];if((u=e.propsOptions[0])&&Q(u,t))return o[t]=3,i[t];if(n!==ee&&Q(n,t))return o[t]=4,n[t];Or&&(o[t]=0)}}const a=Vt[t];let h,g;if(a)return t==="$attrs"&&ve(e.attrs,"get",""),a(e);if((h=l.__cssModules)&&(h=h[t]))return h;if(n!==ee&&Q(n,t))return o[t]=4,n[t];if(g=c.config.globalProperties,Q(g,t))return g[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:i}=e;return or(s,t)?(s[t]=n,!0):r!==ee&&Q(r,t)?(r[t]=n,!0):Q(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,propsOptions:i}},o){let l;return!!n[o]||e!==ee&&Q(e,o)||or(t,o)||(l=i[0])&&Q(l,o)||Q(r,o)||Q(Vt,o)||Q(s.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Q(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Df(){return mc().slots}function mc(){const e=Xn();return e.setupContext||(e.setupContext=Co(e))}function As(e){return K(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Or=!0;function yc(e){const t=ts(e),n=e.proxy,r=e.ctx;Or=!1,t.beforeCreate&&Rs(t.beforeCreate,e,"bc");const{data:s,computed:i,methods:o,watch:l,provide:c,inject:u,created:a,beforeMount:h,mounted:g,beforeUpdate:b,updated:_,activated:S,deactivated:V,beforeDestroy:N,beforeUnmount:U,destroyed:p,unmounted:m,render:M,renderTracked:F,renderTriggered:$,errorCaptured:D,serverPrefetch:R,expose:v,inheritAttrs:P,components:x,directives:W,filters:re}=t;if(u&&vc(u,r,null),o)for(const Y in o){const B=o[Y];q(B)&&(r[Y]=B.bind(n))}if(s){const Y=s.call(n,n);ne(Y)&&(e.data=Un(Y))}if(Or=!0,i)for(const Y in i){const B=i[Y],he=q(B)?B.bind(n,n):q(B.get)?B.get.bind(n,n):Ue,sn=!q(B)&&q(B.set)?B.set.bind(n):Ue,lt=ie({get:he,set:sn});Object.defineProperty(r,Y,{enumerable:!0,configurable:!0,get:()=>lt.value,set:$e=>lt.value=$e})}if(l)for(const Y in l)eo(l[Y],r,n,Y);if(c){const Y=q(c)?c.call(n):c;Reflect.ownKeys(Y).forEach(B=>{xc(B,Y[B])})}a&&Rs(a,e,"c");function j(Y,B){K(B)?B.forEach(he=>Y(he.bind(n))):B&&Y(B.bind(n))}if(j(cc,h),j(Lt,g),j(ac,b),j(fc,_),j(ic,S),j(oc,V),j(pc,D),j(hc,F),j(dc,$),j(Xi,U),j(qn,m),j(uc,R),K(v))if(v.length){const Y=e.exposed||(e.exposed={});v.forEach(B=>{Object.defineProperty(Y,B,{get:()=>n[B],set:he=>n[B]=he})})}else e.exposed||(e.exposed={});M&&e.render===Ue&&(e.render=M),P!=null&&(e.inheritAttrs=P),x&&(e.components=x),W&&(e.directives=W),R&&es(e)}function vc(e,t,n=Ue){K(e)&&(e=Mr(e));for(const r in e){const s=e[r];let i;ne(s)?"default"in s?i=Mt(s.from||r,s.default,!0):i=Mt(s.from||r):i=Mt(s),ae(i)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[r]=i}}function Rs(e,t,n){Fe(K(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function eo(e,t,n,r){let s=r.includes(".")?go(n,r):()=>n[r];if(se(e)){const i=t[e];q(i)&&Be(s,i)}else if(q(e))Be(s,e.bind(n));else if(ne(e))if(K(e))e.forEach(i=>eo(i,t,n,r));else{const i=q(e.handler)?e.handler.bind(n):t[e.handler];q(i)&&Be(s,i,e)}}function ts(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>Ln(c,u,o,!0)),Ln(c,t,o)),ne(t)&&i.set(t,c),c}function Ln(e,t,n,r=!1){const{mixins:s,extends:i}=t;i&&Ln(e,i,n,!0),s&&s.forEach(o=>Ln(e,o,n,!0));for(const o in t)if(!(r&&o==="expose")){const l=bc[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const bc={data:Os,props:Ms,emits:Ms,methods:$t,computed:$t,beforeCreate:be,created:be,beforeMount:be,mounted:be,beforeUpdate:be,updated:be,beforeDestroy:be,beforeUnmount:be,destroyed:be,unmounted:be,activated:be,deactivated:be,errorCaptured:be,serverPrefetch:be,components:$t,directives:$t,watch:wc,provide:Os,inject:_c};function Os(e,t){return t?e?function(){return fe(q(e)?e.call(this,this):e,q(t)?t.call(this,this):t)}:t:e}function _c(e,t){return $t(Mr(e),Mr(t))}function Mr(e){if(K(e)){const t={};for(let n=0;n1)return n&&q(t)?t.call(r&&r.proxy):t}}const no={},ro=()=>Object.create(no),so=e=>Object.getPrototypeOf(e)===no;function Cc(e,t,n,r=!1){const s={},i=ro();e.propsDefaults=Object.create(null),io(e,t,s,i);for(const o in e.propsOptions[0])o in s||(s[o]=void 0);n?e.props=r?s:Il(s):e.type.props?e.props=s:e.props=i,e.attrs=i}function Tc(e,t,n,r){const{props:s,attrs:i,vnode:{patchFlag:o}}=e,l=z(s),[c]=e.propsOptions;let u=!1;if((r||o>0)&&!(o&16)){if(o&8){const a=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[g,b]=oo(h,t,!0);fe(o,g),b&&l.push(...b)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!i&&!c)return ne(e)&&r.set(e,Ct),Ct;if(K(i))for(let a=0;ae[0]==="_"||e==="$stable",ns=e=>K(e)?e.map(Me):[Me(e)],Rc=(e,t,n)=>{if(t._n)return t;const r=Gl((...s)=>ns(t(...s)),n);return r._c=!1,r},co=(e,t,n)=>{const r=e._ctx;for(const s in e){if(lo(s))continue;const i=e[s];if(q(i))t[s]=Rc(s,i,r);else if(i!=null){const o=ns(i);t[s]=()=>o}}},ao=(e,t)=>{const n=ns(t);e.slots.default=()=>n},fo=(e,t,n)=>{for(const r in t)(n||r!=="_")&&(e[r]=t[r])},Oc=(e,t,n)=>{const r=e.slots=ro();if(e.vnode.shapeFlag&32){const s=t._;s?(fo(r,t,n),n&&pi(r,"_",s,!0)):co(t,r)}else t&&ao(e,t)},Mc=(e,t,n)=>{const{vnode:r,slots:s}=e;let i=!0,o=ee;if(r.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:fo(s,t,n):(i=!t.$stable,co(t,s)),o=t}else t&&(ao(e,t),o={default:1});if(i)for(const l in s)!lo(l)&&o[l]==null&&delete s[l]},Ee=vo;function Ic(e){return uo(e)}function Lc(e){return uo(e,nc)}function uo(e,t){const n=gi();n.__VUE__=!0;const{insert:r,remove:s,patchProp:i,createElement:o,createText:l,createComment:c,setText:u,setElementText:a,parentNode:h,nextSibling:g,setScopeId:b=Ue,insertStaticContent:_}=e,S=(f,d,y,C=null,w=null,E=null,I=void 0,O=null,A=!!d.dynamicChildren)=>{if(f===d)return;f&&!dt(f,d)&&(C=on(f),$e(f,w,E,!0),f=null),d.patchFlag===-2&&(A=!1,d.dynamicChildren=null);const{type:T,ref:k,shapeFlag:L}=d;switch(T){case mt:V(f,d,y,C);break;case ye:N(f,d,y,C);break;case Ut:f==null&&U(d,y,C,I);break;case Se:x(f,d,y,C,w,E,I,O,A);break;default:L&1?M(f,d,y,C,w,E,I,O,A):L&6?W(f,d,y,C,w,E,I,O,A):(L&64||L&128)&&T.process(f,d,y,C,w,E,I,O,A,bt)}k!=null&&w&&In(k,f&&f.ref,E,d||f,!d)},V=(f,d,y,C)=>{if(f==null)r(d.el=l(d.children),y,C);else{const w=d.el=f.el;d.children!==f.children&&u(w,d.children)}},N=(f,d,y,C)=>{f==null?r(d.el=c(d.children||""),y,C):d.el=f.el},U=(f,d,y,C)=>{[f.el,f.anchor]=_(f.children,d,y,C,f.el,f.anchor)},p=({el:f,anchor:d},y,C)=>{let w;for(;f&&f!==d;)w=g(f),r(f,y,C),f=w;r(d,y,C)},m=({el:f,anchor:d})=>{let y;for(;f&&f!==d;)y=g(f),s(f),f=y;s(d)},M=(f,d,y,C,w,E,I,O,A)=>{d.type==="svg"?I="svg":d.type==="math"&&(I="mathml"),f==null?F(d,y,C,w,E,I,O,A):R(f,d,w,E,I,O,A)},F=(f,d,y,C,w,E,I,O)=>{let A,T;const{props:k,shapeFlag:L,transition:H,dirs:G}=f;if(A=f.el=o(f.type,E,k&&k.is,k),L&8?a(A,f.children):L&16&&D(f.children,A,null,C,w,lr(f,E),I,O),G&&Ve(f,null,C,"created"),$(A,f,f.scopeId,I,C),k){for(const te in k)te!=="value"&&!At(te)&&i(A,te,null,k[te],E,C);"value"in k&&i(A,"value",null,k.value,E),(T=k.onVnodeBeforeMount)&&Oe(T,C,f)}G&&Ve(f,null,C,"beforeMount");const X=ho(w,H);X&&H.beforeEnter(A),r(A,d,y),((T=k&&k.onVnodeMounted)||X||G)&&Ee(()=>{T&&Oe(T,C,f),X&&H.enter(A),G&&Ve(f,null,C,"mounted")},w)},$=(f,d,y,C,w)=>{if(y&&b(f,y),C)for(let E=0;E{for(let T=A;T{const O=d.el=f.el;let{patchFlag:A,dynamicChildren:T,dirs:k}=d;A|=f.patchFlag&16;const L=f.props||ee,H=d.props||ee;let G;if(y&&ct(y,!1),(G=H.onVnodeBeforeUpdate)&&Oe(G,y,d,f),k&&Ve(d,f,y,"beforeUpdate"),y&&ct(y,!0),(L.innerHTML&&H.innerHTML==null||L.textContent&&H.textContent==null)&&a(O,""),T?v(f.dynamicChildren,T,O,y,C,lr(d,w),E):I||B(f,d,O,null,y,C,lr(d,w),E,!1),A>0){if(A&16)P(O,L,H,y,w);else if(A&2&&L.class!==H.class&&i(O,"class",null,H.class,w),A&4&&i(O,"style",L.style,H.style,w),A&8){const X=d.dynamicProps;for(let te=0;te{G&&Oe(G,y,d,f),k&&Ve(d,f,y,"updated")},C)},v=(f,d,y,C,w,E,I)=>{for(let O=0;O{if(d!==y){if(d!==ee)for(const E in d)!At(E)&&!(E in y)&&i(f,E,d[E],null,w,C);for(const E in y){if(At(E))continue;const I=y[E],O=d[E];I!==O&&E!=="value"&&i(f,E,O,I,w,C)}"value"in y&&i(f,"value",d.value,y.value,w)}},x=(f,d,y,C,w,E,I,O,A)=>{const T=d.el=f?f.el:l(""),k=d.anchor=f?f.anchor:l("");let{patchFlag:L,dynamicChildren:H,slotScopeIds:G}=d;G&&(O=O?O.concat(G):G),f==null?(r(T,y,C),r(k,y,C),D(d.children||[],y,k,w,E,I,O,A)):L>0&&L&64&&H&&f.dynamicChildren?(v(f.dynamicChildren,H,y,w,E,I,O),(d.key!=null||w&&d===w.subTree)&&rs(f,d,!0)):B(f,d,y,k,w,E,I,O,A)},W=(f,d,y,C,w,E,I,O,A)=>{d.slotScopeIds=O,f==null?d.shapeFlag&512?w.ctx.activate(d,y,C,I,A):re(d,y,C,w,E,I,A):ce(f,d,A)},re=(f,d,y,C,w,E,I)=>{const O=f.component=Xc(f,C,w);if(tn(f)&&(O.ctx.renderer=bt),zc(O,!1,I),O.asyncDep){if(w&&w.registerDep(O,j,I),!f.el){const A=O.subTree=le(ye);N(null,A,d,y)}}else j(O,f,d,y,w,E,I)},ce=(f,d,y)=>{const C=d.component=f.component;if(Uc(f,d,y))if(C.asyncDep&&!C.asyncResolved){Y(C,d,y);return}else C.next=d,C.update();else d.el=f.el,C.vnode=d},j=(f,d,y,C,w,E,I)=>{const O=()=>{if(f.isMounted){let{next:L,bu:H,u:G,parent:X,vnode:te}=f;{const Ce=po(f);if(Ce){L&&(L.el=te.el,Y(f,L,I)),Ce.asyncDep.then(()=>{f.isUnmounted||O()});return}}let J=L,xe;ct(f,!1),L?(L.el=te.el,Y(f,L,I)):L=te,H&&wn(H),(xe=L.props&&L.props.onVnodeBeforeUpdate)&&Oe(xe,X,L,te),ct(f,!0);const pe=cr(f),Ie=f.subTree;f.subTree=pe,S(Ie,pe,h(Ie.el),on(Ie),f,w,E),L.el=pe.el,J===null&&Bc(f,pe.el),G&&Ee(G,w),(xe=L.props&&L.props.onVnodeUpdated)&&Ee(()=>Oe(xe,X,L,te),w)}else{let L;const{el:H,props:G}=d,{bm:X,m:te,parent:J,root:xe,type:pe}=f,Ie=gt(d);if(ct(f,!1),X&&wn(X),!Ie&&(L=G&&G.onVnodeBeforeMount)&&Oe(L,J,d),ct(f,!0),H&&Zn){const Ce=()=>{f.subTree=cr(f),Zn(H,f.subTree,f,w,null)};Ie&&pe.__asyncHydrate?pe.__asyncHydrate(H,f,Ce):Ce()}else{xe.ce&&xe.ce._injectChildStyle(pe);const Ce=f.subTree=cr(f);S(null,Ce,y,C,f,w,E),d.el=Ce.el}if(te&&Ee(te,w),!Ie&&(L=G&&G.onVnodeMounted)){const Ce=d;Ee(()=>Oe(L,J,Ce),w)}(d.shapeFlag&256||J&>(J.vnode)&&J.vnode.shapeFlag&256)&&f.a&&Ee(f.a,w),f.isMounted=!0,d=y=C=null}};f.scope.on();const A=f.effect=new _i(O);f.scope.off();const T=f.update=A.run.bind(A),k=f.job=A.runIfDirty.bind(A);k.i=f,k.id=f.uid,A.scheduler=()=>Wn(k),ct(f,!0),T()},Y=(f,d,y)=>{d.component=f;const C=f.vnode.props;f.vnode=d,f.next=null,Tc(f,d.props,C,y),Mc(f,d.children,y),it(),_s(f),ot()},B=(f,d,y,C,w,E,I,O,A=!1)=>{const T=f&&f.children,k=f?f.shapeFlag:0,L=d.children,{patchFlag:H,shapeFlag:G}=d;if(H>0){if(H&128){sn(T,L,y,C,w,E,I,O,A);return}else if(H&256){he(T,L,y,C,w,E,I,O,A);return}}G&8?(k&16&&Pt(T,w,E),L!==T&&a(y,L)):k&16?G&16?sn(T,L,y,C,w,E,I,O,A):Pt(T,w,E,!0):(k&8&&a(y,""),G&16&&D(L,y,C,w,E,I,O,A))},he=(f,d,y,C,w,E,I,O,A)=>{f=f||Ct,d=d||Ct;const T=f.length,k=d.length,L=Math.min(T,k);let H;for(H=0;Hk?Pt(f,w,E,!0,!1,L):D(d,y,C,w,E,I,O,A,L)},sn=(f,d,y,C,w,E,I,O,A)=>{let T=0;const k=d.length;let L=f.length-1,H=k-1;for(;T<=L&&T<=H;){const G=f[T],X=d[T]=A?et(d[T]):Me(d[T]);if(dt(G,X))S(G,X,y,null,w,E,I,O,A);else break;T++}for(;T<=L&&T<=H;){const G=f[L],X=d[H]=A?et(d[H]):Me(d[H]);if(dt(G,X))S(G,X,y,null,w,E,I,O,A);else break;L--,H--}if(T>L){if(T<=H){const G=H+1,X=GH)for(;T<=L;)$e(f[T],w,E,!0),T++;else{const G=T,X=T,te=new Map;for(T=X;T<=H;T++){const Te=d[T]=A?et(d[T]):Me(d[T]);Te.key!=null&&te.set(Te.key,T)}let J,xe=0;const pe=H-X+1;let Ie=!1,Ce=0;const Nt=new Array(pe);for(T=0;T=pe){$e(Te,w,E,!0);continue}let De;if(Te.key!=null)De=te.get(Te.key);else for(J=X;J<=H;J++)if(Nt[J-X]===0&&dt(Te,d[J])){De=J;break}De===void 0?$e(Te,w,E,!0):(Nt[De-X]=T+1,De>=Ce?Ce=De:Ie=!0,S(Te,d[De],y,null,w,E,I,O,A),xe++)}const us=Ie?Pc(Nt):Ct;for(J=us.length-1,T=pe-1;T>=0;T--){const Te=X+T,De=d[Te],ds=Te+1{const{el:E,type:I,transition:O,children:A,shapeFlag:T}=f;if(T&6){lt(f.component.subTree,d,y,C);return}if(T&128){f.suspense.move(d,y,C);return}if(T&64){I.move(f,d,y,bt);return}if(I===Se){r(E,d,y);for(let L=0;LO.enter(E),w);else{const{leave:L,delayLeave:H,afterLeave:G}=O,X=()=>r(E,d,y),te=()=>{L(E,()=>{X(),G&&G()})};H?H(E,X,te):te()}else r(E,d,y)},$e=(f,d,y,C=!1,w=!1)=>{const{type:E,props:I,ref:O,children:A,dynamicChildren:T,shapeFlag:k,patchFlag:L,dirs:H,cacheIndex:G}=f;if(L===-2&&(w=!1),O!=null&&In(O,null,y,f,!0),G!=null&&(d.renderCache[G]=void 0),k&256){d.ctx.deactivate(f);return}const X=k&1&&H,te=!gt(f);let J;if(te&&(J=I&&I.onVnodeBeforeUnmount)&&Oe(J,d,f),k&6)Yo(f.component,y,C);else{if(k&128){f.suspense.unmount(y,C);return}X&&Ve(f,null,d,"beforeUnmount"),k&64?f.type.remove(f,d,y,bt,C):T&&!T.hasOnce&&(E!==Se||L>0&&L&64)?Pt(T,d,y,!1,!0):(E===Se&&L&384||!w&&k&16)&&Pt(A,d,y),C&&as(f)}(te&&(J=I&&I.onVnodeUnmounted)||X)&&Ee(()=>{J&&Oe(J,d,f),X&&Ve(f,null,d,"unmounted")},y)},as=f=>{const{type:d,el:y,anchor:C,transition:w}=f;if(d===Se){Go(y,C);return}if(d===Ut){m(f);return}const E=()=>{s(y),w&&!w.persisted&&w.afterLeave&&w.afterLeave()};if(f.shapeFlag&1&&w&&!w.persisted){const{leave:I,delayLeave:O}=w,A=()=>I(y,E);O?O(f.el,E,A):A()}else E()},Go=(f,d)=>{let y;for(;f!==d;)y=g(f),s(f),f=y;s(d)},Yo=(f,d,y)=>{const{bum:C,scope:w,job:E,subTree:I,um:O,m:A,a:T}=f;Ls(A),Ls(T),C&&wn(C),w.stop(),E&&(E.flags|=8,$e(I,f,d,y)),O&&Ee(O,d),Ee(()=>{f.isUnmounted=!0},d),d&&d.pendingBranch&&!d.isUnmounted&&f.asyncDep&&!f.asyncResolved&&f.suspenseId===d.pendingId&&(d.deps--,d.deps===0&&d.resolve())},Pt=(f,d,y,C=!1,w=!1,E=0)=>{for(let I=E;I{if(f.shapeFlag&6)return on(f.component.subTree);if(f.shapeFlag&128)return f.suspense.next();const d=g(f.anchor||f.el),y=d&&d[Vi];return y?g(y):d};let Jn=!1;const fs=(f,d,y)=>{f==null?d._vnode&&$e(d._vnode,null,null,!0):S(d._vnode||null,f,d,null,null,null,y),d._vnode=f,Jn||(Jn=!0,_s(),On(),Jn=!1)},bt={p:S,um:$e,m:lt,r:as,mt:re,mc:D,pc:B,pbc:v,n:on,o:e};let Qn,Zn;return t&&([Qn,Zn]=t(bt)),{render:fs,hydrate:Qn,createApp:Ec(fs,Qn)}}function lr({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function ct({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function ho(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function rs(e,t,n=!1){const r=e.children,s=t.children;if(K(r)&&K(s))for(let i=0;i>1,e[n[l]]0&&(t[r]=n[i-1]),n[i]=r)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}function po(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:po(t)}function Ls(e){if(e)for(let t=0;tMt(Nc);function ss(e,t){return Gn(e,null,t)}function jf(e,t){return Gn(e,null,{flush:"post"})}function Be(e,t,n){return Gn(e,t,n)}function Gn(e,t,n=ee){const{immediate:r,deep:s,flush:i,once:o}=n,l=fe({},n);let c;if(rn)if(i==="sync"){const g=Fc();c=g.__watcherHandles||(g.__watcherHandles=[])}else if(!t||r)l.once=!0;else return{stop:Ue,resume:Ue,pause:Ue};const u=ue;l.call=(g,b,_)=>Fe(g,u,b,_);let a=!1;i==="post"?l.scheduler=g=>{Ee(g,u&&u.suspense)}:i!=="sync"&&(a=!0,l.scheduler=(g,b)=>{b?g():Wn(g)}),l.augmentJob=g=>{t&&(g.flags|=4),a&&(g.flags|=2,u&&(g.id=u.uid,g.i=u))};const h=kl(e,t,l);return c&&c.push(h),h}function Hc(e,t,n){const r=this.proxy,s=se(e)?e.includes(".")?go(r,e):()=>r[e]:e.bind(r,r);let i;q(t)?i=t:(i=t.handler,n=t);const o=nn(this),l=Gn(s,i.bind(r),n);return o(),l}function go(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;st==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Ne(t)}Modifiers`]||e[`${st(t)}Modifiers`];function Dc(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ee;let s=n;const i=t.startsWith("update:"),o=i&&$c(r,t.slice(7));o&&(o.trim&&(s=n.map(a=>se(a)?a.trim():a)),o.number&&(s=n.map(Sr)));let l,c=r[l=_n(t)]||r[l=_n(Ne(t))];!c&&i&&(c=r[l=_n(st(t))]),c&&Fe(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Fe(u,e,6,s)}}function mo(e,t,n=!1){const r=t.emitsCache,s=r.get(e);if(s!==void 0)return s;const i=e.emits;let o={},l=!1;if(!q(e)){const c=u=>{const a=mo(u,t,!0);a&&(l=!0,fe(o,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(ne(e)&&r.set(e,null),null):(K(i)?i.forEach(c=>o[c]=null):fe(o,i),ne(e)&&r.set(e,o),o)}function Yn(e,t){return!e||!Qt(t)?!1:(t=t.slice(2).replace(/Once$/,""),Q(e,t[0].toLowerCase()+t.slice(1))||Q(e,st(t))||Q(e,t))}function cr(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[i],slots:o,attrs:l,emit:c,render:u,renderCache:a,props:h,data:g,setupState:b,ctx:_,inheritAttrs:S}=e,V=Mn(e);let N,U;try{if(n.shapeFlag&4){const m=s||r,M=m;N=Me(u.call(M,m,a,h,b,g,_)),U=l}else{const m=t;N=Me(m.length>1?m(h,{attrs:l,slots:o,emit:c}):m(h,null)),U=t.props?l:jc(l)}}catch(m){Bt.length=0,en(m,e,1),N=le(ye)}let p=N;if(U&&S!==!1){const m=Object.keys(U),{shapeFlag:M}=p;m.length&&M&7&&(i&&m.some(Dr)&&(U=Vc(U,i)),p=nt(p,U,!1,!0))}return n.dirs&&(p=nt(p,null,!1,!0),p.dirs=p.dirs?p.dirs.concat(n.dirs):n.dirs),n.transition&&Yt(p,n.transition),N=p,Mn(V),N}const jc=e=>{let t;for(const n in e)(n==="class"||n==="style"||Qt(n))&&((t||(t={}))[n]=e[n]);return t},Vc=(e,t)=>{const n={};for(const r in e)(!Dr(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Uc(e,t,n){const{props:r,children:s,component:i}=e,{props:o,children:l,patchFlag:c}=t,u=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?Ps(r,o,u):!!o;if(c&8){const a=t.dynamicProps;for(let h=0;he.__isSuspense;function vo(e,t){t&&t.pendingBranch?K(e)?t.effects.push(...e):t.effects.push(e):ql(e)}const Se=Symbol.for("v-fgt"),mt=Symbol.for("v-txt"),ye=Symbol.for("v-cmt"),Ut=Symbol.for("v-stc"),Bt=[];let Ae=null;function Lr(e=!1){Bt.push(Ae=e?null:[])}function kc(){Bt.pop(),Ae=Bt[Bt.length-1]||null}let Xt=1;function Ns(e){Xt+=e,e<0&&Ae&&(Ae.hasOnce=!0)}function bo(e){return e.dynamicChildren=Xt>0?Ae||Ct:null,kc(),Xt>0&&Ae&&Ae.push(e),e}function Vf(e,t,n,r,s,i){return bo(wo(e,t,n,r,s,i,!0))}function Pr(e,t,n,r,s){return bo(le(e,t,n,r,s,!0))}function Pn(e){return e?e.__v_isVNode===!0:!1}function dt(e,t){return e.type===t.type&&e.key===t.key}const _o=({key:e})=>e??null,xn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?se(e)||ae(e)||q(e)?{i:de,r:e,k:t,f:!!n}:e:null);function wo(e,t=null,n=null,r=0,s=null,i=e===Se?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&_o(t),ref:t&&xn(t),scopeId:ji,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:de};return l?(is(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=se(n)?8:16),Xt>0&&!o&&Ae&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Ae.push(c),c}const le=Wc;function Wc(e,t=null,n=null,r=0,s=null,i=!1){if((!e||e===Ji)&&(e=ye),Pn(e)){const l=nt(e,t,!0);return n&&is(l,n),Xt>0&&!i&&Ae&&(l.shapeFlag&6?Ae[Ae.indexOf(e)]=l:Ae.push(l)),l.patchFlag=-2,l}if(ea(e)&&(e=e.__vccOpts),t){t=Kc(t);let{class:l,style:c}=t;l&&!se(l)&&(t.class=Br(l)),ne(c)&&(Xr(c)&&!K(c)&&(c=fe({},c)),t.style=Ur(c))}const o=se(e)?1:yo(e)?128:Ui(e)?64:ne(e)?4:q(e)?2:0;return wo(e,t,n,r,s,o,i,!0)}function Kc(e){return e?Xr(e)||so(e)?fe({},e):e:null}function nt(e,t,n=!1,r=!1){const{props:s,ref:i,patchFlag:o,children:l,transition:c}=e,u=t?qc(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&_o(u),ref:t&&t.ref?n&&i?K(i)?i.concat(xn(t)):[i,xn(t)]:xn(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Se?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&nt(e.ssContent),ssFallback:e.ssFallback&&nt(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&Yt(a,c.clone(a)),a}function So(e=" ",t=0){return le(mt,null,e,t)}function Uf(e,t){const n=le(Ut,null,e);return n.staticCount=t,n}function Bf(e="",t=!1){return t?(Lr(),Pr(ye,null,e)):le(ye,null,e)}function Me(e){return e==null||typeof e=="boolean"?le(ye):K(e)?le(Se,null,e.slice()):typeof e=="object"?et(e):le(mt,null,String(e))}function et(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:nt(e)}function is(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(K(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),is(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!so(t)?t._ctx=de:s===3&&de&&(de.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else q(t)?(t={default:t,_ctx:de},n=32):(t=String(t),r&64?(n=16,t=[So(t)]):n=8);e.children=t,e.shapeFlag|=n}function qc(...e){const t={};for(let n=0;nue||de;let Nn,Nr;{const e=gi(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),i=>{s.length>1?s.forEach(o=>o(i)):s[0](i)}};Nn=t("__VUE_INSTANCE_SETTERS__",n=>ue=n),Nr=t("__VUE_SSR_SETTERS__",n=>rn=n)}const nn=e=>{const t=ue;return Nn(e),e.scope.on(),()=>{e.scope.off(),Nn(t)}},Fs=()=>{ue&&ue.scope.off(),Nn(null)};function Eo(e){return e.vnode.shapeFlag&4}let rn=!1;function zc(e,t=!1,n=!1){t&&Nr(t);const{props:r,children:s}=e.vnode,i=Eo(e);Cc(e,r,i,t),Oc(e,s,n);const o=i?Jc(e,t):void 0;return t&&Nr(!1),o}function Jc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,gc);const{setup:r}=n;if(r){const s=e.setupContext=r.length>1?Co(e):null,i=nn(e);it();const o=Zt(r,e,0,[e.props,s]);if(ot(),i(),ui(o)){if(gt(e)||es(e),o.then(Fs,Fs),t)return o.then(l=>{Hs(e,l,t)}).catch(l=>{en(l,e,0)});e.asyncDep=o}else Hs(e,o,t)}else xo(e,t)}function Hs(e,t,n){q(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ne(t)&&(e.setupState=Fi(t)),xo(e,n)}let $s;function xo(e,t,n){const r=e.type;if(!e.render){if(!t&&$s&&!r.render){const s=r.template||ts(e).template;if(s){const{isCustomElement:i,compilerOptions:o}=e.appContext.config,{delimiters:l,compilerOptions:c}=r,u=fe(fe({isCustomElement:i,delimiters:l},o),c);r.render=$s(s,u)}}e.render=r.render||Ue}{const s=nn(e);it();try{yc(e)}finally{ot(),s()}}}const Qc={get(e,t){return ve(e,"get",""),e[t]}};function Co(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Qc),slots:e.slots,emit:e.emit,expose:t}}function zn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Fi(Sn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Vt)return Vt[n](e)},has(t,n){return n in t||n in Vt}})):e.proxy}function Zc(e,t=!0){return q(e)?e.displayName||e.name:e.name||t&&e.__name}function ea(e){return q(e)&&"__vccOpts"in e}const ie=(e,t)=>Ul(e,t,rn);function Fr(e,t,n){const r=arguments.length;return r===2?ne(t)&&!K(t)?Pn(t)?le(e,null,[t]):le(e,t):le(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Pn(n)&&(n=[n]),le(e,t,n))}const ta="3.5.3";/** -* @vue/runtime-dom v3.5.3 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let Hr;const Ds=typeof window<"u"&&window.trustedTypes;if(Ds)try{Hr=Ds.createPolicy("vue",{createHTML:e=>e})}catch{}const To=Hr?e=>Hr.createHTML(e):e=>e,na="http://www.w3.org/2000/svg",ra="http://www.w3.org/1998/Math/MathML",Ke=typeof document<"u"?document:null,js=Ke&&Ke.createElement("template"),sa={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?Ke.createElementNS(na,e):t==="mathml"?Ke.createElementNS(ra,e):n?Ke.createElement(e,{is:n}):Ke.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>Ke.createTextNode(e),createComment:e=>Ke.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ke.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,i){const o=n?n.previousSibling:t.lastChild;if(s&&(s===i||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===i||!(s=s.nextSibling)););else{js.innerHTML=To(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=js.content;if(r==="svg"||r==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},ze="transition",Ht="animation",zt=Symbol("_vtc"),Ao={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},ia=fe({},ki,Ao),oa=e=>(e.displayName="Transition",e.props=ia,e),kf=oa((e,{slots:t})=>Fr(Zl,la(e),t)),at=(e,t=[])=>{K(e)?e.forEach(n=>n(...t)):e&&e(...t)},Vs=e=>e?K(e)?e.some(t=>t.length>1):e.length>1:!1;function la(e){const t={};for(const x in e)x in Ao||(t[x]=e[x]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:i=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:u=o,appearToClass:a=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:g=`${n}-leave-active`,leaveToClass:b=`${n}-leave-to`}=e,_=ca(s),S=_&&_[0],V=_&&_[1],{onBeforeEnter:N,onEnter:U,onEnterCancelled:p,onLeave:m,onLeaveCancelled:M,onBeforeAppear:F=N,onAppear:$=U,onAppearCancelled:D=p}=t,R=(x,W,re)=>{ft(x,W?a:l),ft(x,W?u:o),re&&re()},v=(x,W)=>{x._isLeaving=!1,ft(x,h),ft(x,b),ft(x,g),W&&W()},P=x=>(W,re)=>{const ce=x?$:U,j=()=>R(W,x,re);at(ce,[W,j]),Us(()=>{ft(W,x?c:i),Je(W,x?a:l),Vs(ce)||Bs(W,r,S,j)})};return fe(t,{onBeforeEnter(x){at(N,[x]),Je(x,i),Je(x,o)},onBeforeAppear(x){at(F,[x]),Je(x,c),Je(x,u)},onEnter:P(!1),onAppear:P(!0),onLeave(x,W){x._isLeaving=!0;const re=()=>v(x,W);Je(x,h),Je(x,g),ua(),Us(()=>{x._isLeaving&&(ft(x,h),Je(x,b),Vs(m)||Bs(x,r,V,re))}),at(m,[x,re])},onEnterCancelled(x){R(x,!1),at(p,[x])},onAppearCancelled(x){R(x,!0),at(D,[x])},onLeaveCancelled(x){v(x),at(M,[x])}})}function ca(e){if(e==null)return null;if(ne(e))return[ar(e.enter),ar(e.leave)];{const t=ar(e);return[t,t]}}function ar(e){return el(e)}function Je(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[zt]||(e[zt]=new Set)).add(t)}function ft(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[zt];n&&(n.delete(t),n.size||(e[zt]=void 0))}function Us(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let aa=0;function Bs(e,t,n,r){const s=e._endId=++aa,i=()=>{s===e._endId&&r()};if(n)return setTimeout(i,n);const{type:o,timeout:l,propCount:c}=fa(e,t);if(!o)return r();const u=o+"end";let a=0;const h=()=>{e.removeEventListener(u,g),i()},g=b=>{b.target===e&&++a>=c&&h()};setTimeout(()=>{a(n[_]||"").split(", "),s=r(`${ze}Delay`),i=r(`${ze}Duration`),o=ks(s,i),l=r(`${Ht}Delay`),c=r(`${Ht}Duration`),u=ks(l,c);let a=null,h=0,g=0;t===ze?o>0&&(a=ze,h=o,g=i.length):t===Ht?u>0&&(a=Ht,h=u,g=c.length):(h=Math.max(o,u),a=h>0?o>u?ze:Ht:null,g=a?a===ze?i.length:c.length:0);const b=a===ze&&/\b(transform|all)(,|$)/.test(r(`${ze}Property`).toString());return{type:a,timeout:h,propCount:g,hasTransform:b}}function ks(e,t){for(;e.lengthWs(n)+Ws(e[r])))}function Ws(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function ua(){return document.body.offsetHeight}function da(e,t,n){const r=e[zt];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Ks=Symbol("_vod"),ha=Symbol("_vsh"),pa=Symbol(""),ga=/(^|;)\s*display\s*:/;function ma(e,t,n){const r=e.style,s=se(n);let i=!1;if(n&&!s){if(t)if(se(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();n[l]==null&&Cn(r,l,"")}else for(const o in t)n[o]==null&&Cn(r,o,"");for(const o in n)o==="display"&&(i=!0),Cn(r,o,n[o])}else if(s){if(t!==n){const o=r[pa];o&&(n+=";"+o),r.cssText=n,i=ga.test(n)}}else t&&e.removeAttribute("style");Ks in e&&(e[Ks]=i?r.display:"",e[ha]&&(r.display="none"))}const qs=/\s*!important$/;function Cn(e,t,n){if(K(n))n.forEach(r=>Cn(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=ya(e,t);qs.test(n)?e.setProperty(st(r),n.replace(qs,""),"important"):e[r]=n}}const Gs=["Webkit","Moz","ms"],fr={};function ya(e,t){const n=fr[t];if(n)return n;let r=Ne(t);if(r!=="filter"&&r in e)return fr[t]=r;r=$n(r);for(let s=0;sur||(Sa.then(()=>ur=0),ur=Date.now());function xa(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Fe(Ca(r,n.value),t,5,[r])};return n.value=e,n.attached=Ea(),n}function Ca(e,t){if(K(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const Qs=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Ta=(e,t,n,r,s,i)=>{const o=s==="svg";t==="class"?da(e,r,o):t==="style"?ma(e,n,r):Qt(t)?Dr(t)||_a(e,t,n,r,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Aa(e,t,r,o))?(va(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Xs(e,t,r,o,i,t!=="value")):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Xs(e,t,r,o))};function Aa(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Qs(t)&&q(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Qs(t)&&se(n)?!1:!!(t in e||e._isVueCE&&(/[A-Z]/.test(t)||!se(n)))}const Zs=e=>{const t=e.props["onUpdate:modelValue"]||!1;return K(t)?n=>wn(t,n):t};function Ra(e){e.target.composing=!0}function ei(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const dr=Symbol("_assign"),Wf={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[dr]=Zs(s);const i=r||s.props&&s.props.type==="number";Et(e,t?"change":"input",o=>{if(o.target.composing)return;let l=e.value;n&&(l=l.trim()),i&&(l=Sr(l)),e[dr](l)}),n&&Et(e,"change",()=>{e.value=e.value.trim()}),t||(Et(e,"compositionstart",Ra),Et(e,"compositionend",ei),Et(e,"change",ei))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:i}},o){if(e[dr]=Zs(o),e.composing)return;const l=(i||e.type==="number")&&!/^0\d/.test(e.value)?Sr(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},Oa=["ctrl","shift","alt","meta"],Ma={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Oa.some(n=>e[`${n}Key`]&&!t.includes(n))},Kf=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(s,...i)=>{for(let o=0;o{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=s=>{if(!("key"in s))return;const i=st(s.key);if(t.some(o=>o===i||Ia[o]===i))return e(s)})},Ro=fe({patchProp:Ta},sa);let kt,ti=!1;function La(){return kt||(kt=Ic(Ro))}function Pa(){return kt=ti?kt:Lc(Ro),ti=!0,kt}const Gf=(...e)=>{const t=La().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Mo(r);if(!s)return;const i=t._component;!q(i)&&!i.render&&!i.template&&(i.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const o=n(s,!1,Oo(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),o},t},Yf=(...e)=>{const t=Pa().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Mo(r);if(s)return n(s,!0,Oo(s))},t};function Oo(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Mo(e){return se(e)?document.querySelector(e):e}const Xf=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},Na=window.__VP_SITE_DATA__;function os(e){return bi()?(al(e),!0):!1}function ke(e){return typeof e=="function"?e():Ni(e)}const Io=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const zf=e=>e!=null,Fa=Object.prototype.toString,Ha=e=>Fa.call(e)==="[object Object]",Jt=()=>{},ni=$a();function $a(){var e,t;return Io&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function Da(e,t){function n(...r){return new Promise((s,i)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(s).catch(i)})}return n}const Lo=e=>e();function ja(e,t={}){let n,r,s=Jt;const i=l=>{clearTimeout(l),s(),s=Jt};return l=>{const c=ke(e),u=ke(t.maxWait);return n&&i(n),c<=0||u!==void 0&&u<=0?(r&&(i(r),r=null),Promise.resolve(l())):new Promise((a,h)=>{s=t.rejectOnCancel?h:a,u&&!r&&(r=setTimeout(()=>{n&&i(n),r=null,a(l())},u)),n=setTimeout(()=>{r&&i(r),r=null,a(l())},c)})}}function Va(e=Lo){const t=oe(!0);function n(){t.value=!1}function r(){t.value=!0}const s=(...i)=>{t.value&&e(...i)};return{isActive:Bn(t),pause:n,resume:r,eventFilter:s}}function Ua(e){return Xn()}function Po(...e){if(e.length!==1)return Dl(...e);const t=e[0];return typeof t=="function"?Bn(Fl(()=>({get:t,set:Jt}))):oe(t)}function No(e,t,n={}){const{eventFilter:r=Lo,...s}=n;return Be(e,Da(r,t),s)}function Ba(e,t,n={}){const{eventFilter:r,...s}=n,{eventFilter:i,pause:o,resume:l,isActive:c}=Va(r);return{stop:No(e,t,{...s,eventFilter:i}),pause:o,resume:l,isActive:c}}function ls(e,t=!0,n){Ua()?Lt(e,n):t?e():kn(e)}function Jf(e,t,n={}){const{debounce:r=0,maxWait:s=void 0,...i}=n;return No(e,t,{...i,eventFilter:ja(r,{maxWait:s})})}function Qf(e,t,n){let r;ae(n)?r={evaluating:n}:r={};const{lazy:s=!1,evaluating:i=void 0,shallow:o=!0,onError:l=Jt}=r,c=oe(!s),u=o?Jr(t):oe(t);let a=0;return ss(async h=>{if(!c.value)return;a++;const g=a;let b=!1;i&&Promise.resolve().then(()=>{i.value=!0});try{const _=await e(S=>{h(()=>{i&&(i.value=!1),b||S()})});g===a&&(u.value=_)}catch(_){l(_)}finally{i&&g===a&&(i.value=!1),b=!0}}),s?ie(()=>(c.value=!0,u.value)):u}function Fo(e){var t;const n=ke(e);return(t=n==null?void 0:n.$el)!=null?t:n}const He=Io?window:void 0;function It(...e){let t,n,r,s;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,s]=e,t=He):[t,n,r,s]=e,!t)return Jt;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const i=[],o=()=>{i.forEach(a=>a()),i.length=0},l=(a,h,g,b)=>(a.addEventListener(h,g,b),()=>a.removeEventListener(h,g,b)),c=Be(()=>[Fo(t),ke(s)],([a,h])=>{if(o(),!a)return;const g=Ha(h)?{...h}:h;i.push(...n.flatMap(b=>r.map(_=>l(a,b,_,g))))},{immediate:!0,flush:"post"}),u=()=>{c(),o()};return os(u),u}function ka(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function Zf(...e){let t,n,r={};e.length===3?(t=e[0],n=e[1],r=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],r=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:s=He,eventName:i="keydown",passive:o=!1,dedupe:l=!1}=r,c=ka(t);return It(s,i,a=>{a.repeat&&ke(l)||c(a)&&n(a)},o)}function Wa(){const e=oe(!1),t=Xn();return t&&Lt(()=>{e.value=!0},t),e}function Ka(e){const t=Wa();return ie(()=>(t.value,!!e()))}function Ho(e,t={}){const{window:n=He}=t,r=Ka(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let s;const i=oe(!1),o=u=>{i.value=u.matches},l=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",o):s.removeListener(o))},c=ss(()=>{r.value&&(l(),s=n.matchMedia(ke(e)),"addEventListener"in s?s.addEventListener("change",o):s.addListener(o),i.value=s.matches)});return os(()=>{c(),l(),s=void 0}),i}const yn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},vn="__vueuse_ssr_handlers__",qa=Ga();function Ga(){return vn in yn||(yn[vn]=yn[vn]||{}),yn[vn]}function $o(e,t){return qa[e]||t}function Ya(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const Xa={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},ri="vueuse-storage";function cs(e,t,n,r={}){var s;const{flush:i="pre",deep:o=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:u=!1,shallow:a,window:h=He,eventFilter:g,onError:b=v=>{console.error(v)},initOnMounted:_}=r,S=(a?Jr:oe)(typeof t=="function"?t():t);if(!n)try{n=$o("getDefaultStorage",()=>{var v;return(v=He)==null?void 0:v.localStorage})()}catch(v){b(v)}if(!n)return S;const V=ke(t),N=Ya(V),U=(s=r.serializer)!=null?s:Xa[N],{pause:p,resume:m}=Ba(S,()=>F(S.value),{flush:i,deep:o,eventFilter:g});h&&l&&ls(()=>{n instanceof Storage?It(h,"storage",D):It(h,ri,R),_&&D()}),_||D();function M(v,P){if(h){const x={key:e,oldValue:v,newValue:P,storageArea:n};h.dispatchEvent(n instanceof Storage?new StorageEvent("storage",x):new CustomEvent(ri,{detail:x}))}}function F(v){try{const P=n.getItem(e);if(v==null)M(P,null),n.removeItem(e);else{const x=U.write(v);P!==x&&(n.setItem(e,x),M(P,x))}}catch(P){b(P)}}function $(v){const P=v?v.newValue:n.getItem(e);if(P==null)return c&&V!=null&&n.setItem(e,U.write(V)),V;if(!v&&u){const x=U.read(P);return typeof u=="function"?u(x,V):N==="object"&&!Array.isArray(x)?{...V,...x}:x}else return typeof P!="string"?P:U.read(P)}function D(v){if(!(v&&v.storageArea!==n)){if(v&&v.key==null){S.value=V;return}if(!(v&&v.key!==e)){p();try{(v==null?void 0:v.newValue)!==U.write(S.value)&&(S.value=$(v))}catch(P){b(P)}finally{v?kn(m):m()}}}}function R(v){D(v.detail)}return S}function Do(e){return Ho("(prefers-color-scheme: dark)",e)}const za="*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function Ja(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:s=He,storage:i,storageKey:o="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:u,disableTransition:a=!0}=e,h={auto:"",light:"light",dark:"dark",...e.modes||{}},g=Do({window:s}),b=ie(()=>g.value?"dark":"light"),_=c||(o==null?Po(r):cs(o,r,i,{window:s,listenToStorageChanges:l})),S=ie(()=>_.value==="auto"?b.value:_.value),V=$o("updateHTMLAttrs",(m,M,F)=>{const $=typeof m=="string"?s==null?void 0:s.document.querySelector(m):Fo(m);if(!$)return;const D=new Set,R=new Set;let v=null;if(M==="class"){const x=F.split(/\s/g);Object.values(h).flatMap(W=>(W||"").split(/\s/g)).filter(Boolean).forEach(W=>{x.includes(W)?D.add(W):R.add(W)})}else v={key:M,value:F};if(D.size===0&&R.size===0&&v===null)return;let P;a&&(P=s.document.createElement("style"),P.appendChild(document.createTextNode(za)),s.document.head.appendChild(P));for(const x of D)$.classList.add(x);for(const x of R)$.classList.remove(x);v&&$.setAttribute(v.key,v.value),a&&(s.getComputedStyle(P).opacity,document.head.removeChild(P))});function N(m){var M;V(t,n,(M=h[m])!=null?M:m)}function U(m){e.onChanged?e.onChanged(m,N):N(m)}Be(S,U,{flush:"post",immediate:!0}),ls(()=>U(S.value));const p=ie({get(){return u?_.value:S.value},set(m){_.value=m}});try{return Object.assign(p,{store:_,system:b,state:S})}catch{return p}}function Qa(e={}){const{valueDark:t="dark",valueLight:n="",window:r=He}=e,s=Ja({...e,onChanged:(l,c)=>{var u;e.onChanged?(u=e.onChanged)==null||u.call(e,l==="dark",c,l):c(l)},modes:{dark:t,light:n}}),i=ie(()=>s.system?s.system.value:Do({window:r}).value?"dark":"light");return ie({get(){return s.value==="dark"},set(l){const c=l?"dark":"light";i.value===c?s.value="auto":s.value=c}})}function hr(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function eu(e,t,n={}){const{window:r=He}=n;return cs(e,t,r==null?void 0:r.localStorage,n)}function jo(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const pr=new WeakMap;function tu(e,t=!1){const n=oe(t);let r=null,s="";Be(Po(e),l=>{const c=hr(ke(l));if(c){const u=c;if(pr.get(u)||pr.set(u,u.style.overflow),u.style.overflow!=="hidden"&&(s=u.style.overflow),u.style.overflow==="hidden")return n.value=!0;if(n.value)return u.style.overflow="hidden"}},{immediate:!0});const i=()=>{const l=hr(ke(e));!l||n.value||(ni&&(r=It(l,"touchmove",c=>{Za(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},o=()=>{const l=hr(ke(e));!l||!n.value||(ni&&(r==null||r()),l.style.overflow=s,pr.delete(l),n.value=!1)};return os(o),ie({get(){return n.value},set(l){l?i():o()}})}function nu(e,t,n={}){const{window:r=He}=n;return cs(e,t,r==null?void 0:r.sessionStorage,n)}function ru(e={}){const{window:t=He,behavior:n="auto"}=e;if(!t)return{x:oe(0),y:oe(0)};const r=oe(t.scrollX),s=oe(t.scrollY),i=ie({get(){return r.value},set(l){scrollTo({left:l,behavior:n})}}),o=ie({get(){return s.value},set(l){scrollTo({top:l,behavior:n})}});return It(t,"scroll",()=>{r.value=t.scrollX,s.value=t.scrollY},{capture:!1,passive:!0}),{x:i,y:o}}function su(e={}){const{window:t=He,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:r=Number.POSITIVE_INFINITY,listenOrientation:s=!0,includeScrollbar:i=!0,type:o="inner"}=e,l=oe(n),c=oe(r),u=()=>{t&&(o==="outer"?(l.value=t.outerWidth,c.value=t.outerHeight):i?(l.value=t.innerWidth,c.value=t.innerHeight):(l.value=t.document.documentElement.clientWidth,c.value=t.document.documentElement.clientHeight))};if(u(),ls(u),It("resize",u,{passive:!0}),s){const a=Ho("(orientation: portrait)");Be(a,()=>u())}return{width:l,height:c}}const gr={BASE_URL:"/GeometryOps.jl/dev/",DEV:!1,MODE:"production",PROD:!0,SSR:!1};var mr={};const Vo=/^(?:[a-z]+:|\/\/)/i,ef="vitepress-theme-appearance",tf=/#.*$/,nf=/[?#].*$/,rf=/(?:(^|\/)index)?\.(?:md|html)$/,ge=typeof document<"u",Uo={relativePath:"404.md",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function sf(e,t,n=!1){if(t===void 0)return!1;if(e=si(`/${e}`),n)return new RegExp(t).test(e);if(si(t)!==e)return!1;const r=t.match(tf);return r?(ge?location.hash:"")===r[0]:!0}function si(e){return decodeURI(e).replace(nf,"").replace(rf,"$1")}function of(e){return Vo.test(e)}function lf(e,t){return Object.keys((e==null?void 0:e.locales)||{}).find(n=>n!=="root"&&!of(n)&&sf(t,`/${n}/`,!0))||"root"}function cf(e,t){var r,s,i,o,l,c,u;const n=lf(e,t);return Object.assign({},e,{localeIndex:n,lang:((r=e.locales[n])==null?void 0:r.lang)??e.lang,dir:((s=e.locales[n])==null?void 0:s.dir)??e.dir,title:((i=e.locales[n])==null?void 0:i.title)??e.title,titleTemplate:((o=e.locales[n])==null?void 0:o.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:ko(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(u=e.locales[n])==null?void 0:u.themeConfig}})}function Bo(e,t){const n=t.title||e.title,r=t.titleTemplate??e.titleTemplate;if(typeof r=="string"&&r.includes(":title"))return r.replace(/:title/g,n);const s=af(e.title,r);return n===s.slice(3)?n:`${n}${s}`}function af(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function ff(e,t){const[n,r]=t;if(n!=="meta")return!1;const s=Object.entries(r)[0];return s==null?!1:e.some(([i,o])=>i===n&&o[s[0]]===s[1])}function ko(e,t){return[...e.filter(n=>!ff(t,n)),...t]}const uf=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,df=/^[a-z]:/i;function ii(e){const t=df.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(uf,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const yr=new Set;function hf(e){if(yr.size===0){const n=typeof process=="object"&&(mr==null?void 0:mr.VITE_EXTRA_EXTENSIONS)||(gr==null?void 0:gr.VITE_EXTRA_EXTENSIONS)||"";("3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,yaml,yml,zip"+(n&&typeof n=="string"?","+n:"")).split(",").forEach(r=>yr.add(r))}const t=e.split(".").pop();return t==null||!yr.has(t.toLowerCase())}function iu(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const pf=Symbol(),yt=Jr(Na);function ou(e){const t=ie(()=>cf(yt.value,e.data.relativePath)),n=t.value.appearance,r=n==="force-dark"?oe(!0):n?Qa({storageKey:ef,initialValue:()=>n==="dark"?"dark":"auto",...typeof n=="object"?n:{}}):oe(!1),s=oe(ge?location.hash:"");return ge&&window.addEventListener("hashchange",()=>{s.value=location.hash}),Be(()=>e.data,()=>{s.value=ge?location.hash:""}),{site:t,theme:ie(()=>t.value.themeConfig),page:ie(()=>e.data),frontmatter:ie(()=>e.data.frontmatter),params:ie(()=>e.data.params),lang:ie(()=>t.value.lang),dir:ie(()=>e.data.frontmatter.dir||t.value.dir),localeIndex:ie(()=>t.value.localeIndex||"root"),title:ie(()=>Bo(t.value,e.data)),description:ie(()=>e.data.description||t.value.description),isDark:r,hash:ie(()=>s.value)}}function gf(){const e=Mt(pf);if(!e)throw new Error("vitepress data not properly injected in app");return e}function mf(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function oi(e){return Vo.test(e)||!e.startsWith("/")?e:mf(yt.value.base,e)}function yf(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),ge){const n="/GeometryOps.jl/dev/";t=ii(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let r=__VP_HASH_MAP__[t.toLowerCase()];if(r||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",r=__VP_HASH_MAP__[t.toLowerCase()]),!r)return null;t=`${n}assets/${t}.${r}.js`}else t=`./${ii(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let Tn=[];function lu(e){Tn.push(e),qn(()=>{Tn=Tn.filter(t=>t!==e)})}function vf(){let e=yt.value.scrollOffset,t=0,n=24;if(typeof e=="object"&&"padding"in e&&(n=e.padding,e=e.selector),typeof e=="number")t=e;else if(typeof e=="string")t=li(e,n);else if(Array.isArray(e))for(const r of e){const s=li(r,n);if(s){t=s;break}}return t}function li(e,t){const n=document.querySelector(e);if(!n)return 0;const r=n.getBoundingClientRect().bottom;return r<0?0:r+t}const bf=Symbol(),Wo="http://a.com",_f=()=>({path:"/",component:null,data:Uo});function cu(e,t){const n=Un(_f()),r={route:n,go:s};async function s(l=ge?location.href:"/"){var c,u;l=vr(l),await((c=r.onBeforeRouteChange)==null?void 0:c.call(r,l))!==!1&&(ge&&l!==vr(location.href)&&(history.replaceState({scrollPosition:window.scrollY},""),history.pushState({},"",l)),await o(l),await((u=r.onAfterRouteChanged)==null?void 0:u.call(r,l)))}let i=null;async function o(l,c=0,u=!1){var g;if(await((g=r.onBeforePageLoad)==null?void 0:g.call(r,l))===!1)return;const a=new URL(l,Wo),h=i=a.pathname;try{let b=await e(h);if(!b)throw new Error(`Page not found: ${h}`);if(i===h){i=null;const{default:_,__pageData:S}=b;if(!_)throw new Error(`Invalid route component: ${_}`);n.path=ge?h:oi(h),n.component=Sn(_),n.data=Sn(S),ge&&kn(()=>{let V=yt.value.base+S.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!yt.value.cleanUrls&&!V.endsWith("/")&&(V+=".html"),V!==a.pathname&&(a.pathname=V,l=V+a.search+a.hash,history.replaceState({},"",l)),a.hash&&!c){let N=null;try{N=document.getElementById(decodeURIComponent(a.hash).slice(1))}catch(U){console.warn(U)}if(N){ci(N,a.hash);return}}window.scrollTo(0,c)})}}catch(b){if(!/fetch|Page not found/.test(b.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(b),!u)try{const _=await fetch(yt.value.base+"hashmap.json");window.__VP_HASH_MAP__=await _.json(),await o(l,c,!0);return}catch{}if(i===h){i=null,n.path=ge?h:oi(h),n.component=t?Sn(t):null;const _=ge?h.replace(/(^|\/)$/,"$1index").replace(/(\.html)?$/,".md").replace(/^\//,""):"404.md";n.data={...Uo,relativePath:_}}}}return ge&&(history.state===null&&history.replaceState({},""),window.addEventListener("click",l=>{if(l.defaultPrevented||!(l.target instanceof Element)||l.target.closest("button")||l.button!==0||l.ctrlKey||l.shiftKey||l.altKey||l.metaKey)return;const c=l.target.closest("a");if(!c||c.closest(".vp-raw")||c.hasAttribute("download")||c.hasAttribute("target"))return;const u=c.getAttribute("href")??(c instanceof SVGAElement?c.getAttribute("xlink:href"):null);if(u==null)return;const{href:a,origin:h,pathname:g,hash:b,search:_}=new URL(u,c.baseURI),S=new URL(location.href);h===S.origin&&hf(g)&&(l.preventDefault(),g===S.pathname&&_===S.search?(b!==S.hash&&(history.pushState({},"",a),window.dispatchEvent(new HashChangeEvent("hashchange",{oldURL:S.href,newURL:a}))),b?ci(c,b,c.classList.contains("header-anchor")):window.scrollTo(0,0)):s(a))},{capture:!0}),window.addEventListener("popstate",async l=>{var c;l.state!==null&&(await o(vr(location.href),l.state&&l.state.scrollPosition||0),(c=r.onAfterRouteChanged)==null||c.call(r,location.href))}),window.addEventListener("hashchange",l=>{l.preventDefault()})),r}function wf(){const e=Mt(bf);if(!e)throw new Error("useRouter() is called without provider.");return e}function Ko(){return wf().route}function ci(e,t,n=!1){let r=null;try{r=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(s){console.warn(s)}if(r){let s=function(){!n||Math.abs(o-window.scrollY)>window.innerHeight?window.scrollTo(0,o):window.scrollTo({left:0,top:o,behavior:"smooth"})};const i=parseInt(window.getComputedStyle(r).paddingTop,10),o=window.scrollY+r.getBoundingClientRect().top-vf()+i;requestAnimationFrame(s)}}function vr(e){const t=new URL(e,Wo);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),yt.value.cleanUrls?t.pathname=t.pathname.replace(/\.html$/,""):!t.pathname.endsWith("/")&&!t.pathname.endsWith(".html")&&(t.pathname+=".html"),t.pathname+t.search+t.hash}const br=()=>Tn.forEach(e=>e()),au=Zr({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=Ko(),{site:n}=gf();return()=>Fr(e.as,n.value.contentProps??{style:{position:"relative"}},[t.component?Fr(t.component,{onVnodeMounted:br,onVnodeUpdated:br,onVnodeUnmounted:br}):"404 Page Not Found"])}}),Sf="modulepreload",Ef=function(e){return"/GeometryOps.jl/dev/"+e},ai={},fu=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),o=(i==null?void 0:i.nonce)||(i==null?void 0:i.getAttribute("nonce"));s=Promise.all(n.map(l=>{if(l=Ef(l),l in ai)return;ai[l]=!0;const c=l.endsWith(".css"),u=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${u}`))return;const a=document.createElement("link");if(a.rel=c?"stylesheet":Sf,c||(a.as="script"),a.crossOrigin="",a.href=l,o&&a.setAttribute("nonce",o),document.head.appendChild(a),c)return new Promise((h,g)=>{a.addEventListener("load",h),a.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${l}`)))})}))}return s.then(()=>t()).catch(i=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=i,window.dispatchEvent(o),!o.defaultPrevented)throw i})},uu=Zr({setup(e,{slots:t}){const n=oe(!1);return Lt(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function du(){ge&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const r=(n=t.parentElement)==null?void 0:n.parentElement;if(!r)return;const s=Array.from(r.querySelectorAll("input")).indexOf(t);if(s<0)return;const i=r.querySelector(".blocks");if(!i)return;const o=Array.from(i.children).find(u=>u.classList.contains("active"));if(!o)return;const l=i.children[s];if(!l||o===l)return;o.classList.remove("active"),l.classList.add("active");const c=r==null?void 0:r.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function hu(){if(ge){const e=new WeakMap;window.addEventListener("click",t=>{var r;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const s=n.parentElement,i=(r=n.nextElementSibling)==null?void 0:r.nextElementSibling;if(!s||!i)return;const o=/language-(shellscript|shell|bash|sh|zsh)/.test(s.className),l=[".vp-copy-ignore",".diff.remove"],c=i.cloneNode(!0);c.querySelectorAll(l.join(",")).forEach(a=>a.remove());let u=c.textContent||"";o&&(u=u.replace(/^ *(\$|>) /gm,"").trim()),xf(u).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const a=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,a)})}})}}async function xf(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const r=document.getSelection(),s=r?r.rangeCount>0&&r.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),s&&(r.removeAllRanges(),r.addRange(s)),n&&n.focus()}}function pu(e,t){let n=!0,r=[];const s=i=>{if(n){n=!1,i.forEach(l=>{const c=_r(l);for(const u of document.head.children)if(u.isEqualNode(c)){r.push(u);return}});return}const o=i.map(_r);r.forEach((l,c)=>{const u=o.findIndex(a=>a==null?void 0:a.isEqualNode(l??null));u!==-1?delete o[u]:(l==null||l.remove(),delete r[c])}),o.forEach(l=>l&&document.head.appendChild(l)),r=[...r,...o].filter(Boolean)};ss(()=>{const i=e.data,o=t.value,l=i&&i.description,c=i&&i.frontmatter.head||[],u=Bo(o,i);u!==document.title&&(document.title=u);const a=l||o.description;let h=document.querySelector("meta[name=description]");h?h.getAttribute("content")!==a&&h.setAttribute("content",a):_r(["meta",{name:"description",content:a}]),s(ko(o.head,Tf(c)))})}function _r([e,t,n]){const r=document.createElement(e);for(const s in t)r.setAttribute(s,t[s]);return n&&(r.innerHTML=n),e==="script"&&!t.async&&(r.async=!1),r}function Cf(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function Tf(e){return e.filter(t=>!Cf(t))}const wr=new Set,qo=()=>document.createElement("link"),Af=e=>{const t=qo();t.rel="prefetch",t.href=e,document.head.appendChild(t)},Rf=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let bn;const Of=ge&&(bn=qo())&&bn.relList&&bn.relList.supports&&bn.relList.supports("prefetch")?Af:Rf;function gu(){if(!ge||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const r=()=>{n&&n.disconnect(),n=new IntersectionObserver(i=>{i.forEach(o=>{if(o.isIntersecting){const l=o.target;n.unobserve(l);const{pathname:c}=l;if(!wr.has(c)){wr.add(c);const u=yf(c);u&&Of(u)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{hostname:o,pathname:l}=new URL(i.href instanceof SVGAnimatedString?i.href.animVal:i.href,i.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||i.target!=="_blank"&&o===location.hostname&&(l!==location.pathname?n.observe(i):wr.add(l))})})};Lt(r);const s=Ko();Be(()=>s.path,r),qn(()=>{n&&n.disconnect()})}export{Xi as $,vf as A,Pf as B,Ff as C,Jr as D,lu as E,Se as F,le as G,Nf as H,Vo as I,Ko as J,qc as K,Mt as L,su as M,Ur as N,Zf as O,kn as P,ru as Q,ge as R,Bn as S,kf as T,Lf as U,fu as V,tu as W,xc as X,qf as Y,$f as Z,Xf as _,So as a,Kf as a0,Df as a1,Un as a2,Dl as a3,Fr as a4,Uf as a5,pu as a6,bf as a7,ou as a8,pf as a9,au as aa,uu as ab,yt as ac,Yf as ad,cu as ae,yf as af,gu as ag,hu as ah,du as ai,ke as aj,Fo as ak,zf as al,os as am,Qf as an,nu as ao,eu as ap,Jf as aq,wf as ar,It as as,Mf as at,Wf as au,ae as av,If as aw,Sn as ax,Gf as ay,iu as az,Pr as b,Vf as c,Zr as d,Bf as e,hf as f,oi as g,ie as h,of as i,wo as j,Ni as k,sf as l,Ho as m,Br as n,Lr as o,oe as p,Be as q,Hf as r,ss as s,ll as t,gf as u,Lt as v,Gl as w,qn as x,jf as y,fc as z}; diff --git a/dev/assets/chunks/theme.C-Lfz_wz.js b/dev/assets/chunks/theme.DZANPkyA.js similarity index 99% rename from dev/assets/chunks/theme.C-Lfz_wz.js rename to dev/assets/chunks/theme.DZANPkyA.js index 01211de21..bc334e7a5 100644 --- a/dev/assets/chunks/theme.C-Lfz_wz.js +++ b/dev/assets/chunks/theme.DZANPkyA.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.LH27nImM.js","assets/chunks/framework.B9oBnxE7.js"])))=>i.map(i=>d[i]); -import{d as m,o as a,c as u,r as c,n as I,a as O,t as w,b as g,w as f,e as h,T as de,_ as $,u as je,i as Ge,f as ze,g as ve,h as y,j as p,k as r,l as K,m as re,p as T,q as F,s as Z,v as z,x as pe,y as fe,z as Ke,A as Re,B as R,F as M,C as B,D as Ve,E as x,G as k,H as E,I as Le,J as ee,K as G,L as q,M as We,N as Te,O as ie,P as Ne,Q as we,R as te,S as qe,U as Je,V as Ye,W as Ie,X as he,Y as Xe,Z as Qe,$ as Ze,a0 as xe,a1 as Me,a2 as et,a3 as tt,a4 as nt}from"./framework.B9oBnxE7.js";const st=m({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(a(),u("span",{class:I(["VPBadge",e.type])},[c(e.$slots,"default",{},()=>[O(w(e.text),1)])],2))}}),ot={key:0,class:"VPBackdrop"},at=m({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(a(),g(de,{name:"fade"},{default:f(()=>[e.show?(a(),u("div",ot)):h("",!0)]),_:1}))}}),rt=$(at,[["__scopeId","data-v-b06cdb19"]]),L=je;function it(o,e){let t,s=!1;return()=>{t&&clearTimeout(t),s?t=setTimeout(o,e):(o(),(s=!0)&&setTimeout(()=>s=!1,e))}}function le(o){return/^\//.test(o)?o:`/${o}`}function me(o){const{pathname:e,search:t,hash:s,protocol:n}=new URL(o,"http://a.com");if(Ge(o)||o.startsWith("#")||!n.startsWith("http")||!ze(e))return o;const{site:i}=L(),l=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,i.value.cleanUrls?"":".html")}${t}${s}`);return ve(l)}function Y({correspondingLink:o=!1}={}){const{site:e,localeIndex:t,page:s,theme:n,hash:i}=L(),l=y(()=>{var d,_;return{label:(d=e.value.locales[t.value])==null?void 0:d.label,link:((_=e.value.locales[t.value])==null?void 0:_.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:y(()=>Object.entries(e.value.locales).flatMap(([d,_])=>l.value.label===_.label?[]:{text:_.label,link:lt(_.link||(d==="root"?"/":`/${d}/`),n.value.i18nRouting!==!1&&o,s.value.relativePath.slice(l.value.link.length-1),!e.value.cleanUrls)+i.value})),currentLang:l}}function lt(o,e,t,s){return e?o.replace(/\/$/,"")+le(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,s?".html":"")):o}const ct={class:"NotFound"},ut={class:"code"},dt={class:"title"},vt={class:"quote"},pt={class:"action"},ft=["href","aria-label"],ht=m({__name:"NotFound",setup(o){const{theme:e}=L(),{currentLang:t}=Y();return(s,n)=>{var i,l,v,d,_;return a(),u("div",ct,[p("p",ut,w(((i=r(e).notFound)==null?void 0:i.code)??"404"),1),p("h1",dt,w(((l=r(e).notFound)==null?void 0:l.title)??"PAGE NOT FOUND"),1),n[0]||(n[0]=p("div",{class:"divider"},null,-1)),p("blockquote",vt,w(((v=r(e).notFound)==null?void 0:v.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),p("div",pt,[p("a",{class:"link",href:r(ve)(r(t).link),"aria-label":((d=r(e).notFound)==null?void 0:d.linkLabel)??"go to home"},w(((_=r(e).notFound)==null?void 0:_.linkText)??"Take me home"),9,ft)])])}}}),mt=$(ht,[["__scopeId","data-v-951cab6c"]]);function Ae(o,e){if(Array.isArray(o))return X(o);if(o==null)return[];e=le(e);const t=Object.keys(o).sort((n,i)=>i.split("/").length-n.split("/").length).find(n=>e.startsWith(le(n))),s=t?o[t]:[];return Array.isArray(s)?X(s):X(s.items,s.base)}function _t(o){const e=[];let t=0;for(const s in o){const n=o[s];if(n.items){t=e.push(n);continue}e[t]||e.push({items:[]}),e[t].items.push(n)}return e}function bt(o){const e=[];function t(s){for(const n of s)n.text&&n.link&&e.push({text:n.text,link:n.link,docFooterText:n.docFooterText}),n.items&&t(n.items)}return t(o),e}function ce(o,e){return Array.isArray(e)?e.some(t=>ce(o,t)):K(o,e.link)?!0:e.items?ce(o,e.items):!1}function X(o,e){return[...o].map(t=>{const s={...t},n=s.base||e;return n&&s.link&&(s.link=n+s.link),s.items&&(s.items=X(s.items,n)),s})}function U(){const{frontmatter:o,page:e,theme:t}=L(),s=re("(min-width: 960px)"),n=T(!1),i=y(()=>{const C=t.value.sidebar,N=e.value.relativePath;return C?Ae(C,N):[]}),l=T(i.value);F(i,(C,N)=>{JSON.stringify(C)!==JSON.stringify(N)&&(l.value=i.value)});const v=y(()=>o.value.sidebar!==!1&&l.value.length>0&&o.value.layout!=="home"),d=y(()=>_?o.value.aside==null?t.value.aside==="left":o.value.aside==="left":!1),_=y(()=>o.value.layout==="home"?!1:o.value.aside!=null?!!o.value.aside:t.value.aside!==!1),V=y(()=>v.value&&s.value),b=y(()=>v.value?_t(l.value):[]);function P(){n.value=!0}function S(){n.value=!1}function A(){n.value?S():P()}return{isOpen:n,sidebar:l,sidebarGroups:b,hasSidebar:v,hasAside:_,leftAside:d,isSidebarEnabled:V,open:P,close:S,toggle:A}}function kt(o,e){let t;Z(()=>{t=o.value?document.activeElement:void 0}),z(()=>{window.addEventListener("keyup",s)}),pe(()=>{window.removeEventListener("keyup",s)});function s(n){n.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function gt(o){const{page:e,hash:t}=L(),s=T(!1),n=y(()=>o.value.collapsed!=null),i=y(()=>!!o.value.link),l=T(!1),v=()=>{l.value=K(e.value.relativePath,o.value.link)};F([e,o,t],v),z(v);const d=y(()=>l.value?!0:o.value.items?ce(e.value.relativePath,o.value.items):!1),_=y(()=>!!(o.value.items&&o.value.items.length));Z(()=>{s.value=!!(n.value&&o.value.collapsed)}),fe(()=>{(l.value||d.value)&&(s.value=!1)});function V(){n.value&&(s.value=!s.value)}return{collapsed:s,collapsible:n,isLink:i,isActiveLink:l,hasActiveLink:d,hasChildren:_,toggle:V}}function $t(){const{hasSidebar:o}=U(),e=re("(min-width: 960px)"),t=re("(min-width: 1280px)");return{isAsideEnabled:y(()=>!t.value&&!e.value?!1:o.value?t.value:e.value)}}const ue=[];function Ce(o){return typeof o.outline=="object"&&!Array.isArray(o.outline)&&o.outline.label||o.outlineTitle||"On this page"}function _e(o){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const s=Number(t.tagName[1]);return{element:t,title:yt(t),link:"#"+t.id,level:s}});return Pt(e,o)}function yt(o){let e="";for(const t of o.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function Pt(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[s,n]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;o=o.filter(l=>l.level>=s&&l.level<=n),ue.length=0;for(const{element:l,link:v}of o)ue.push({element:l,link:v});const i=[];e:for(let l=0;l=0;d--){const _=o[d];if(_.level{requestAnimationFrame(i),window.addEventListener("scroll",s)}),Ke(()=>{l(location.hash)}),pe(()=>{window.removeEventListener("scroll",s)});function i(){if(!t.value)return;const v=window.scrollY,d=window.innerHeight,_=document.body.offsetHeight,V=Math.abs(v+d-_)<1,b=ue.map(({element:S,link:A})=>({link:A,top:Vt(S)})).filter(({top:S})=>!Number.isNaN(S)).sort((S,A)=>S.top-A.top);if(!b.length){l(null);return}if(v<1){l(null);return}if(V){l(b[b.length-1].link);return}let P=null;for(const{link:S,top:A}of b){if(A>v+Re()+4)break;P=S}l(P)}function l(v){n&&n.classList.remove("active"),v==null?n=null:n=o.value.querySelector(`a[href="${decodeURIComponent(v)}"]`);const d=n;d?(d.classList.add("active"),e.value.style.top=d.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Vt(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}const Lt=["href","title"],Tt=m({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(o){function e({target:t}){const s=t.href.split("#")[1],n=document.getElementById(decodeURIComponent(s));n==null||n.focus({preventScroll:!0})}return(t,s)=>{const n=R("VPDocOutlineItem",!0);return a(),u("ul",{class:I(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),u(M,null,B(t.headers,({children:i,link:l,title:v})=>(a(),u("li",null,[p("a",{class:"outline-link",href:l,onClick:e,title:v},w(v),9,Lt),i!=null&&i.length?(a(),g(n,{key:0,headers:i},null,8,["headers"])):h("",!0)]))),256))],2)}}}),Be=$(Tt,[["__scopeId","data-v-3f927ebe"]]),Nt={class:"content"},wt={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},It=m({__name:"VPDocAsideOutline",setup(o){const{frontmatter:e,theme:t}=L(),s=Ve([]);x(()=>{s.value=_e(e.value.outline??t.value.outline)});const n=T(),i=T();return St(n,i),(l,v)=>(a(),u("nav",{"aria-labelledby":"doc-outline-aria-label",class:I(["VPDocAsideOutline",{"has-outline":s.value.length>0}]),ref_key:"container",ref:n},[p("div",Nt,[p("div",{class:"outline-marker",ref_key:"marker",ref:i},null,512),p("div",wt,w(r(Ce)(r(t))),1),k(Be,{headers:s.value,root:!0},null,8,["headers"])])],2))}}),Mt=$(It,[["__scopeId","data-v-b38bf2ff"]]),At={class:"VPDocAsideCarbonAds"},Ct=m({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,s)=>(a(),u("div",At,[k(r(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Bt={class:"VPDocAside"},Ht=m({__name:"VPDocAside",setup(o){const{theme:e}=L();return(t,s)=>(a(),u("div",Bt,[c(t.$slots,"aside-top",{},void 0,!0),c(t.$slots,"aside-outline-before",{},void 0,!0),k(Mt),c(t.$slots,"aside-outline-after",{},void 0,!0),s[0]||(s[0]=p("div",{class:"spacer"},null,-1)),c(t.$slots,"aside-ads-before",{},void 0,!0),r(e).carbonAds?(a(),g(Ct,{key:0,"carbon-ads":r(e).carbonAds},null,8,["carbon-ads"])):h("",!0),c(t.$slots,"aside-ads-after",{},void 0,!0),c(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Et=$(Ht,[["__scopeId","data-v-6d7b3c46"]]);function Dt(){const{theme:o,page:e}=L();return y(()=>{const{text:t="Edit this page",pattern:s=""}=o.value.editLink||{};let n;return typeof s=="function"?n=s(e.value):n=s.replace(/:path/g,e.value.filePath),{url:n,text:t}})}function Ft(){const{page:o,theme:e,frontmatter:t}=L();return y(()=>{var _,V,b,P,S,A,C,N;const s=Ae(e.value.sidebar,o.value.relativePath),n=bt(s),i=Ot(n,H=>H.link.replace(/[?#].*$/,"")),l=i.findIndex(H=>K(o.value.relativePath,H.link)),v=((_=e.value.docFooter)==null?void 0:_.prev)===!1&&!t.value.prev||t.value.prev===!1,d=((V=e.value.docFooter)==null?void 0:V.next)===!1&&!t.value.next||t.value.next===!1;return{prev:v?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((b=i[l-1])==null?void 0:b.docFooterText)??((P=i[l-1])==null?void 0:P.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((S=i[l-1])==null?void 0:S.link)},next:d?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((A=i[l+1])==null?void 0:A.docFooterText)??((C=i[l+1])==null?void 0:C.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((N=i[l+1])==null?void 0:N.link)}}})}function Ot(o,e){const t=new Set;return o.filter(s=>{const n=e(s);return t.has(n)?!1:t.add(n)})}const D=m({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(o){const e=o,t=y(()=>e.tag??(e.href?"a":"span")),s=y(()=>e.href&&Le.test(e.href)||e.target==="_blank");return(n,i)=>(a(),g(E(t.value),{class:I(["VPLink",{link:n.href,"vp-external-link-icon":s.value,"no-icon":n.noIcon}]),href:n.href?r(me)(n.href):void 0,target:n.target??(s.value?"_blank":void 0),rel:n.rel??(s.value?"noreferrer":void 0)},{default:f(()=>[c(n.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Ut={class:"VPLastUpdated"},jt=["datetime"],Gt=m({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,lang:s}=L(),n=y(()=>new Date(t.value.lastUpdated)),i=y(()=>n.value.toISOString()),l=T("");return z(()=>{Z(()=>{var v,d,_;l.value=new Intl.DateTimeFormat((d=(v=e.value.lastUpdated)==null?void 0:v.formatOptions)!=null&&d.forceLocale?s.value:void 0,((_=e.value.lastUpdated)==null?void 0:_.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(n.value)})}),(v,d)=>{var _;return a(),u("p",Ut,[O(w(((_=r(e).lastUpdated)==null?void 0:_.text)||r(e).lastUpdatedText||"Last updated")+": ",1),p("time",{datetime:i.value},w(l.value),9,jt)])}}}),zt=$(Gt,[["__scopeId","data-v-475f71b8"]]),Kt={key:0,class:"VPDocFooter"},Rt={key:0,class:"edit-info"},Wt={key:0,class:"edit-link"},qt={key:1,class:"last-updated"},Jt={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},Yt={class:"pager"},Xt=["innerHTML"],Qt=["innerHTML"],Zt={class:"pager"},xt=["innerHTML"],en=["innerHTML"],tn=m({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:s}=L(),n=Dt(),i=Ft(),l=y(()=>e.value.editLink&&s.value.editLink!==!1),v=y(()=>t.value.lastUpdated),d=y(()=>l.value||v.value||i.value.prev||i.value.next);return(_,V)=>{var b,P,S,A;return d.value?(a(),u("footer",Kt,[c(_.$slots,"doc-footer-before",{},void 0,!0),l.value||v.value?(a(),u("div",Rt,[l.value?(a(),u("div",Wt,[k(D,{class:"edit-link-button",href:r(n).url,"no-icon":!0},{default:f(()=>[V[0]||(V[0]=p("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),O(" "+w(r(n).text),1)]),_:1},8,["href"])])):h("",!0),v.value?(a(),u("div",qt,[k(zt)])):h("",!0)])):h("",!0),(b=r(i).prev)!=null&&b.link||(P=r(i).next)!=null&&P.link?(a(),u("nav",Jt,[V[1]||(V[1]=p("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),p("div",Yt,[(S=r(i).prev)!=null&&S.link?(a(),g(D,{key:0,class:"pager-link prev",href:r(i).prev.link},{default:f(()=>{var C;return[p("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.prev)||"Previous page"},null,8,Xt),p("span",{class:"title",innerHTML:r(i).prev.text},null,8,Qt)]}),_:1},8,["href"])):h("",!0)]),p("div",Zt,[(A=r(i).next)!=null&&A.link?(a(),g(D,{key:0,class:"pager-link next",href:r(i).next.link},{default:f(()=>{var C;return[p("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.next)||"Next page"},null,8,xt),p("span",{class:"title",innerHTML:r(i).next.text},null,8,en)]}),_:1},8,["href"])):h("",!0)])])):h("",!0)])):h("",!0)}}}),nn=$(tn,[["__scopeId","data-v-4f9813fa"]]),sn={class:"container"},on={class:"aside-container"},an={class:"aside-content"},rn={class:"content"},ln={class:"content-container"},cn={class:"main"},un=m({__name:"VPDoc",setup(o){const{theme:e}=L(),t=ee(),{hasSidebar:s,hasAside:n,leftAside:i}=U(),l=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(v,d)=>{const _=R("Content");return a(),u("div",{class:I(["VPDoc",{"has-sidebar":r(s),"has-aside":r(n)}])},[c(v.$slots,"doc-top",{},void 0,!0),p("div",sn,[r(n)?(a(),u("div",{key:0,class:I(["aside",{"left-aside":r(i)}])},[d[0]||(d[0]=p("div",{class:"aside-curtain"},null,-1)),p("div",on,[p("div",an,[k(Et,null,{"aside-top":f(()=>[c(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[c(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[c(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):h("",!0),p("div",rn,[p("div",ln,[c(v.$slots,"doc-before",{},void 0,!0),p("main",cn,[k(_,{class:I(["vp-doc",[l.value,r(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),k(nn,null,{"doc-footer-before":f(()=>[c(v.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(v.$slots,"doc-after",{},void 0,!0)])])]),c(v.$slots,"doc-bottom",{},void 0,!0)],2)}}}),dn=$(un,[["__scopeId","data-v-83890dd9"]]),vn=m({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(o){const e=o,t=y(()=>e.href&&Le.test(e.href)),s=y(()=>e.tag||e.href?"a":"button");return(n,i)=>(a(),g(E(s.value),{class:I(["VPButton",[n.size,n.theme]]),href:n.href?r(me)(n.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:f(()=>[O(w(n.text),1)]),_:1},8,["class","href","target","rel"]))}}),pn=$(vn,[["__scopeId","data-v-14206e74"]]),fn=["src","alt"],hn=m({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{const s=R("VPImage",!0);return e.image?(a(),u(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),u("img",G({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:r(ve)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,fn)):(a(),u(M,{key:1},[k(s,G({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),k(s,G({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):h("",!0)}}}),Q=$(hn,[["__scopeId","data-v-35a7d0b8"]]),mn={class:"container"},_n={class:"main"},bn={key:0,class:"name"},kn=["innerHTML"],gn=["innerHTML"],$n=["innerHTML"],yn={key:0,class:"actions"},Pn={key:0,class:"image"},Sn={class:"image-container"},Vn=m({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=q("hero-image-slot-exists");return(t,s)=>(a(),u("div",{class:I(["VPHero",{"has-image":t.image||r(e)}])},[p("div",mn,[p("div",_n,[c(t.$slots,"home-hero-info-before",{},void 0,!0),c(t.$slots,"home-hero-info",{},()=>[t.name?(a(),u("h1",bn,[p("span",{innerHTML:t.name,class:"clip"},null,8,kn)])):h("",!0),t.text?(a(),u("p",{key:1,innerHTML:t.text,class:"text"},null,8,gn)):h("",!0),t.tagline?(a(),u("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,$n)):h("",!0)],!0),c(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),u("div",yn,[(a(!0),u(M,null,B(t.actions,n=>(a(),u("div",{key:n.link,class:"action"},[k(pn,{tag:"a",size:"medium",theme:n.theme,text:n.text,href:n.link,target:n.target,rel:n.rel},null,8,["theme","text","href","target","rel"])]))),128))])):h("",!0),c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||r(e)?(a(),u("div",Pn,[p("div",Sn,[s[0]||(s[0]=p("div",{class:"image-bg"},null,-1)),c(t.$slots,"home-hero-image",{},()=>[t.image?(a(),g(Q,{key:0,class:"image-src",image:t.image},null,8,["image"])):h("",!0)],!0)])])):h("",!0)])],2))}}),Ln=$(Vn,[["__scopeId","data-v-955009fc"]]),Tn=m({__name:"VPHomeHero",setup(o){const{frontmatter:e}=L();return(t,s)=>r(e).hero?(a(),g(Ln,{key:0,class:"VPHomeHero",name:r(e).hero.name,text:r(e).hero.text,tagline:r(e).hero.tagline,image:r(e).hero.image,actions:r(e).hero.actions},{"home-hero-info-before":f(()=>[c(t.$slots,"home-hero-info-before")]),"home-hero-info":f(()=>[c(t.$slots,"home-hero-info")]),"home-hero-info-after":f(()=>[c(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":f(()=>[c(t.$slots,"home-hero-actions-after")]),"home-hero-image":f(()=>[c(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):h("",!0)}}),Nn={class:"box"},wn={key:0,class:"icon"},In=["innerHTML"],Mn=["innerHTML"],An=["innerHTML"],Cn={key:4,class:"link-text"},Bn={class:"link-text-value"},Hn=m({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(o){return(e,t)=>(a(),g(D,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:f(()=>[p("article",Nn,[typeof e.icon=="object"&&e.icon.wrap?(a(),u("div",wn,[k(Q,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),g(Q,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),u("div",{key:2,class:"icon",innerHTML:e.icon},null,8,In)):h("",!0),p("h2",{class:"title",innerHTML:e.title},null,8,Mn),e.details?(a(),u("p",{key:3,class:"details",innerHTML:e.details},null,8,An)):h("",!0),e.linkText?(a(),u("div",Cn,[p("p",Bn,[O(w(e.linkText)+" ",1),t[0]||(t[0]=p("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):h("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),En=$(Hn,[["__scopeId","data-v-f5e9645b"]]),Dn={key:0,class:"VPFeatures"},Fn={class:"container"},On={class:"items"},Un=m({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=y(()=>{const s=e.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s>3)return"grid-4"}else return});return(s,n)=>s.features?(a(),u("div",Dn,[p("div",Fn,[p("div",On,[(a(!0),u(M,null,B(s.features,i=>(a(),u("div",{key:i.title,class:I(["item",[t.value]])},[k(En,{icon:i.icon,title:i.title,details:i.details,link:i.link,"link-text":i.linkText,rel:i.rel,target:i.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):h("",!0)}}),jn=$(Un,[["__scopeId","data-v-d0a190d7"]]),Gn=m({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=L();return(t,s)=>r(e).features?(a(),g(jn,{key:0,class:"VPHomeFeatures",features:r(e).features},null,8,["features"])):h("",!0)}}),zn=m({__name:"VPHomeContent",setup(o){const{width:e}=We({initialWidth:0,includeScrollbar:!1});return(t,s)=>(a(),u("div",{class:"vp-doc container",style:Te(r(e)?{"--vp-offset":`calc(50% - ${r(e)/2}px)`}:{})},[c(t.$slots,"default",{},void 0,!0)],4))}}),Kn=$(zn,[["__scopeId","data-v-7a48a447"]]),Rn={class:"VPHome"},Wn=m({__name:"VPHome",setup(o){const{frontmatter:e}=L();return(t,s)=>{const n=R("Content");return a(),u("div",Rn,[c(t.$slots,"home-hero-before",{},void 0,!0),k(Tn,null,{"home-hero-info-before":f(()=>[c(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(t.$slots,"home-hero-after",{},void 0,!0),c(t.$slots,"home-features-before",{},void 0,!0),k(Gn),c(t.$slots,"home-features-after",{},void 0,!0),r(e).markdownStyles!==!1?(a(),g(Kn,{key:0},{default:f(()=>[k(n)]),_:1})):(a(),g(n,{key:1}))])}}}),qn=$(Wn,[["__scopeId","data-v-cbb6ec48"]]),Jn={},Yn={class:"VPPage"};function Xn(o,e){const t=R("Content");return a(),u("div",Yn,[c(o.$slots,"page-top"),k(t),c(o.$slots,"page-bottom")])}const Qn=$(Jn,[["render",Xn]]),Zn=m({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=L(),{hasSidebar:s}=U();return(n,i)=>(a(),u("div",{class:I(["VPContent",{"has-sidebar":r(s),"is-home":r(t).layout==="home"}]),id:"VPContent"},[r(e).isNotFound?c(n.$slots,"not-found",{key:0},()=>[k(mt)],!0):r(t).layout==="page"?(a(),g(Qn,{key:1},{"page-top":f(()=>[c(n.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[c(n.$slots,"page-bottom",{},void 0,!0)]),_:3})):r(t).layout==="home"?(a(),g(qn,{key:2},{"home-hero-before":f(()=>[c(n.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[c(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(n.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[c(n.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[c(n.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[c(n.$slots,"home-features-after",{},void 0,!0)]),_:3})):r(t).layout&&r(t).layout!=="doc"?(a(),g(E(r(t).layout),{key:3})):(a(),g(dn,{key:4},{"doc-top":f(()=>[c(n.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[c(n.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":f(()=>[c(n.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[c(n.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[c(n.$slots,"doc-after",{},void 0,!0)]),"aside-top":f(()=>[c(n.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":f(()=>[c(n.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(n.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(n.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(n.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":f(()=>[c(n.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),xn=$(Zn,[["__scopeId","data-v-91765379"]]),es={class:"container"},ts=["innerHTML"],ns=["innerHTML"],ss=m({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=L(),{hasSidebar:s}=U();return(n,i)=>r(e).footer&&r(t).footer!==!1?(a(),u("footer",{key:0,class:I(["VPFooter",{"has-sidebar":r(s)}])},[p("div",es,[r(e).footer.message?(a(),u("p",{key:0,class:"message",innerHTML:r(e).footer.message},null,8,ts)):h("",!0),r(e).footer.copyright?(a(),u("p",{key:1,class:"copyright",innerHTML:r(e).footer.copyright},null,8,ns)):h("",!0)])],2)):h("",!0)}}),os=$(ss,[["__scopeId","data-v-c970a860"]]);function as(){const{theme:o,frontmatter:e}=L(),t=Ve([]),s=y(()=>t.value.length>0);return x(()=>{t.value=_e(e.value.outline??o.value.outline)}),{headers:t,hasLocalNav:s}}const rs={class:"menu-text"},is={class:"header"},ls={class:"outline"},cs=m({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=L(),s=T(!1),n=T(0),i=T(),l=T();function v(b){var P;(P=i.value)!=null&&P.contains(b.target)||(s.value=!1)}F(s,b=>{if(b){document.addEventListener("click",v);return}document.removeEventListener("click",v)}),ie("Escape",()=>{s.value=!1}),x(()=>{s.value=!1});function d(){s.value=!s.value,n.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function _(b){b.target.classList.contains("outline-link")&&(l.value&&(l.value.style.transition="none"),Ne(()=>{s.value=!1}))}function V(){s.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(b,P)=>(a(),u("div",{class:"VPLocalNavOutlineDropdown",style:Te({"--vp-vh":n.value+"px"}),ref_key:"main",ref:i},[b.headers.length>0?(a(),u("button",{key:0,onClick:d,class:I({open:s.value})},[p("span",rs,w(r(Ce)(r(t))),1),P[0]||(P[0]=p("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(a(),u("button",{key:1,onClick:V},w(r(t).returnToTopLabel||"Return to top"),1)),k(de,{name:"flyout"},{default:f(()=>[s.value?(a(),u("div",{key:0,ref_key:"items",ref:l,class:"items",onClick:_},[p("div",is,[p("a",{class:"top-link",href:"#",onClick:V},w(r(t).returnToTopLabel||"Return to top"),1)]),p("div",ls,[k(Be,{headers:b.headers},null,8,["headers"])])],512)):h("",!0)]),_:1})],4))}}),us=$(cs,[["__scopeId","data-v-bc9dc845"]]),ds={class:"container"},vs=["aria-expanded"],ps={class:"menu-text"},fs=m({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e,frontmatter:t}=L(),{hasSidebar:s}=U(),{headers:n}=as(),{y:i}=we(),l=T(0);z(()=>{l.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),x(()=>{n.value=_e(t.value.outline??e.value.outline)});const v=y(()=>n.value.length===0),d=y(()=>v.value&&!s.value),_=y(()=>({VPLocalNav:!0,"has-sidebar":s.value,empty:v.value,fixed:d.value}));return(V,b)=>r(t).layout!=="home"&&(!d.value||r(i)>=l.value)?(a(),u("div",{key:0,class:I(_.value)},[p("div",ds,[r(s)?(a(),u("button",{key:0,class:"menu","aria-expanded":V.open,"aria-controls":"VPSidebarNav",onClick:b[0]||(b[0]=P=>V.$emit("open-menu"))},[b[1]||(b[1]=p("span",{class:"vpi-align-left menu-icon"},null,-1)),p("span",ps,w(r(e).sidebarMenuLabel||"Menu"),1)],8,vs)):h("",!0),k(us,{headers:r(n),navHeight:l.value},null,8,["headers","navHeight"])])],2)):h("",!0)}}),hs=$(fs,[["__scopeId","data-v-070ab83d"]]);function ms(){const o=T(!1);function e(){o.value=!0,window.addEventListener("resize",n)}function t(){o.value=!1,window.removeEventListener("resize",n)}function s(){o.value?t():e()}function n(){window.outerWidth>=768&&t()}const i=ee();return F(()=>i.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:s}}const _s={},bs={class:"VPSwitch",type:"button",role:"switch"},ks={class:"check"},gs={key:0,class:"icon"};function $s(o,e){return a(),u("button",bs,[p("span",ks,[o.$slots.default?(a(),u("span",gs,[c(o.$slots,"default",{},void 0,!0)])):h("",!0)])])}const ys=$(_s,[["render",$s],["__scopeId","data-v-4a1c76db"]]),Ps=m({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=L(),s=q("toggle-appearance",()=>{e.value=!e.value}),n=T("");return fe(()=>{n.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(i,l)=>(a(),g(ys,{title:n.value,class:"VPSwitchAppearance","aria-checked":r(e),onClick:r(s)},{default:f(()=>l[0]||(l[0]=[p("span",{class:"vpi-sun sun"},null,-1),p("span",{class:"vpi-moon moon"},null,-1)])),_:1},8,["title","aria-checked","onClick"]))}}),be=$(Ps,[["__scopeId","data-v-e40a8bb6"]]),Ss={key:0,class:"VPNavBarAppearance"},Vs=m({__name:"VPNavBarAppearance",setup(o){const{site:e}=L();return(t,s)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",Ss,[k(be)])):h("",!0)}}),Ls=$(Vs,[["__scopeId","data-v-af096f4a"]]),ke=T();let He=!1,ae=0;function Ts(o){const e=T(!1);if(te){!He&&Ns(),ae++;const t=F(ke,s=>{var n,i,l;s===o.el.value||(n=o.el.value)!=null&&n.contains(s)?(e.value=!0,(i=o.onFocus)==null||i.call(o)):(e.value=!1,(l=o.onBlur)==null||l.call(o))});pe(()=>{t(),ae--,ae||ws()})}return qe(e)}function Ns(){document.addEventListener("focusin",Ee),He=!0,ke.value=document.activeElement}function ws(){document.removeEventListener("focusin",Ee)}function Ee(){ke.value=document.activeElement}const Is={class:"VPMenuLink"},Ms=m({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=L();return(t,s)=>(a(),u("div",Is,[k(D,{class:I({active:r(K)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:f(()=>[O(w(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),ne=$(Ms,[["__scopeId","data-v-8b74d055"]]),As={class:"VPMenuGroup"},Cs={key:0,class:"title"},Bs=m({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),u("div",As,[e.text?(a(),u("p",Cs,w(e.text),1)):h("",!0),(a(!0),u(M,null,B(e.items,s=>(a(),u(M,null,["link"in s?(a(),g(ne,{key:0,item:s},null,8,["item"])):h("",!0)],64))),256))]))}}),Hs=$(Bs,[["__scopeId","data-v-48c802d0"]]),Es={class:"VPMenu"},Ds={key:0,class:"items"},Fs=m({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(a(),u("div",Es,[e.items?(a(),u("div",Ds,[(a(!0),u(M,null,B(e.items,s=>(a(),u(M,{key:JSON.stringify(s)},["link"in s?(a(),g(ne,{key:0,item:s},null,8,["item"])):"component"in s?(a(),g(E(s.component),G({key:1,ref_for:!0},s.props),null,16)):(a(),g(Hs,{key:2,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):h("",!0),c(e.$slots,"default",{},void 0,!0)]))}}),Os=$(Fs,[["__scopeId","data-v-7dd3104a"]]),Us=["aria-expanded","aria-label"],js={key:0,class:"text"},Gs=["innerHTML"],zs={key:1,class:"vpi-more-horizontal icon"},Ks={class:"menu"},Rs=m({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=T(!1),t=T();Ts({el:t,onBlur:s});function s(){e.value=!1}return(n,i)=>(a(),u("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:i[1]||(i[1]=l=>e.value=!0),onMouseleave:i[2]||(i[2]=l=>e.value=!1)},[p("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":n.label,onClick:i[0]||(i[0]=l=>e.value=!e.value)},[n.button||n.icon?(a(),u("span",js,[n.icon?(a(),u("span",{key:0,class:I([n.icon,"option-icon"])},null,2)):h("",!0),n.button?(a(),u("span",{key:1,innerHTML:n.button},null,8,Gs)):h("",!0),i[3]||(i[3]=p("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(a(),u("span",zs))],8,Us),p("div",Ks,[k(Os,{items:n.items},{default:f(()=>[c(n.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),ge=$(Rs,[["__scopeId","data-v-e5380155"]]),Ws=["href","aria-label","innerHTML"],qs=m({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=y(()=>typeof e.icon=="object"?e.icon.svg:``);return(s,n)=>(a(),u("a",{class:"VPSocialLink no-icon",href:s.link,"aria-label":s.ariaLabel??(typeof s.icon=="string"?s.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,Ws))}}),Js=$(qs,[["__scopeId","data-v-717b8b75"]]),Ys={class:"VPSocialLinks"},Xs=m({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(a(),u("div",Ys,[(a(!0),u(M,null,B(e.links,({link:s,icon:n,ariaLabel:i})=>(a(),g(Js,{key:s,icon:n,link:s,ariaLabel:i},null,8,["icon","link","ariaLabel"]))),128))]))}}),$e=$(Xs,[["__scopeId","data-v-ee7a9424"]]),Qs={key:0,class:"group translations"},Zs={class:"trans-title"},xs={key:1,class:"group"},eo={class:"item appearance"},to={class:"label"},no={class:"appearance-action"},so={key:2,class:"group"},oo={class:"item social-links"},ao=m({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=L(),{localeLinks:s,currentLang:n}=Y({correspondingLink:!0}),i=y(()=>s.value.length&&n.value.label||e.value.appearance||t.value.socialLinks);return(l,v)=>i.value?(a(),g(ge,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:f(()=>[r(s).length&&r(n).label?(a(),u("div",Qs,[p("p",Zs,w(r(n).label),1),(a(!0),u(M,null,B(r(s),d=>(a(),g(ne,{key:d.link,item:d},null,8,["item"]))),128))])):h("",!0),r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",xs,[p("div",eo,[p("p",to,w(r(t).darkModeSwitchLabel||"Appearance"),1),p("div",no,[k(be)])])])):h("",!0),r(t).socialLinks?(a(),u("div",so,[p("div",oo,[k($e,{class:"social-links-list",links:r(t).socialLinks},null,8,["links"])])])):h("",!0)]),_:1})):h("",!0)}}),ro=$(ao,[["__scopeId","data-v-925effce"]]),io=["aria-expanded"],lo=m({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(a(),u("button",{type:"button",class:I(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=s=>e.$emit("click"))},t[1]||(t[1]=[p("span",{class:"container"},[p("span",{class:"top"}),p("span",{class:"middle"}),p("span",{class:"bottom"})],-1)]),10,io))}}),co=$(lo,[["__scopeId","data-v-5dea55bf"]]),uo=["innerHTML"],vo=m({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=L();return(t,s)=>(a(),g(D,{class:I({VPNavBarMenuLink:!0,active:r(K)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:f(()=>[p("span",{innerHTML:t.item.text},null,8,uo)]),_:1},8,["class","href","noIcon","target","rel"]))}}),po=$(vo,[["__scopeId","data-v-ed5ac1f6"]]),fo=m({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=L(),s=i=>"component"in i?!1:"link"in i?K(t.value.relativePath,i.link,!!e.item.activeMatch):i.items.some(s),n=y(()=>s(e.item));return(i,l)=>(a(),g(ge,{class:I({VPNavBarMenuGroup:!0,active:r(K)(r(t).relativePath,i.item.activeMatch,!!i.item.activeMatch)||n.value}),button:i.item.text,items:i.item.items},null,8,["class","button","items"]))}}),ho={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},mo=m({__name:"VPNavBarMenu",setup(o){const{theme:e}=L();return(t,s)=>r(e).nav?(a(),u("nav",ho,[s[0]||(s[0]=p("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(a(!0),u(M,null,B(r(e).nav,n=>(a(),u(M,{key:JSON.stringify(n)},["link"in n?(a(),g(po,{key:0,item:n},null,8,["item"])):"component"in n?(a(),g(E(n.component),G({key:1,ref_for:!0},n.props),null,16)):(a(),g(fo,{key:2,item:n},null,8,["item"]))],64))),128))])):h("",!0)}}),_o=$(mo,[["__scopeId","data-v-e6d46098"]]);function bo(o){const{localeIndex:e,theme:t}=L();function s(n){var A,C,N;const i=n.split("."),l=(A=t.value.search)==null?void 0:A.options,v=l&&typeof l=="object",d=v&&((N=(C=l.locales)==null?void 0:C[e.value])==null?void 0:N.translations)||null,_=v&&l.translations||null;let V=d,b=_,P=o;const S=i.pop();for(const H of i){let j=null;const W=P==null?void 0:P[H];W&&(j=P=W);const se=b==null?void 0:b[H];se&&(j=b=se);const oe=V==null?void 0:V[H];oe&&(j=V=oe),W||(P=j),se||(b=j),oe||(V=j)}return(V==null?void 0:V[S])??(b==null?void 0:b[S])??(P==null?void 0:P[S])??""}return s}const ko=["aria-label"],go={class:"DocSearch-Button-Container"},$o={class:"DocSearch-Button-Placeholder"},ye=m({__name:"VPNavBarSearchButton",setup(o){const t=bo({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(s,n)=>(a(),u("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":r(t)("button.buttonAriaLabel")},[p("span",go,[n[0]||(n[0]=p("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),p("span",$o,w(r(t)("button.buttonText")),1)]),n[1]||(n[1]=p("span",{class:"DocSearch-Button-Keys"},[p("kbd",{class:"DocSearch-Button-Key"}),p("kbd",{class:"DocSearch-Button-Key"},"K")],-1))],8,ko))}}),yo={class:"VPNavBarSearch"},Po={id:"local-search"},So={key:1,id:"docsearch"},Vo=m({__name:"VPNavBarSearch",setup(o){const e=Je(()=>Ye(()=>import("./VPLocalSearchBox.LH27nImM.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:s}=L(),n=T(!1),i=T(!1);z(()=>{});function l(){n.value||(n.value=!0,setTimeout(v,16))}function v(){const b=new Event("keydown");b.key="k",b.metaKey=!0,window.dispatchEvent(b),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||v()},16)}function d(b){const P=b.target,S=P.tagName;return P.isContentEditable||S==="INPUT"||S==="SELECT"||S==="TEXTAREA"}const _=T(!1);ie("k",b=>{(b.ctrlKey||b.metaKey)&&(b.preventDefault(),_.value=!0)}),ie("/",b=>{d(b)||(b.preventDefault(),_.value=!0)});const V="local";return(b,P)=>{var S;return a(),u("div",yo,[r(V)==="local"?(a(),u(M,{key:0},[_.value?(a(),g(r(e),{key:0,onClose:P[0]||(P[0]=A=>_.value=!1)})):h("",!0),p("div",Po,[k(ye,{onClick:P[1]||(P[1]=A=>_.value=!0)})])],64)):r(V)==="algolia"?(a(),u(M,{key:1},[n.value?(a(),g(r(t),{key:0,algolia:((S=r(s).search)==null?void 0:S.options)??r(s).algolia,onVnodeBeforeMount:P[2]||(P[2]=A=>i.value=!0)},null,8,["algolia"])):h("",!0),i.value?h("",!0):(a(),u("div",So,[k(ye,{onClick:l})]))],64)):h("",!0)])}}}),Lo=m({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=L();return(t,s)=>r(e).socialLinks?(a(),g($e,{key:0,class:"VPNavBarSocialLinks",links:r(e).socialLinks},null,8,["links"])):h("",!0)}}),To=$(Lo,[["__scopeId","data-v-164c457f"]]),No=["href","rel","target"],wo={key:1},Io={key:2},Mo=m({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=L(),{hasSidebar:s}=U(),{currentLang:n}=Y(),i=y(()=>{var d;return typeof t.value.logoLink=="string"?t.value.logoLink:(d=t.value.logoLink)==null?void 0:d.link}),l=y(()=>{var d;return typeof t.value.logoLink=="string"||(d=t.value.logoLink)==null?void 0:d.rel}),v=y(()=>{var d;return typeof t.value.logoLink=="string"||(d=t.value.logoLink)==null?void 0:d.target});return(d,_)=>(a(),u("div",{class:I(["VPNavBarTitle",{"has-sidebar":r(s)}])},[p("a",{class:"title",href:i.value??r(me)(r(n).link),rel:l.value,target:v.value},[c(d.$slots,"nav-bar-title-before",{},void 0,!0),r(t).logo?(a(),g(Q,{key:0,class:"logo",image:r(t).logo},null,8,["image"])):h("",!0),r(t).siteTitle?(a(),u("span",wo,w(r(t).siteTitle),1)):r(t).siteTitle===void 0?(a(),u("span",Io,w(r(e).title),1)):h("",!0),c(d.$slots,"nav-bar-title-after",{},void 0,!0)],8,No)],2))}}),Ao=$(Mo,[["__scopeId","data-v-28a961f9"]]),Co={class:"items"},Bo={class:"title"},Ho=m({__name:"VPNavBarTranslations",setup(o){const{theme:e}=L(),{localeLinks:t,currentLang:s}=Y({correspondingLink:!0});return(n,i)=>r(t).length&&r(s).label?(a(),g(ge,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:r(e).langMenuLabel||"Change language"},{default:f(()=>[p("div",Co,[p("p",Bo,w(r(s).label),1),(a(!0),u(M,null,B(r(t),l=>(a(),g(ne,{key:l.link,item:l},null,8,["item"]))),128))])]),_:1},8,["label"])):h("",!0)}}),Eo=$(Ho,[["__scopeId","data-v-c80d9ad0"]]),Do={class:"wrapper"},Fo={class:"container"},Oo={class:"title"},Uo={class:"content"},jo={class:"content-body"},Go=m({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const e=o,{y:t}=we(),{hasSidebar:s}=U(),{frontmatter:n}=L(),i=T({});return fe(()=>{i.value={"has-sidebar":s.value,home:n.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(l,v)=>(a(),u("div",{class:I(["VPNavBar",i.value])},[p("div",Do,[p("div",Fo,[p("div",Oo,[k(Ao,null,{"nav-bar-title-before":f(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),p("div",Uo,[p("div",jo,[c(l.$slots,"nav-bar-content-before",{},void 0,!0),k(Vo,{class:"search"}),k(_o,{class:"menu"}),k(Eo,{class:"translations"}),k(Ls,{class:"appearance"}),k(To,{class:"social-links"}),k(ro,{class:"extra"}),c(l.$slots,"nav-bar-content-after",{},void 0,!0),k(co,{class:"hamburger",active:l.isScreenOpen,onClick:v[0]||(v[0]=d=>l.$emit("toggle-screen"))},null,8,["active"])])])])]),v[1]||(v[1]=p("div",{class:"divider"},[p("div",{class:"divider-line"})],-1))],2))}}),zo=$(Go,[["__scopeId","data-v-822684d1"]]),Ko={key:0,class:"VPNavScreenAppearance"},Ro={class:"text"},Wo=m({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=L();return(s,n)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",Ko,[p("p",Ro,w(r(t).darkModeSwitchLabel||"Appearance"),1),k(be)])):h("",!0)}}),qo=$(Wo,[["__scopeId","data-v-ffb44008"]]),Jo=m({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=q("close-screen");return(t,s)=>(a(),g(D,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),Yo=$(Jo,[["__scopeId","data-v-27d04aeb"]]),Xo=m({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=q("close-screen");return(t,s)=>(a(),g(D,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e)},{default:f(()=>[O(w(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),De=$(Xo,[["__scopeId","data-v-7179dbb7"]]),Qo={class:"VPNavScreenMenuGroupSection"},Zo={key:0,class:"title"},xo=m({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),u("div",Qo,[e.text?(a(),u("p",Zo,w(e.text),1)):h("",!0),(a(!0),u(M,null,B(e.items,s=>(a(),g(De,{key:s.text,item:s},null,8,["item"]))),128))]))}}),ea=$(xo,[["__scopeId","data-v-4b8941ac"]]),ta=["aria-controls","aria-expanded"],na=["innerHTML"],sa=["id"],oa={key:0,class:"item"},aa={key:1,class:"item"},ra={key:2,class:"group"},ia=m({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=T(!1),s=y(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function n(){t.value=!t.value}return(i,l)=>(a(),u("div",{class:I(["VPNavScreenMenuGroup",{open:t.value}])},[p("button",{class:"button","aria-controls":s.value,"aria-expanded":t.value,onClick:n},[p("span",{class:"button-text",innerHTML:i.text},null,8,na),l[0]||(l[0]=p("span",{class:"vpi-plus button-icon"},null,-1))],8,ta),p("div",{id:s.value,class:"items"},[(a(!0),u(M,null,B(i.items,v=>(a(),u(M,{key:JSON.stringify(v)},["link"in v?(a(),u("div",oa,[k(De,{item:v},null,8,["item"])])):"component"in v?(a(),u("div",aa,[(a(),g(E(v.component),G({ref_for:!0},v.props,{"screen-menu":""}),null,16))])):(a(),u("div",ra,[k(ea,{text:v.text,items:v.items},null,8,["text","items"])]))],64))),128))],8,sa)],2))}}),la=$(ia,[["__scopeId","data-v-875057a5"]]),ca={key:0,class:"VPNavScreenMenu"},ua=m({__name:"VPNavScreenMenu",setup(o){const{theme:e}=L();return(t,s)=>r(e).nav?(a(),u("nav",ca,[(a(!0),u(M,null,B(r(e).nav,n=>(a(),u(M,{key:JSON.stringify(n)},["link"in n?(a(),g(Yo,{key:0,item:n},null,8,["item"])):"component"in n?(a(),g(E(n.component),G({key:1,ref_for:!0},n.props,{"screen-menu":""}),null,16)):(a(),g(la,{key:2,text:n.text||"",items:n.items},null,8,["text","items"]))],64))),128))])):h("",!0)}}),da=m({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=L();return(t,s)=>r(e).socialLinks?(a(),g($e,{key:0,class:"VPNavScreenSocialLinks",links:r(e).socialLinks},null,8,["links"])):h("",!0)}}),va={class:"list"},pa=m({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=Y({correspondingLink:!0}),s=T(!1);function n(){s.value=!s.value}return(i,l)=>r(e).length&&r(t).label?(a(),u("div",{key:0,class:I(["VPNavScreenTranslations",{open:s.value}])},[p("button",{class:"title",onClick:n},[l[0]||(l[0]=p("span",{class:"vpi-languages icon lang"},null,-1)),O(" "+w(r(t).label)+" ",1),l[1]||(l[1]=p("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),p("ul",va,[(a(!0),u(M,null,B(r(e),v=>(a(),u("li",{key:v.link,class:"item"},[k(D,{class:"link",href:v.link},{default:f(()=>[O(w(v.text),1)]),_:2},1032,["href"])]))),128))])],2)):h("",!0)}}),fa=$(pa,[["__scopeId","data-v-362991c2"]]),ha={class:"container"},ma=m({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=T(null),t=Ie(te?document.body:null);return(s,n)=>(a(),g(de,{name:"fade",onEnter:n[0]||(n[0]=i=>t.value=!0),onAfterLeave:n[1]||(n[1]=i=>t.value=!1)},{default:f(()=>[s.open?(a(),u("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[p("div",ha,[c(s.$slots,"nav-screen-content-before",{},void 0,!0),k(ua,{class:"menu"}),k(fa,{class:"translations"}),k(qo,{class:"appearance"}),k(da,{class:"social-links"}),c(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):h("",!0)]),_:3}))}}),_a=$(ma,[["__scopeId","data-v-833aabba"]]),ba={key:0,class:"VPNav"},ka=m({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:s}=ms(),{frontmatter:n}=L(),i=y(()=>n.value.navbar!==!1);return he("close-screen",t),Z(()=>{te&&document.documentElement.classList.toggle("hide-nav",!i.value)}),(l,v)=>i.value?(a(),u("header",ba,[k(zo,{"is-screen-open":r(e),onToggleScreen:r(s)},{"nav-bar-title-before":f(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[c(l.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[c(l.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),k(_a,{open:r(e)},{"nav-screen-content-before":f(()=>[c(l.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[c(l.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):h("",!0)}}),ga=$(ka,[["__scopeId","data-v-f1e365da"]]),$a=["role","tabindex"],ya={key:1,class:"items"},Pa=m({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:s,isLink:n,isActiveLink:i,hasActiveLink:l,hasChildren:v,toggle:d}=gt(y(()=>e.item)),_=y(()=>v.value?"section":"div"),V=y(()=>n.value?"a":"div"),b=y(()=>v.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),P=y(()=>n.value?void 0:"button"),S=y(()=>[[`level-${e.depth}`],{collapsible:s.value},{collapsed:t.value},{"is-link":n.value},{"is-active":i.value},{"has-active":l.value}]);function A(N){"key"in N&&N.key!=="Enter"||!e.item.link&&d()}function C(){e.item.link&&d()}return(N,H)=>{const j=R("VPSidebarItem",!0);return a(),g(E(_.value),{class:I(["VPSidebarItem",S.value])},{default:f(()=>[N.item.text?(a(),u("div",G({key:0,class:"item",role:P.value},Qe(N.item.items?{click:A,keydown:A}:{},!0),{tabindex:N.item.items&&0}),[H[1]||(H[1]=p("div",{class:"indicator"},null,-1)),N.item.link?(a(),g(D,{key:0,tag:V.value,class:"link",href:N.item.link,rel:N.item.rel,target:N.item.target},{default:f(()=>[(a(),g(E(b.value),{class:"text",innerHTML:N.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),g(E(b.value),{key:1,class:"text",innerHTML:N.item.text},null,8,["innerHTML"])),N.item.collapsed!=null&&N.item.items&&N.item.items.length?(a(),u("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:C,onKeydown:Xe(C,["enter"]),tabindex:"0"},H[0]||(H[0]=[p("span",{class:"vpi-chevron-right caret-icon"},null,-1)]),32)):h("",!0)],16,$a)):h("",!0),N.item.items&&N.item.items.length?(a(),u("div",ya,[N.depth<5?(a(!0),u(M,{key:0},B(N.item.items,W=>(a(),g(j,{key:W.text,item:W,depth:N.depth+1},null,8,["item","depth"]))),128)):h("",!0)])):h("",!0)]),_:1},8,["class"])}}}),Sa=$(Pa,[["__scopeId","data-v-196b2e5f"]]),Va=m({__name:"VPSidebarGroup",props:{items:{}},setup(o){const e=T(!0);let t=null;return z(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),Ze(()=>{t!=null&&(clearTimeout(t),t=null)}),(s,n)=>(a(!0),u(M,null,B(s.items,i=>(a(),u("div",{key:i.text,class:I(["group",{"no-transition":e.value}])},[k(Sa,{item:i,depth:0},null,8,["item"])],2))),128))}}),La=$(Va,[["__scopeId","data-v-9e426adc"]]),Ta={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Na=m({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=U(),s=o,n=T(null),i=Ie(te?document.body:null);F([s,n],()=>{var v;s.open?(i.value=!0,(v=n.value)==null||v.focus()):i.value=!1},{immediate:!0,flush:"post"});const l=T(0);return F(e,()=>{l.value+=1},{deep:!0}),(v,d)=>r(t)?(a(),u("aside",{key:0,class:I(["VPSidebar",{open:v.open}]),ref_key:"navEl",ref:n,onClick:d[0]||(d[0]=xe(()=>{},["stop"]))},[d[2]||(d[2]=p("div",{class:"curtain"},null,-1)),p("nav",Ta,[d[1]||(d[1]=p("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),c(v.$slots,"sidebar-nav-before",{},void 0,!0),(a(),g(La,{items:r(e),key:l.value},null,8,["items"])),c(v.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):h("",!0)}}),wa=$(Na,[["__scopeId","data-v-18756405"]]),Ia=m({__name:"VPSkipLink",setup(o){const e=ee(),t=T();F(()=>e.path,()=>t.value.focus());function s({target:n}){const i=document.getElementById(decodeURIComponent(n.hash).slice(1));if(i){const l=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",l)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",l),i.focus(),window.scrollTo(0,0)}}return(n,i)=>(a(),u(M,null,[p("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),p("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s}," Skip to content ")],64))}}),Ma=$(Ia,[["__scopeId","data-v-c3508ec8"]]),Aa=m({__name:"Layout",setup(o){const{isOpen:e,open:t,close:s}=U(),n=ee();F(()=>n.path,s),kt(e,s);const{frontmatter:i}=L(),l=Me(),v=y(()=>!!l["home-hero-image"]);return he("hero-image-slot-exists",v),(d,_)=>{const V=R("Content");return r(i).layout!==!1?(a(),u("div",{key:0,class:I(["Layout",r(i).pageClass])},[c(d.$slots,"layout-top",{},void 0,!0),k(Ma),k(rt,{class:"backdrop",show:r(e),onClick:r(s)},null,8,["show","onClick"]),k(ga,null,{"nav-bar-title-before":f(()=>[c(d.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(d.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[c(d.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[c(d.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":f(()=>[c(d.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[c(d.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),k(hs,{open:r(e),onOpenMenu:r(t)},null,8,["open","onOpenMenu"]),k(wa,{open:r(e)},{"sidebar-nav-before":f(()=>[c(d.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":f(()=>[c(d.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),k(xn,null,{"page-top":f(()=>[c(d.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[c(d.$slots,"page-bottom",{},void 0,!0)]),"not-found":f(()=>[c(d.$slots,"not-found",{},void 0,!0)]),"home-hero-before":f(()=>[c(d.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[c(d.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(d.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(d.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(d.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(d.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[c(d.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[c(d.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[c(d.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":f(()=>[c(d.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[c(d.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[c(d.$slots,"doc-after",{},void 0,!0)]),"doc-top":f(()=>[c(d.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[c(d.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":f(()=>[c(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[c(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[c(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),k(os),c(d.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),g(V,{key:1}))}}}),Ca=$(Aa,[["__scopeId","data-v-a9a9e638"]]),Pe={Layout:Ca,enhanceApp:({app:o})=>{o.component("Badge",st)}},Ba=o=>{if(typeof document>"u")return{stabilizeScrollPosition:n=>async(...i)=>n(...i)};const e=document.documentElement;return{stabilizeScrollPosition:s=>async(...n)=>{const i=s(...n),l=o.value;if(!l)return i;const v=l.offsetTop-e.scrollTop;return await Ne(),e.scrollTop=l.offsetTop-v,i}}},Fe="vitepress:tabSharedState",J=typeof localStorage<"u"?localStorage:null,Oe="vitepress:tabsSharedState",Ha=()=>{const o=J==null?void 0:J.getItem(Oe);if(o)try{return JSON.parse(o)}catch{}return{}},Ea=o=>{J&&J.setItem(Oe,JSON.stringify(o))},Da=o=>{const e=et({});F(()=>e.content,(t,s)=>{t&&s&&Ea(t)},{deep:!0}),o.provide(Fe,e)},Fa=(o,e)=>{const t=q(Fe);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");z(()=>{t.content||(t.content=Ha())});const s=T(),n=y({get(){var d;const l=e.value,v=o.value;if(l){const _=(d=t.content)==null?void 0:d[l];if(_&&v.includes(_))return _}else{const _=s.value;if(_)return _}return v[0]},set(l){const v=e.value;v?t.content&&(t.content[v]=l):s.value=l}});return{selected:n,select:l=>{n.value=l}}};let Se=0;const Oa=()=>(Se++,""+Se);function Ua(){const o=Me();return y(()=>{var s;const t=(s=o.default)==null?void 0:s.call(o);return t?t.filter(n=>typeof n.type=="object"&&"__name"in n.type&&n.type.__name==="PluginTabsTab"&&n.props).map(n=>{var i;return(i=n.props)==null?void 0:i.label}):[]})}const Ue="vitepress:tabSingleState",ja=o=>{he(Ue,o)},Ga=()=>{const o=q(Ue);if(!o)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return o},za={class:"plugin-tabs"},Ka=["id","aria-selected","aria-controls","tabindex","onClick"],Ra=m({__name:"PluginTabs",props:{sharedStateKey:{}},setup(o){const e=o,t=Ua(),{selected:s,select:n}=Fa(t,tt(e,"sharedStateKey")),i=T(),{stabilizeScrollPosition:l}=Ba(i),v=l(n),d=T([]),_=b=>{var A;const P=t.value.indexOf(s.value);let S;b.key==="ArrowLeft"?S=P>=1?P-1:t.value.length-1:b.key==="ArrowRight"&&(S=P(a(),u("div",za,[p("div",{ref_key:"tablist",ref:i,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:_},[(a(!0),u(M,null,B(r(t),S=>(a(),u("button",{id:`tab-${S}-${r(V)}`,ref_for:!0,ref_key:"buttonRefs",ref:d,key:S,role:"tab",class:"plugin-tabs--tab","aria-selected":S===r(s),"aria-controls":`panel-${S}-${r(V)}`,tabindex:S===r(s)?0:-1,onClick:()=>r(v)(S)},w(S),9,Ka))),128))],544),c(b.$slots,"default")]))}}),Wa=["id","aria-labelledby"],qa=m({__name:"PluginTabsTab",props:{label:{}},setup(o){const{uid:e,selected:t}=Ga();return(s,n)=>r(t)===s.label?(a(),u("div",{key:0,id:`panel-${s.label}-${r(e)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${s.label}-${r(e)}`},[c(s.$slots,"default",{},void 0,!0)],8,Wa)):h("",!0)}}),Ja=$(qa,[["__scopeId","data-v-9b0d03d2"]]),Ya=o=>{Da(o),o.component("PluginTabs",Ra),o.component("PluginTabsTab",Ja)},Qa={extends:Pe,Layout(){return nt(Pe.Layout,null,{})},enhanceApp({app:o,router:e,siteData:t}){Ya(o)}};export{Qa as R,bo as c,L as u}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.DZXphNwP.js","assets/chunks/framework.B0Ss3dHN.js"])))=>i.map(i=>d[i]); +import{d as m,o as a,c as u,r as c,n as I,a as O,t as w,b as g,w as f,e as h,T as de,_ as $,u as je,i as Ge,f as ze,g as ve,h as y,j as p,k as r,l as K,m as re,p as T,q as F,s as Z,v as z,x as pe,y as fe,z as Ke,A as Re,B as R,F as M,C as B,D as Ve,E as x,G as k,H as E,I as Le,J as ee,K as G,L as q,M as We,N as Te,O as ie,P as Ne,Q as we,R as te,S as qe,U as Je,V as Ye,W as Ie,X as he,Y as Xe,Z as Qe,$ as Ze,a0 as xe,a1 as Me,a2 as et,a3 as tt,a4 as nt}from"./framework.B0Ss3dHN.js";const st=m({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(a(),u("span",{class:I(["VPBadge",e.type])},[c(e.$slots,"default",{},()=>[O(w(e.text),1)])],2))}}),ot={key:0,class:"VPBackdrop"},at=m({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(a(),g(de,{name:"fade"},{default:f(()=>[e.show?(a(),u("div",ot)):h("",!0)]),_:1}))}}),rt=$(at,[["__scopeId","data-v-b06cdb19"]]),L=je;function it(o,e){let t,s=!1;return()=>{t&&clearTimeout(t),s?t=setTimeout(o,e):(o(),(s=!0)&&setTimeout(()=>s=!1,e))}}function le(o){return/^\//.test(o)?o:`/${o}`}function me(o){const{pathname:e,search:t,hash:s,protocol:n}=new URL(o,"http://a.com");if(Ge(o)||o.startsWith("#")||!n.startsWith("http")||!ze(e))return o;const{site:i}=L(),l=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,i.value.cleanUrls?"":".html")}${t}${s}`);return ve(l)}function Y({correspondingLink:o=!1}={}){const{site:e,localeIndex:t,page:s,theme:n,hash:i}=L(),l=y(()=>{var d,_;return{label:(d=e.value.locales[t.value])==null?void 0:d.label,link:((_=e.value.locales[t.value])==null?void 0:_.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:y(()=>Object.entries(e.value.locales).flatMap(([d,_])=>l.value.label===_.label?[]:{text:_.label,link:lt(_.link||(d==="root"?"/":`/${d}/`),n.value.i18nRouting!==!1&&o,s.value.relativePath.slice(l.value.link.length-1),!e.value.cleanUrls)+i.value})),currentLang:l}}function lt(o,e,t,s){return e?o.replace(/\/$/,"")+le(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,s?".html":"")):o}const ct={class:"NotFound"},ut={class:"code"},dt={class:"title"},vt={class:"quote"},pt={class:"action"},ft=["href","aria-label"],ht=m({__name:"NotFound",setup(o){const{theme:e}=L(),{currentLang:t}=Y();return(s,n)=>{var i,l,v,d,_;return a(),u("div",ct,[p("p",ut,w(((i=r(e).notFound)==null?void 0:i.code)??"404"),1),p("h1",dt,w(((l=r(e).notFound)==null?void 0:l.title)??"PAGE NOT FOUND"),1),n[0]||(n[0]=p("div",{class:"divider"},null,-1)),p("blockquote",vt,w(((v=r(e).notFound)==null?void 0:v.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),p("div",pt,[p("a",{class:"link",href:r(ve)(r(t).link),"aria-label":((d=r(e).notFound)==null?void 0:d.linkLabel)??"go to home"},w(((_=r(e).notFound)==null?void 0:_.linkText)??"Take me home"),9,ft)])])}}}),mt=$(ht,[["__scopeId","data-v-951cab6c"]]);function Ae(o,e){if(Array.isArray(o))return X(o);if(o==null)return[];e=le(e);const t=Object.keys(o).sort((n,i)=>i.split("/").length-n.split("/").length).find(n=>e.startsWith(le(n))),s=t?o[t]:[];return Array.isArray(s)?X(s):X(s.items,s.base)}function _t(o){const e=[];let t=0;for(const s in o){const n=o[s];if(n.items){t=e.push(n);continue}e[t]||e.push({items:[]}),e[t].items.push(n)}return e}function bt(o){const e=[];function t(s){for(const n of s)n.text&&n.link&&e.push({text:n.text,link:n.link,docFooterText:n.docFooterText}),n.items&&t(n.items)}return t(o),e}function ce(o,e){return Array.isArray(e)?e.some(t=>ce(o,t)):K(o,e.link)?!0:e.items?ce(o,e.items):!1}function X(o,e){return[...o].map(t=>{const s={...t},n=s.base||e;return n&&s.link&&(s.link=n+s.link),s.items&&(s.items=X(s.items,n)),s})}function U(){const{frontmatter:o,page:e,theme:t}=L(),s=re("(min-width: 960px)"),n=T(!1),i=y(()=>{const C=t.value.sidebar,N=e.value.relativePath;return C?Ae(C,N):[]}),l=T(i.value);F(i,(C,N)=>{JSON.stringify(C)!==JSON.stringify(N)&&(l.value=i.value)});const v=y(()=>o.value.sidebar!==!1&&l.value.length>0&&o.value.layout!=="home"),d=y(()=>_?o.value.aside==null?t.value.aside==="left":o.value.aside==="left":!1),_=y(()=>o.value.layout==="home"?!1:o.value.aside!=null?!!o.value.aside:t.value.aside!==!1),V=y(()=>v.value&&s.value),b=y(()=>v.value?_t(l.value):[]);function P(){n.value=!0}function S(){n.value=!1}function A(){n.value?S():P()}return{isOpen:n,sidebar:l,sidebarGroups:b,hasSidebar:v,hasAside:_,leftAside:d,isSidebarEnabled:V,open:P,close:S,toggle:A}}function kt(o,e){let t;Z(()=>{t=o.value?document.activeElement:void 0}),z(()=>{window.addEventListener("keyup",s)}),pe(()=>{window.removeEventListener("keyup",s)});function s(n){n.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function gt(o){const{page:e,hash:t}=L(),s=T(!1),n=y(()=>o.value.collapsed!=null),i=y(()=>!!o.value.link),l=T(!1),v=()=>{l.value=K(e.value.relativePath,o.value.link)};F([e,o,t],v),z(v);const d=y(()=>l.value?!0:o.value.items?ce(e.value.relativePath,o.value.items):!1),_=y(()=>!!(o.value.items&&o.value.items.length));Z(()=>{s.value=!!(n.value&&o.value.collapsed)}),fe(()=>{(l.value||d.value)&&(s.value=!1)});function V(){n.value&&(s.value=!s.value)}return{collapsed:s,collapsible:n,isLink:i,isActiveLink:l,hasActiveLink:d,hasChildren:_,toggle:V}}function $t(){const{hasSidebar:o}=U(),e=re("(min-width: 960px)"),t=re("(min-width: 1280px)");return{isAsideEnabled:y(()=>!t.value&&!e.value?!1:o.value?t.value:e.value)}}const ue=[];function Ce(o){return typeof o.outline=="object"&&!Array.isArray(o.outline)&&o.outline.label||o.outlineTitle||"On this page"}function _e(o){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const s=Number(t.tagName[1]);return{element:t,title:yt(t),link:"#"+t.id,level:s}});return Pt(e,o)}function yt(o){let e="";for(const t of o.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function Pt(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[s,n]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;o=o.filter(l=>l.level>=s&&l.level<=n),ue.length=0;for(const{element:l,link:v}of o)ue.push({element:l,link:v});const i=[];e:for(let l=0;l=0;d--){const _=o[d];if(_.level{requestAnimationFrame(i),window.addEventListener("scroll",s)}),Ke(()=>{l(location.hash)}),pe(()=>{window.removeEventListener("scroll",s)});function i(){if(!t.value)return;const v=window.scrollY,d=window.innerHeight,_=document.body.offsetHeight,V=Math.abs(v+d-_)<1,b=ue.map(({element:S,link:A})=>({link:A,top:Vt(S)})).filter(({top:S})=>!Number.isNaN(S)).sort((S,A)=>S.top-A.top);if(!b.length){l(null);return}if(v<1){l(null);return}if(V){l(b[b.length-1].link);return}let P=null;for(const{link:S,top:A}of b){if(A>v+Re()+4)break;P=S}l(P)}function l(v){n&&n.classList.remove("active"),v==null?n=null:n=o.value.querySelector(`a[href="${decodeURIComponent(v)}"]`);const d=n;d?(d.classList.add("active"),e.value.style.top=d.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Vt(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}const Lt=["href","title"],Tt=m({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(o){function e({target:t}){const s=t.href.split("#")[1],n=document.getElementById(decodeURIComponent(s));n==null||n.focus({preventScroll:!0})}return(t,s)=>{const n=R("VPDocOutlineItem",!0);return a(),u("ul",{class:I(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),u(M,null,B(t.headers,({children:i,link:l,title:v})=>(a(),u("li",null,[p("a",{class:"outline-link",href:l,onClick:e,title:v},w(v),9,Lt),i!=null&&i.length?(a(),g(n,{key:0,headers:i},null,8,["headers"])):h("",!0)]))),256))],2)}}}),Be=$(Tt,[["__scopeId","data-v-3f927ebe"]]),Nt={class:"content"},wt={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},It=m({__name:"VPDocAsideOutline",setup(o){const{frontmatter:e,theme:t}=L(),s=Ve([]);x(()=>{s.value=_e(e.value.outline??t.value.outline)});const n=T(),i=T();return St(n,i),(l,v)=>(a(),u("nav",{"aria-labelledby":"doc-outline-aria-label",class:I(["VPDocAsideOutline",{"has-outline":s.value.length>0}]),ref_key:"container",ref:n},[p("div",Nt,[p("div",{class:"outline-marker",ref_key:"marker",ref:i},null,512),p("div",wt,w(r(Ce)(r(t))),1),k(Be,{headers:s.value,root:!0},null,8,["headers"])])],2))}}),Mt=$(It,[["__scopeId","data-v-b38bf2ff"]]),At={class:"VPDocAsideCarbonAds"},Ct=m({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,s)=>(a(),u("div",At,[k(r(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Bt={class:"VPDocAside"},Ht=m({__name:"VPDocAside",setup(o){const{theme:e}=L();return(t,s)=>(a(),u("div",Bt,[c(t.$slots,"aside-top",{},void 0,!0),c(t.$slots,"aside-outline-before",{},void 0,!0),k(Mt),c(t.$slots,"aside-outline-after",{},void 0,!0),s[0]||(s[0]=p("div",{class:"spacer"},null,-1)),c(t.$slots,"aside-ads-before",{},void 0,!0),r(e).carbonAds?(a(),g(Ct,{key:0,"carbon-ads":r(e).carbonAds},null,8,["carbon-ads"])):h("",!0),c(t.$slots,"aside-ads-after",{},void 0,!0),c(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Et=$(Ht,[["__scopeId","data-v-6d7b3c46"]]);function Dt(){const{theme:o,page:e}=L();return y(()=>{const{text:t="Edit this page",pattern:s=""}=o.value.editLink||{};let n;return typeof s=="function"?n=s(e.value):n=s.replace(/:path/g,e.value.filePath),{url:n,text:t}})}function Ft(){const{page:o,theme:e,frontmatter:t}=L();return y(()=>{var _,V,b,P,S,A,C,N;const s=Ae(e.value.sidebar,o.value.relativePath),n=bt(s),i=Ot(n,H=>H.link.replace(/[?#].*$/,"")),l=i.findIndex(H=>K(o.value.relativePath,H.link)),v=((_=e.value.docFooter)==null?void 0:_.prev)===!1&&!t.value.prev||t.value.prev===!1,d=((V=e.value.docFooter)==null?void 0:V.next)===!1&&!t.value.next||t.value.next===!1;return{prev:v?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((b=i[l-1])==null?void 0:b.docFooterText)??((P=i[l-1])==null?void 0:P.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((S=i[l-1])==null?void 0:S.link)},next:d?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((A=i[l+1])==null?void 0:A.docFooterText)??((C=i[l+1])==null?void 0:C.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((N=i[l+1])==null?void 0:N.link)}}})}function Ot(o,e){const t=new Set;return o.filter(s=>{const n=e(s);return t.has(n)?!1:t.add(n)})}const D=m({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(o){const e=o,t=y(()=>e.tag??(e.href?"a":"span")),s=y(()=>e.href&&Le.test(e.href)||e.target==="_blank");return(n,i)=>(a(),g(E(t.value),{class:I(["VPLink",{link:n.href,"vp-external-link-icon":s.value,"no-icon":n.noIcon}]),href:n.href?r(me)(n.href):void 0,target:n.target??(s.value?"_blank":void 0),rel:n.rel??(s.value?"noreferrer":void 0)},{default:f(()=>[c(n.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Ut={class:"VPLastUpdated"},jt=["datetime"],Gt=m({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,lang:s}=L(),n=y(()=>new Date(t.value.lastUpdated)),i=y(()=>n.value.toISOString()),l=T("");return z(()=>{Z(()=>{var v,d,_;l.value=new Intl.DateTimeFormat((d=(v=e.value.lastUpdated)==null?void 0:v.formatOptions)!=null&&d.forceLocale?s.value:void 0,((_=e.value.lastUpdated)==null?void 0:_.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(n.value)})}),(v,d)=>{var _;return a(),u("p",Ut,[O(w(((_=r(e).lastUpdated)==null?void 0:_.text)||r(e).lastUpdatedText||"Last updated")+": ",1),p("time",{datetime:i.value},w(l.value),9,jt)])}}}),zt=$(Gt,[["__scopeId","data-v-475f71b8"]]),Kt={key:0,class:"VPDocFooter"},Rt={key:0,class:"edit-info"},Wt={key:0,class:"edit-link"},qt={key:1,class:"last-updated"},Jt={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},Yt={class:"pager"},Xt=["innerHTML"],Qt=["innerHTML"],Zt={class:"pager"},xt=["innerHTML"],en=["innerHTML"],tn=m({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:s}=L(),n=Dt(),i=Ft(),l=y(()=>e.value.editLink&&s.value.editLink!==!1),v=y(()=>t.value.lastUpdated),d=y(()=>l.value||v.value||i.value.prev||i.value.next);return(_,V)=>{var b,P,S,A;return d.value?(a(),u("footer",Kt,[c(_.$slots,"doc-footer-before",{},void 0,!0),l.value||v.value?(a(),u("div",Rt,[l.value?(a(),u("div",Wt,[k(D,{class:"edit-link-button",href:r(n).url,"no-icon":!0},{default:f(()=>[V[0]||(V[0]=p("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),O(" "+w(r(n).text),1)]),_:1},8,["href"])])):h("",!0),v.value?(a(),u("div",qt,[k(zt)])):h("",!0)])):h("",!0),(b=r(i).prev)!=null&&b.link||(P=r(i).next)!=null&&P.link?(a(),u("nav",Jt,[V[1]||(V[1]=p("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),p("div",Yt,[(S=r(i).prev)!=null&&S.link?(a(),g(D,{key:0,class:"pager-link prev",href:r(i).prev.link},{default:f(()=>{var C;return[p("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.prev)||"Previous page"},null,8,Xt),p("span",{class:"title",innerHTML:r(i).prev.text},null,8,Qt)]}),_:1},8,["href"])):h("",!0)]),p("div",Zt,[(A=r(i).next)!=null&&A.link?(a(),g(D,{key:0,class:"pager-link next",href:r(i).next.link},{default:f(()=>{var C;return[p("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.next)||"Next page"},null,8,xt),p("span",{class:"title",innerHTML:r(i).next.text},null,8,en)]}),_:1},8,["href"])):h("",!0)])])):h("",!0)])):h("",!0)}}}),nn=$(tn,[["__scopeId","data-v-4f9813fa"]]),sn={class:"container"},on={class:"aside-container"},an={class:"aside-content"},rn={class:"content"},ln={class:"content-container"},cn={class:"main"},un=m({__name:"VPDoc",setup(o){const{theme:e}=L(),t=ee(),{hasSidebar:s,hasAside:n,leftAside:i}=U(),l=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(v,d)=>{const _=R("Content");return a(),u("div",{class:I(["VPDoc",{"has-sidebar":r(s),"has-aside":r(n)}])},[c(v.$slots,"doc-top",{},void 0,!0),p("div",sn,[r(n)?(a(),u("div",{key:0,class:I(["aside",{"left-aside":r(i)}])},[d[0]||(d[0]=p("div",{class:"aside-curtain"},null,-1)),p("div",on,[p("div",an,[k(Et,null,{"aside-top":f(()=>[c(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[c(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[c(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):h("",!0),p("div",rn,[p("div",ln,[c(v.$slots,"doc-before",{},void 0,!0),p("main",cn,[k(_,{class:I(["vp-doc",[l.value,r(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),k(nn,null,{"doc-footer-before":f(()=>[c(v.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(v.$slots,"doc-after",{},void 0,!0)])])]),c(v.$slots,"doc-bottom",{},void 0,!0)],2)}}}),dn=$(un,[["__scopeId","data-v-83890dd9"]]),vn=m({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(o){const e=o,t=y(()=>e.href&&Le.test(e.href)),s=y(()=>e.tag||e.href?"a":"button");return(n,i)=>(a(),g(E(s.value),{class:I(["VPButton",[n.size,n.theme]]),href:n.href?r(me)(n.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:f(()=>[O(w(n.text),1)]),_:1},8,["class","href","target","rel"]))}}),pn=$(vn,[["__scopeId","data-v-14206e74"]]),fn=["src","alt"],hn=m({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{const s=R("VPImage",!0);return e.image?(a(),u(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),u("img",G({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:r(ve)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,fn)):(a(),u(M,{key:1},[k(s,G({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),k(s,G({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):h("",!0)}}}),Q=$(hn,[["__scopeId","data-v-35a7d0b8"]]),mn={class:"container"},_n={class:"main"},bn={key:0,class:"name"},kn=["innerHTML"],gn=["innerHTML"],$n=["innerHTML"],yn={key:0,class:"actions"},Pn={key:0,class:"image"},Sn={class:"image-container"},Vn=m({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=q("hero-image-slot-exists");return(t,s)=>(a(),u("div",{class:I(["VPHero",{"has-image":t.image||r(e)}])},[p("div",mn,[p("div",_n,[c(t.$slots,"home-hero-info-before",{},void 0,!0),c(t.$slots,"home-hero-info",{},()=>[t.name?(a(),u("h1",bn,[p("span",{innerHTML:t.name,class:"clip"},null,8,kn)])):h("",!0),t.text?(a(),u("p",{key:1,innerHTML:t.text,class:"text"},null,8,gn)):h("",!0),t.tagline?(a(),u("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,$n)):h("",!0)],!0),c(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),u("div",yn,[(a(!0),u(M,null,B(t.actions,n=>(a(),u("div",{key:n.link,class:"action"},[k(pn,{tag:"a",size:"medium",theme:n.theme,text:n.text,href:n.link,target:n.target,rel:n.rel},null,8,["theme","text","href","target","rel"])]))),128))])):h("",!0),c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||r(e)?(a(),u("div",Pn,[p("div",Sn,[s[0]||(s[0]=p("div",{class:"image-bg"},null,-1)),c(t.$slots,"home-hero-image",{},()=>[t.image?(a(),g(Q,{key:0,class:"image-src",image:t.image},null,8,["image"])):h("",!0)],!0)])])):h("",!0)])],2))}}),Ln=$(Vn,[["__scopeId","data-v-955009fc"]]),Tn=m({__name:"VPHomeHero",setup(o){const{frontmatter:e}=L();return(t,s)=>r(e).hero?(a(),g(Ln,{key:0,class:"VPHomeHero",name:r(e).hero.name,text:r(e).hero.text,tagline:r(e).hero.tagline,image:r(e).hero.image,actions:r(e).hero.actions},{"home-hero-info-before":f(()=>[c(t.$slots,"home-hero-info-before")]),"home-hero-info":f(()=>[c(t.$slots,"home-hero-info")]),"home-hero-info-after":f(()=>[c(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":f(()=>[c(t.$slots,"home-hero-actions-after")]),"home-hero-image":f(()=>[c(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):h("",!0)}}),Nn={class:"box"},wn={key:0,class:"icon"},In=["innerHTML"],Mn=["innerHTML"],An=["innerHTML"],Cn={key:4,class:"link-text"},Bn={class:"link-text-value"},Hn=m({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(o){return(e,t)=>(a(),g(D,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:f(()=>[p("article",Nn,[typeof e.icon=="object"&&e.icon.wrap?(a(),u("div",wn,[k(Q,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),g(Q,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),u("div",{key:2,class:"icon",innerHTML:e.icon},null,8,In)):h("",!0),p("h2",{class:"title",innerHTML:e.title},null,8,Mn),e.details?(a(),u("p",{key:3,class:"details",innerHTML:e.details},null,8,An)):h("",!0),e.linkText?(a(),u("div",Cn,[p("p",Bn,[O(w(e.linkText)+" ",1),t[0]||(t[0]=p("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):h("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),En=$(Hn,[["__scopeId","data-v-f5e9645b"]]),Dn={key:0,class:"VPFeatures"},Fn={class:"container"},On={class:"items"},Un=m({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=y(()=>{const s=e.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s>3)return"grid-4"}else return});return(s,n)=>s.features?(a(),u("div",Dn,[p("div",Fn,[p("div",On,[(a(!0),u(M,null,B(s.features,i=>(a(),u("div",{key:i.title,class:I(["item",[t.value]])},[k(En,{icon:i.icon,title:i.title,details:i.details,link:i.link,"link-text":i.linkText,rel:i.rel,target:i.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):h("",!0)}}),jn=$(Un,[["__scopeId","data-v-d0a190d7"]]),Gn=m({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=L();return(t,s)=>r(e).features?(a(),g(jn,{key:0,class:"VPHomeFeatures",features:r(e).features},null,8,["features"])):h("",!0)}}),zn=m({__name:"VPHomeContent",setup(o){const{width:e}=We({initialWidth:0,includeScrollbar:!1});return(t,s)=>(a(),u("div",{class:"vp-doc container",style:Te(r(e)?{"--vp-offset":`calc(50% - ${r(e)/2}px)`}:{})},[c(t.$slots,"default",{},void 0,!0)],4))}}),Kn=$(zn,[["__scopeId","data-v-7a48a447"]]),Rn={class:"VPHome"},Wn=m({__name:"VPHome",setup(o){const{frontmatter:e}=L();return(t,s)=>{const n=R("Content");return a(),u("div",Rn,[c(t.$slots,"home-hero-before",{},void 0,!0),k(Tn,null,{"home-hero-info-before":f(()=>[c(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(t.$slots,"home-hero-after",{},void 0,!0),c(t.$slots,"home-features-before",{},void 0,!0),k(Gn),c(t.$slots,"home-features-after",{},void 0,!0),r(e).markdownStyles!==!1?(a(),g(Kn,{key:0},{default:f(()=>[k(n)]),_:1})):(a(),g(n,{key:1}))])}}}),qn=$(Wn,[["__scopeId","data-v-cbb6ec48"]]),Jn={},Yn={class:"VPPage"};function Xn(o,e){const t=R("Content");return a(),u("div",Yn,[c(o.$slots,"page-top"),k(t),c(o.$slots,"page-bottom")])}const Qn=$(Jn,[["render",Xn]]),Zn=m({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=L(),{hasSidebar:s}=U();return(n,i)=>(a(),u("div",{class:I(["VPContent",{"has-sidebar":r(s),"is-home":r(t).layout==="home"}]),id:"VPContent"},[r(e).isNotFound?c(n.$slots,"not-found",{key:0},()=>[k(mt)],!0):r(t).layout==="page"?(a(),g(Qn,{key:1},{"page-top":f(()=>[c(n.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[c(n.$slots,"page-bottom",{},void 0,!0)]),_:3})):r(t).layout==="home"?(a(),g(qn,{key:2},{"home-hero-before":f(()=>[c(n.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[c(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(n.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[c(n.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[c(n.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[c(n.$slots,"home-features-after",{},void 0,!0)]),_:3})):r(t).layout&&r(t).layout!=="doc"?(a(),g(E(r(t).layout),{key:3})):(a(),g(dn,{key:4},{"doc-top":f(()=>[c(n.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[c(n.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":f(()=>[c(n.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[c(n.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[c(n.$slots,"doc-after",{},void 0,!0)]),"aside-top":f(()=>[c(n.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":f(()=>[c(n.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(n.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(n.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(n.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":f(()=>[c(n.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),xn=$(Zn,[["__scopeId","data-v-91765379"]]),es={class:"container"},ts=["innerHTML"],ns=["innerHTML"],ss=m({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=L(),{hasSidebar:s}=U();return(n,i)=>r(e).footer&&r(t).footer!==!1?(a(),u("footer",{key:0,class:I(["VPFooter",{"has-sidebar":r(s)}])},[p("div",es,[r(e).footer.message?(a(),u("p",{key:0,class:"message",innerHTML:r(e).footer.message},null,8,ts)):h("",!0),r(e).footer.copyright?(a(),u("p",{key:1,class:"copyright",innerHTML:r(e).footer.copyright},null,8,ns)):h("",!0)])],2)):h("",!0)}}),os=$(ss,[["__scopeId","data-v-c970a860"]]);function as(){const{theme:o,frontmatter:e}=L(),t=Ve([]),s=y(()=>t.value.length>0);return x(()=>{t.value=_e(e.value.outline??o.value.outline)}),{headers:t,hasLocalNav:s}}const rs={class:"menu-text"},is={class:"header"},ls={class:"outline"},cs=m({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=L(),s=T(!1),n=T(0),i=T(),l=T();function v(b){var P;(P=i.value)!=null&&P.contains(b.target)||(s.value=!1)}F(s,b=>{if(b){document.addEventListener("click",v);return}document.removeEventListener("click",v)}),ie("Escape",()=>{s.value=!1}),x(()=>{s.value=!1});function d(){s.value=!s.value,n.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function _(b){b.target.classList.contains("outline-link")&&(l.value&&(l.value.style.transition="none"),Ne(()=>{s.value=!1}))}function V(){s.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(b,P)=>(a(),u("div",{class:"VPLocalNavOutlineDropdown",style:Te({"--vp-vh":n.value+"px"}),ref_key:"main",ref:i},[b.headers.length>0?(a(),u("button",{key:0,onClick:d,class:I({open:s.value})},[p("span",rs,w(r(Ce)(r(t))),1),P[0]||(P[0]=p("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(a(),u("button",{key:1,onClick:V},w(r(t).returnToTopLabel||"Return to top"),1)),k(de,{name:"flyout"},{default:f(()=>[s.value?(a(),u("div",{key:0,ref_key:"items",ref:l,class:"items",onClick:_},[p("div",is,[p("a",{class:"top-link",href:"#",onClick:V},w(r(t).returnToTopLabel||"Return to top"),1)]),p("div",ls,[k(Be,{headers:b.headers},null,8,["headers"])])],512)):h("",!0)]),_:1})],4))}}),us=$(cs,[["__scopeId","data-v-bc9dc845"]]),ds={class:"container"},vs=["aria-expanded"],ps={class:"menu-text"},fs=m({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e,frontmatter:t}=L(),{hasSidebar:s}=U(),{headers:n}=as(),{y:i}=we(),l=T(0);z(()=>{l.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),x(()=>{n.value=_e(t.value.outline??e.value.outline)});const v=y(()=>n.value.length===0),d=y(()=>v.value&&!s.value),_=y(()=>({VPLocalNav:!0,"has-sidebar":s.value,empty:v.value,fixed:d.value}));return(V,b)=>r(t).layout!=="home"&&(!d.value||r(i)>=l.value)?(a(),u("div",{key:0,class:I(_.value)},[p("div",ds,[r(s)?(a(),u("button",{key:0,class:"menu","aria-expanded":V.open,"aria-controls":"VPSidebarNav",onClick:b[0]||(b[0]=P=>V.$emit("open-menu"))},[b[1]||(b[1]=p("span",{class:"vpi-align-left menu-icon"},null,-1)),p("span",ps,w(r(e).sidebarMenuLabel||"Menu"),1)],8,vs)):h("",!0),k(us,{headers:r(n),navHeight:l.value},null,8,["headers","navHeight"])])],2)):h("",!0)}}),hs=$(fs,[["__scopeId","data-v-070ab83d"]]);function ms(){const o=T(!1);function e(){o.value=!0,window.addEventListener("resize",n)}function t(){o.value=!1,window.removeEventListener("resize",n)}function s(){o.value?t():e()}function n(){window.outerWidth>=768&&t()}const i=ee();return F(()=>i.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:s}}const _s={},bs={class:"VPSwitch",type:"button",role:"switch"},ks={class:"check"},gs={key:0,class:"icon"};function $s(o,e){return a(),u("button",bs,[p("span",ks,[o.$slots.default?(a(),u("span",gs,[c(o.$slots,"default",{},void 0,!0)])):h("",!0)])])}const ys=$(_s,[["render",$s],["__scopeId","data-v-4a1c76db"]]),Ps=m({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=L(),s=q("toggle-appearance",()=>{e.value=!e.value}),n=T("");return fe(()=>{n.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(i,l)=>(a(),g(ys,{title:n.value,class:"VPSwitchAppearance","aria-checked":r(e),onClick:r(s)},{default:f(()=>l[0]||(l[0]=[p("span",{class:"vpi-sun sun"},null,-1),p("span",{class:"vpi-moon moon"},null,-1)])),_:1},8,["title","aria-checked","onClick"]))}}),be=$(Ps,[["__scopeId","data-v-e40a8bb6"]]),Ss={key:0,class:"VPNavBarAppearance"},Vs=m({__name:"VPNavBarAppearance",setup(o){const{site:e}=L();return(t,s)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",Ss,[k(be)])):h("",!0)}}),Ls=$(Vs,[["__scopeId","data-v-af096f4a"]]),ke=T();let He=!1,ae=0;function Ts(o){const e=T(!1);if(te){!He&&Ns(),ae++;const t=F(ke,s=>{var n,i,l;s===o.el.value||(n=o.el.value)!=null&&n.contains(s)?(e.value=!0,(i=o.onFocus)==null||i.call(o)):(e.value=!1,(l=o.onBlur)==null||l.call(o))});pe(()=>{t(),ae--,ae||ws()})}return qe(e)}function Ns(){document.addEventListener("focusin",Ee),He=!0,ke.value=document.activeElement}function ws(){document.removeEventListener("focusin",Ee)}function Ee(){ke.value=document.activeElement}const Is={class:"VPMenuLink"},Ms=m({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=L();return(t,s)=>(a(),u("div",Is,[k(D,{class:I({active:r(K)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:f(()=>[O(w(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),ne=$(Ms,[["__scopeId","data-v-8b74d055"]]),As={class:"VPMenuGroup"},Cs={key:0,class:"title"},Bs=m({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),u("div",As,[e.text?(a(),u("p",Cs,w(e.text),1)):h("",!0),(a(!0),u(M,null,B(e.items,s=>(a(),u(M,null,["link"in s?(a(),g(ne,{key:0,item:s},null,8,["item"])):h("",!0)],64))),256))]))}}),Hs=$(Bs,[["__scopeId","data-v-48c802d0"]]),Es={class:"VPMenu"},Ds={key:0,class:"items"},Fs=m({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(a(),u("div",Es,[e.items?(a(),u("div",Ds,[(a(!0),u(M,null,B(e.items,s=>(a(),u(M,{key:JSON.stringify(s)},["link"in s?(a(),g(ne,{key:0,item:s},null,8,["item"])):"component"in s?(a(),g(E(s.component),G({key:1,ref_for:!0},s.props),null,16)):(a(),g(Hs,{key:2,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):h("",!0),c(e.$slots,"default",{},void 0,!0)]))}}),Os=$(Fs,[["__scopeId","data-v-7dd3104a"]]),Us=["aria-expanded","aria-label"],js={key:0,class:"text"},Gs=["innerHTML"],zs={key:1,class:"vpi-more-horizontal icon"},Ks={class:"menu"},Rs=m({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=T(!1),t=T();Ts({el:t,onBlur:s});function s(){e.value=!1}return(n,i)=>(a(),u("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:i[1]||(i[1]=l=>e.value=!0),onMouseleave:i[2]||(i[2]=l=>e.value=!1)},[p("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":n.label,onClick:i[0]||(i[0]=l=>e.value=!e.value)},[n.button||n.icon?(a(),u("span",js,[n.icon?(a(),u("span",{key:0,class:I([n.icon,"option-icon"])},null,2)):h("",!0),n.button?(a(),u("span",{key:1,innerHTML:n.button},null,8,Gs)):h("",!0),i[3]||(i[3]=p("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(a(),u("span",zs))],8,Us),p("div",Ks,[k(Os,{items:n.items},{default:f(()=>[c(n.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),ge=$(Rs,[["__scopeId","data-v-e5380155"]]),Ws=["href","aria-label","innerHTML"],qs=m({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=y(()=>typeof e.icon=="object"?e.icon.svg:``);return(s,n)=>(a(),u("a",{class:"VPSocialLink no-icon",href:s.link,"aria-label":s.ariaLabel??(typeof s.icon=="string"?s.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,Ws))}}),Js=$(qs,[["__scopeId","data-v-717b8b75"]]),Ys={class:"VPSocialLinks"},Xs=m({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(a(),u("div",Ys,[(a(!0),u(M,null,B(e.links,({link:s,icon:n,ariaLabel:i})=>(a(),g(Js,{key:s,icon:n,link:s,ariaLabel:i},null,8,["icon","link","ariaLabel"]))),128))]))}}),$e=$(Xs,[["__scopeId","data-v-ee7a9424"]]),Qs={key:0,class:"group translations"},Zs={class:"trans-title"},xs={key:1,class:"group"},eo={class:"item appearance"},to={class:"label"},no={class:"appearance-action"},so={key:2,class:"group"},oo={class:"item social-links"},ao=m({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=L(),{localeLinks:s,currentLang:n}=Y({correspondingLink:!0}),i=y(()=>s.value.length&&n.value.label||e.value.appearance||t.value.socialLinks);return(l,v)=>i.value?(a(),g(ge,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:f(()=>[r(s).length&&r(n).label?(a(),u("div",Qs,[p("p",Zs,w(r(n).label),1),(a(!0),u(M,null,B(r(s),d=>(a(),g(ne,{key:d.link,item:d},null,8,["item"]))),128))])):h("",!0),r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",xs,[p("div",eo,[p("p",to,w(r(t).darkModeSwitchLabel||"Appearance"),1),p("div",no,[k(be)])])])):h("",!0),r(t).socialLinks?(a(),u("div",so,[p("div",oo,[k($e,{class:"social-links-list",links:r(t).socialLinks},null,8,["links"])])])):h("",!0)]),_:1})):h("",!0)}}),ro=$(ao,[["__scopeId","data-v-925effce"]]),io=["aria-expanded"],lo=m({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(a(),u("button",{type:"button",class:I(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=s=>e.$emit("click"))},t[1]||(t[1]=[p("span",{class:"container"},[p("span",{class:"top"}),p("span",{class:"middle"}),p("span",{class:"bottom"})],-1)]),10,io))}}),co=$(lo,[["__scopeId","data-v-5dea55bf"]]),uo=["innerHTML"],vo=m({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=L();return(t,s)=>(a(),g(D,{class:I({VPNavBarMenuLink:!0,active:r(K)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:f(()=>[p("span",{innerHTML:t.item.text},null,8,uo)]),_:1},8,["class","href","noIcon","target","rel"]))}}),po=$(vo,[["__scopeId","data-v-ed5ac1f6"]]),fo=m({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=L(),s=i=>"component"in i?!1:"link"in i?K(t.value.relativePath,i.link,!!e.item.activeMatch):i.items.some(s),n=y(()=>s(e.item));return(i,l)=>(a(),g(ge,{class:I({VPNavBarMenuGroup:!0,active:r(K)(r(t).relativePath,i.item.activeMatch,!!i.item.activeMatch)||n.value}),button:i.item.text,items:i.item.items},null,8,["class","button","items"]))}}),ho={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},mo=m({__name:"VPNavBarMenu",setup(o){const{theme:e}=L();return(t,s)=>r(e).nav?(a(),u("nav",ho,[s[0]||(s[0]=p("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(a(!0),u(M,null,B(r(e).nav,n=>(a(),u(M,{key:JSON.stringify(n)},["link"in n?(a(),g(po,{key:0,item:n},null,8,["item"])):"component"in n?(a(),g(E(n.component),G({key:1,ref_for:!0},n.props),null,16)):(a(),g(fo,{key:2,item:n},null,8,["item"]))],64))),128))])):h("",!0)}}),_o=$(mo,[["__scopeId","data-v-e6d46098"]]);function bo(o){const{localeIndex:e,theme:t}=L();function s(n){var A,C,N;const i=n.split("."),l=(A=t.value.search)==null?void 0:A.options,v=l&&typeof l=="object",d=v&&((N=(C=l.locales)==null?void 0:C[e.value])==null?void 0:N.translations)||null,_=v&&l.translations||null;let V=d,b=_,P=o;const S=i.pop();for(const H of i){let j=null;const W=P==null?void 0:P[H];W&&(j=P=W);const se=b==null?void 0:b[H];se&&(j=b=se);const oe=V==null?void 0:V[H];oe&&(j=V=oe),W||(P=j),se||(b=j),oe||(V=j)}return(V==null?void 0:V[S])??(b==null?void 0:b[S])??(P==null?void 0:P[S])??""}return s}const ko=["aria-label"],go={class:"DocSearch-Button-Container"},$o={class:"DocSearch-Button-Placeholder"},ye=m({__name:"VPNavBarSearchButton",setup(o){const t=bo({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(s,n)=>(a(),u("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":r(t)("button.buttonAriaLabel")},[p("span",go,[n[0]||(n[0]=p("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),p("span",$o,w(r(t)("button.buttonText")),1)]),n[1]||(n[1]=p("span",{class:"DocSearch-Button-Keys"},[p("kbd",{class:"DocSearch-Button-Key"}),p("kbd",{class:"DocSearch-Button-Key"},"K")],-1))],8,ko))}}),yo={class:"VPNavBarSearch"},Po={id:"local-search"},So={key:1,id:"docsearch"},Vo=m({__name:"VPNavBarSearch",setup(o){const e=Je(()=>Ye(()=>import("./VPLocalSearchBox.DZXphNwP.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:s}=L(),n=T(!1),i=T(!1);z(()=>{});function l(){n.value||(n.value=!0,setTimeout(v,16))}function v(){const b=new Event("keydown");b.key="k",b.metaKey=!0,window.dispatchEvent(b),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||v()},16)}function d(b){const P=b.target,S=P.tagName;return P.isContentEditable||S==="INPUT"||S==="SELECT"||S==="TEXTAREA"}const _=T(!1);ie("k",b=>{(b.ctrlKey||b.metaKey)&&(b.preventDefault(),_.value=!0)}),ie("/",b=>{d(b)||(b.preventDefault(),_.value=!0)});const V="local";return(b,P)=>{var S;return a(),u("div",yo,[r(V)==="local"?(a(),u(M,{key:0},[_.value?(a(),g(r(e),{key:0,onClose:P[0]||(P[0]=A=>_.value=!1)})):h("",!0),p("div",Po,[k(ye,{onClick:P[1]||(P[1]=A=>_.value=!0)})])],64)):r(V)==="algolia"?(a(),u(M,{key:1},[n.value?(a(),g(r(t),{key:0,algolia:((S=r(s).search)==null?void 0:S.options)??r(s).algolia,onVnodeBeforeMount:P[2]||(P[2]=A=>i.value=!0)},null,8,["algolia"])):h("",!0),i.value?h("",!0):(a(),u("div",So,[k(ye,{onClick:l})]))],64)):h("",!0)])}}}),Lo=m({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=L();return(t,s)=>r(e).socialLinks?(a(),g($e,{key:0,class:"VPNavBarSocialLinks",links:r(e).socialLinks},null,8,["links"])):h("",!0)}}),To=$(Lo,[["__scopeId","data-v-164c457f"]]),No=["href","rel","target"],wo={key:1},Io={key:2},Mo=m({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=L(),{hasSidebar:s}=U(),{currentLang:n}=Y(),i=y(()=>{var d;return typeof t.value.logoLink=="string"?t.value.logoLink:(d=t.value.logoLink)==null?void 0:d.link}),l=y(()=>{var d;return typeof t.value.logoLink=="string"||(d=t.value.logoLink)==null?void 0:d.rel}),v=y(()=>{var d;return typeof t.value.logoLink=="string"||(d=t.value.logoLink)==null?void 0:d.target});return(d,_)=>(a(),u("div",{class:I(["VPNavBarTitle",{"has-sidebar":r(s)}])},[p("a",{class:"title",href:i.value??r(me)(r(n).link),rel:l.value,target:v.value},[c(d.$slots,"nav-bar-title-before",{},void 0,!0),r(t).logo?(a(),g(Q,{key:0,class:"logo",image:r(t).logo},null,8,["image"])):h("",!0),r(t).siteTitle?(a(),u("span",wo,w(r(t).siteTitle),1)):r(t).siteTitle===void 0?(a(),u("span",Io,w(r(e).title),1)):h("",!0),c(d.$slots,"nav-bar-title-after",{},void 0,!0)],8,No)],2))}}),Ao=$(Mo,[["__scopeId","data-v-28a961f9"]]),Co={class:"items"},Bo={class:"title"},Ho=m({__name:"VPNavBarTranslations",setup(o){const{theme:e}=L(),{localeLinks:t,currentLang:s}=Y({correspondingLink:!0});return(n,i)=>r(t).length&&r(s).label?(a(),g(ge,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:r(e).langMenuLabel||"Change language"},{default:f(()=>[p("div",Co,[p("p",Bo,w(r(s).label),1),(a(!0),u(M,null,B(r(t),l=>(a(),g(ne,{key:l.link,item:l},null,8,["item"]))),128))])]),_:1},8,["label"])):h("",!0)}}),Eo=$(Ho,[["__scopeId","data-v-c80d9ad0"]]),Do={class:"wrapper"},Fo={class:"container"},Oo={class:"title"},Uo={class:"content"},jo={class:"content-body"},Go=m({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const e=o,{y:t}=we(),{hasSidebar:s}=U(),{frontmatter:n}=L(),i=T({});return fe(()=>{i.value={"has-sidebar":s.value,home:n.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(l,v)=>(a(),u("div",{class:I(["VPNavBar",i.value])},[p("div",Do,[p("div",Fo,[p("div",Oo,[k(Ao,null,{"nav-bar-title-before":f(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),p("div",Uo,[p("div",jo,[c(l.$slots,"nav-bar-content-before",{},void 0,!0),k(Vo,{class:"search"}),k(_o,{class:"menu"}),k(Eo,{class:"translations"}),k(Ls,{class:"appearance"}),k(To,{class:"social-links"}),k(ro,{class:"extra"}),c(l.$slots,"nav-bar-content-after",{},void 0,!0),k(co,{class:"hamburger",active:l.isScreenOpen,onClick:v[0]||(v[0]=d=>l.$emit("toggle-screen"))},null,8,["active"])])])])]),v[1]||(v[1]=p("div",{class:"divider"},[p("div",{class:"divider-line"})],-1))],2))}}),zo=$(Go,[["__scopeId","data-v-822684d1"]]),Ko={key:0,class:"VPNavScreenAppearance"},Ro={class:"text"},Wo=m({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=L();return(s,n)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",Ko,[p("p",Ro,w(r(t).darkModeSwitchLabel||"Appearance"),1),k(be)])):h("",!0)}}),qo=$(Wo,[["__scopeId","data-v-ffb44008"]]),Jo=m({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=q("close-screen");return(t,s)=>(a(),g(D,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),Yo=$(Jo,[["__scopeId","data-v-27d04aeb"]]),Xo=m({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=q("close-screen");return(t,s)=>(a(),g(D,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e)},{default:f(()=>[O(w(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),De=$(Xo,[["__scopeId","data-v-7179dbb7"]]),Qo={class:"VPNavScreenMenuGroupSection"},Zo={key:0,class:"title"},xo=m({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),u("div",Qo,[e.text?(a(),u("p",Zo,w(e.text),1)):h("",!0),(a(!0),u(M,null,B(e.items,s=>(a(),g(De,{key:s.text,item:s},null,8,["item"]))),128))]))}}),ea=$(xo,[["__scopeId","data-v-4b8941ac"]]),ta=["aria-controls","aria-expanded"],na=["innerHTML"],sa=["id"],oa={key:0,class:"item"},aa={key:1,class:"item"},ra={key:2,class:"group"},ia=m({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=T(!1),s=y(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function n(){t.value=!t.value}return(i,l)=>(a(),u("div",{class:I(["VPNavScreenMenuGroup",{open:t.value}])},[p("button",{class:"button","aria-controls":s.value,"aria-expanded":t.value,onClick:n},[p("span",{class:"button-text",innerHTML:i.text},null,8,na),l[0]||(l[0]=p("span",{class:"vpi-plus button-icon"},null,-1))],8,ta),p("div",{id:s.value,class:"items"},[(a(!0),u(M,null,B(i.items,v=>(a(),u(M,{key:JSON.stringify(v)},["link"in v?(a(),u("div",oa,[k(De,{item:v},null,8,["item"])])):"component"in v?(a(),u("div",aa,[(a(),g(E(v.component),G({ref_for:!0},v.props,{"screen-menu":""}),null,16))])):(a(),u("div",ra,[k(ea,{text:v.text,items:v.items},null,8,["text","items"])]))],64))),128))],8,sa)],2))}}),la=$(ia,[["__scopeId","data-v-875057a5"]]),ca={key:0,class:"VPNavScreenMenu"},ua=m({__name:"VPNavScreenMenu",setup(o){const{theme:e}=L();return(t,s)=>r(e).nav?(a(),u("nav",ca,[(a(!0),u(M,null,B(r(e).nav,n=>(a(),u(M,{key:JSON.stringify(n)},["link"in n?(a(),g(Yo,{key:0,item:n},null,8,["item"])):"component"in n?(a(),g(E(n.component),G({key:1,ref_for:!0},n.props,{"screen-menu":""}),null,16)):(a(),g(la,{key:2,text:n.text||"",items:n.items},null,8,["text","items"]))],64))),128))])):h("",!0)}}),da=m({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=L();return(t,s)=>r(e).socialLinks?(a(),g($e,{key:0,class:"VPNavScreenSocialLinks",links:r(e).socialLinks},null,8,["links"])):h("",!0)}}),va={class:"list"},pa=m({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=Y({correspondingLink:!0}),s=T(!1);function n(){s.value=!s.value}return(i,l)=>r(e).length&&r(t).label?(a(),u("div",{key:0,class:I(["VPNavScreenTranslations",{open:s.value}])},[p("button",{class:"title",onClick:n},[l[0]||(l[0]=p("span",{class:"vpi-languages icon lang"},null,-1)),O(" "+w(r(t).label)+" ",1),l[1]||(l[1]=p("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),p("ul",va,[(a(!0),u(M,null,B(r(e),v=>(a(),u("li",{key:v.link,class:"item"},[k(D,{class:"link",href:v.link},{default:f(()=>[O(w(v.text),1)]),_:2},1032,["href"])]))),128))])],2)):h("",!0)}}),fa=$(pa,[["__scopeId","data-v-362991c2"]]),ha={class:"container"},ma=m({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=T(null),t=Ie(te?document.body:null);return(s,n)=>(a(),g(de,{name:"fade",onEnter:n[0]||(n[0]=i=>t.value=!0),onAfterLeave:n[1]||(n[1]=i=>t.value=!1)},{default:f(()=>[s.open?(a(),u("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[p("div",ha,[c(s.$slots,"nav-screen-content-before",{},void 0,!0),k(ua,{class:"menu"}),k(fa,{class:"translations"}),k(qo,{class:"appearance"}),k(da,{class:"social-links"}),c(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):h("",!0)]),_:3}))}}),_a=$(ma,[["__scopeId","data-v-833aabba"]]),ba={key:0,class:"VPNav"},ka=m({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:s}=ms(),{frontmatter:n}=L(),i=y(()=>n.value.navbar!==!1);return he("close-screen",t),Z(()=>{te&&document.documentElement.classList.toggle("hide-nav",!i.value)}),(l,v)=>i.value?(a(),u("header",ba,[k(zo,{"is-screen-open":r(e),onToggleScreen:r(s)},{"nav-bar-title-before":f(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[c(l.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[c(l.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),k(_a,{open:r(e)},{"nav-screen-content-before":f(()=>[c(l.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[c(l.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):h("",!0)}}),ga=$(ka,[["__scopeId","data-v-f1e365da"]]),$a=["role","tabindex"],ya={key:1,class:"items"},Pa=m({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:s,isLink:n,isActiveLink:i,hasActiveLink:l,hasChildren:v,toggle:d}=gt(y(()=>e.item)),_=y(()=>v.value?"section":"div"),V=y(()=>n.value?"a":"div"),b=y(()=>v.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),P=y(()=>n.value?void 0:"button"),S=y(()=>[[`level-${e.depth}`],{collapsible:s.value},{collapsed:t.value},{"is-link":n.value},{"is-active":i.value},{"has-active":l.value}]);function A(N){"key"in N&&N.key!=="Enter"||!e.item.link&&d()}function C(){e.item.link&&d()}return(N,H)=>{const j=R("VPSidebarItem",!0);return a(),g(E(_.value),{class:I(["VPSidebarItem",S.value])},{default:f(()=>[N.item.text?(a(),u("div",G({key:0,class:"item",role:P.value},Qe(N.item.items?{click:A,keydown:A}:{},!0),{tabindex:N.item.items&&0}),[H[1]||(H[1]=p("div",{class:"indicator"},null,-1)),N.item.link?(a(),g(D,{key:0,tag:V.value,class:"link",href:N.item.link,rel:N.item.rel,target:N.item.target},{default:f(()=>[(a(),g(E(b.value),{class:"text",innerHTML:N.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),g(E(b.value),{key:1,class:"text",innerHTML:N.item.text},null,8,["innerHTML"])),N.item.collapsed!=null&&N.item.items&&N.item.items.length?(a(),u("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:C,onKeydown:Xe(C,["enter"]),tabindex:"0"},H[0]||(H[0]=[p("span",{class:"vpi-chevron-right caret-icon"},null,-1)]),32)):h("",!0)],16,$a)):h("",!0),N.item.items&&N.item.items.length?(a(),u("div",ya,[N.depth<5?(a(!0),u(M,{key:0},B(N.item.items,W=>(a(),g(j,{key:W.text,item:W,depth:N.depth+1},null,8,["item","depth"]))),128)):h("",!0)])):h("",!0)]),_:1},8,["class"])}}}),Sa=$(Pa,[["__scopeId","data-v-196b2e5f"]]),Va=m({__name:"VPSidebarGroup",props:{items:{}},setup(o){const e=T(!0);let t=null;return z(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),Ze(()=>{t!=null&&(clearTimeout(t),t=null)}),(s,n)=>(a(!0),u(M,null,B(s.items,i=>(a(),u("div",{key:i.text,class:I(["group",{"no-transition":e.value}])},[k(Sa,{item:i,depth:0},null,8,["item"])],2))),128))}}),La=$(Va,[["__scopeId","data-v-9e426adc"]]),Ta={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Na=m({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=U(),s=o,n=T(null),i=Ie(te?document.body:null);F([s,n],()=>{var v;s.open?(i.value=!0,(v=n.value)==null||v.focus()):i.value=!1},{immediate:!0,flush:"post"});const l=T(0);return F(e,()=>{l.value+=1},{deep:!0}),(v,d)=>r(t)?(a(),u("aside",{key:0,class:I(["VPSidebar",{open:v.open}]),ref_key:"navEl",ref:n,onClick:d[0]||(d[0]=xe(()=>{},["stop"]))},[d[2]||(d[2]=p("div",{class:"curtain"},null,-1)),p("nav",Ta,[d[1]||(d[1]=p("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),c(v.$slots,"sidebar-nav-before",{},void 0,!0),(a(),g(La,{items:r(e),key:l.value},null,8,["items"])),c(v.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):h("",!0)}}),wa=$(Na,[["__scopeId","data-v-18756405"]]),Ia=m({__name:"VPSkipLink",setup(o){const e=ee(),t=T();F(()=>e.path,()=>t.value.focus());function s({target:n}){const i=document.getElementById(decodeURIComponent(n.hash).slice(1));if(i){const l=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",l)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",l),i.focus(),window.scrollTo(0,0)}}return(n,i)=>(a(),u(M,null,[p("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),p("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s}," Skip to content ")],64))}}),Ma=$(Ia,[["__scopeId","data-v-c3508ec8"]]),Aa=m({__name:"Layout",setup(o){const{isOpen:e,open:t,close:s}=U(),n=ee();F(()=>n.path,s),kt(e,s);const{frontmatter:i}=L(),l=Me(),v=y(()=>!!l["home-hero-image"]);return he("hero-image-slot-exists",v),(d,_)=>{const V=R("Content");return r(i).layout!==!1?(a(),u("div",{key:0,class:I(["Layout",r(i).pageClass])},[c(d.$slots,"layout-top",{},void 0,!0),k(Ma),k(rt,{class:"backdrop",show:r(e),onClick:r(s)},null,8,["show","onClick"]),k(ga,null,{"nav-bar-title-before":f(()=>[c(d.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(d.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[c(d.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[c(d.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":f(()=>[c(d.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[c(d.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),k(hs,{open:r(e),onOpenMenu:r(t)},null,8,["open","onOpenMenu"]),k(wa,{open:r(e)},{"sidebar-nav-before":f(()=>[c(d.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":f(()=>[c(d.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),k(xn,null,{"page-top":f(()=>[c(d.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[c(d.$slots,"page-bottom",{},void 0,!0)]),"not-found":f(()=>[c(d.$slots,"not-found",{},void 0,!0)]),"home-hero-before":f(()=>[c(d.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[c(d.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(d.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(d.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(d.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(d.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[c(d.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[c(d.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[c(d.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":f(()=>[c(d.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[c(d.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[c(d.$slots,"doc-after",{},void 0,!0)]),"doc-top":f(()=>[c(d.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[c(d.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":f(()=>[c(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[c(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[c(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),k(os),c(d.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),g(V,{key:1}))}}}),Ca=$(Aa,[["__scopeId","data-v-a9a9e638"]]),Pe={Layout:Ca,enhanceApp:({app:o})=>{o.component("Badge",st)}},Ba=o=>{if(typeof document>"u")return{stabilizeScrollPosition:n=>async(...i)=>n(...i)};const e=document.documentElement;return{stabilizeScrollPosition:s=>async(...n)=>{const i=s(...n),l=o.value;if(!l)return i;const v=l.offsetTop-e.scrollTop;return await Ne(),e.scrollTop=l.offsetTop-v,i}}},Fe="vitepress:tabSharedState",J=typeof localStorage<"u"?localStorage:null,Oe="vitepress:tabsSharedState",Ha=()=>{const o=J==null?void 0:J.getItem(Oe);if(o)try{return JSON.parse(o)}catch{}return{}},Ea=o=>{J&&J.setItem(Oe,JSON.stringify(o))},Da=o=>{const e=et({});F(()=>e.content,(t,s)=>{t&&s&&Ea(t)},{deep:!0}),o.provide(Fe,e)},Fa=(o,e)=>{const t=q(Fe);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");z(()=>{t.content||(t.content=Ha())});const s=T(),n=y({get(){var d;const l=e.value,v=o.value;if(l){const _=(d=t.content)==null?void 0:d[l];if(_&&v.includes(_))return _}else{const _=s.value;if(_)return _}return v[0]},set(l){const v=e.value;v?t.content&&(t.content[v]=l):s.value=l}});return{selected:n,select:l=>{n.value=l}}};let Se=0;const Oa=()=>(Se++,""+Se);function Ua(){const o=Me();return y(()=>{var s;const t=(s=o.default)==null?void 0:s.call(o);return t?t.filter(n=>typeof n.type=="object"&&"__name"in n.type&&n.type.__name==="PluginTabsTab"&&n.props).map(n=>{var i;return(i=n.props)==null?void 0:i.label}):[]})}const Ue="vitepress:tabSingleState",ja=o=>{he(Ue,o)},Ga=()=>{const o=q(Ue);if(!o)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return o},za={class:"plugin-tabs"},Ka=["id","aria-selected","aria-controls","tabindex","onClick"],Ra=m({__name:"PluginTabs",props:{sharedStateKey:{}},setup(o){const e=o,t=Ua(),{selected:s,select:n}=Fa(t,tt(e,"sharedStateKey")),i=T(),{stabilizeScrollPosition:l}=Ba(i),v=l(n),d=T([]),_=b=>{var A;const P=t.value.indexOf(s.value);let S;b.key==="ArrowLeft"?S=P>=1?P-1:t.value.length-1:b.key==="ArrowRight"&&(S=P(a(),u("div",za,[p("div",{ref_key:"tablist",ref:i,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:_},[(a(!0),u(M,null,B(r(t),S=>(a(),u("button",{id:`tab-${S}-${r(V)}`,ref_for:!0,ref_key:"buttonRefs",ref:d,key:S,role:"tab",class:"plugin-tabs--tab","aria-selected":S===r(s),"aria-controls":`panel-${S}-${r(V)}`,tabindex:S===r(s)?0:-1,onClick:()=>r(v)(S)},w(S),9,Ka))),128))],544),c(b.$slots,"default")]))}}),Wa=["id","aria-labelledby"],qa=m({__name:"PluginTabsTab",props:{label:{}},setup(o){const{uid:e,selected:t}=Ga();return(s,n)=>r(t)===s.label?(a(),u("div",{key:0,id:`panel-${s.label}-${r(e)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${s.label}-${r(e)}`},[c(s.$slots,"default",{},void 0,!0)],8,Wa)):h("",!0)}}),Ja=$(qa,[["__scopeId","data-v-9b0d03d2"]]),Ya=o=>{Da(o),o.component("PluginTabs",Ra),o.component("PluginTabsTab",Ja)},Qa={extends:Pe,Layout(){return nt(Pe.Layout,null,{})},enhanceApp({app:o,router:e,siteData:t}){Ya(o)}};export{Qa as R,bo as c,L as u}; diff --git a/dev/assets/cldpfuq.DbLiRMiy.png b/dev/assets/cldpfuq.DbLiRMiy.png deleted file mode 100644 index c04bde91d03190d79b190f6a9d5159e442047c9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59898 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 diff --git a/dev/assets/gxwpnqk.C3SxJ3x-.png b/dev/assets/cwymcju.C3SxJ3x-.png similarity index 100% rename from dev/assets/gxwpnqk.C3SxJ3x-.png rename to dev/assets/cwymcju.C3SxJ3x-.png diff --git a/dev/assets/kpwfuad.mCtKcWOr.png b/dev/assets/dhblkfo.mCtKcWOr.png similarity index 100% rename from dev/assets/kpwfuad.mCtKcWOr.png rename to dev/assets/dhblkfo.mCtKcWOr.png diff --git a/dev/assets/izivjpe.Dig-DWOQ.png b/dev/assets/dngpdrf.Dig-DWOQ.png similarity index 100% rename from dev/assets/izivjpe.Dig-DWOQ.png rename to dev/assets/dngpdrf.Dig-DWOQ.png diff --git a/dev/assets/dmyrnfb.DTKLkKh_.png b/dev/assets/dsjwujh.DTKLkKh_.png similarity index 100% rename from dev/assets/dmyrnfb.DTKLkKh_.png rename to dev/assets/dsjwujh.DTKLkKh_.png diff --git a/dev/assets/dzyqzlu.C5N3xVUC.png b/dev/assets/dzyqzlu.C5N3xVUC.png deleted file mode 100644 index 013a4b6713705c53ec4d638b2e0c1f2d15bed299..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79501 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 diff --git a/dev/assets/qeoallh.D5-bot8v.png b/dev/assets/eeaiohh.D5-bot8v.png similarity index 100% rename from dev/assets/qeoallh.D5-bot8v.png rename to dev/assets/eeaiohh.D5-bot8v.png diff --git a/dev/assets/eidxoxd.DpYrIdUh.png b/dev/assets/eidxoxd.DpYrIdUh.png deleted file mode 100644 index 6b7297e0aaf720f064dac7edaadf5136010953d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69920 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 z 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 diff --git a/dev/assets/experiments_accurate_accumulators.md.zt5Wx885.js b/dev/assets/experiments_accurate_accumulators.md.DqCWQDFY.js similarity index 98% rename from dev/assets/experiments_accurate_accumulators.md.zt5Wx885.js rename to dev/assets/experiments_accurate_accumulators.md.DqCWQDFY.js index 34ad8bd93..25cb7de6e 100644 --- a/dev/assets/experiments_accurate_accumulators.md.zt5Wx885.js +++ b/dev/assets/experiments_accurate_accumulators.md.DqCWQDFY.js @@ -1,4 +1,4 @@ -import{_ as i,c as a,a5 as t,o as e}from"./chunks/framework.B9oBnxE7.js";const g=JSON.parse('{"title":"Accurate accumulation","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/accurate_accumulators.md","filePath":"experiments/accurate_accumulators.md","lastUpdated":null}'),n={name:"experiments/accurate_accumulators.md"};function l(h,s,p,k,d,r){return e(),a("div",null,s[0]||(s[0]=[t(`

Accurate accumulation

Accurate arithmetic is a technique which allows you to calculate using more precision than the provided numeric type.

We will use the accurate sum routines from AccurateArithmetic.jl to show the difference!

julia
import GeometryOps as GO, GeoInterface as GI
+import{_ as i,c as a,a5 as t,o as e}from"./chunks/framework.B0Ss3dHN.js";const g=JSON.parse('{"title":"Accurate accumulation","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/accurate_accumulators.md","filePath":"experiments/accurate_accumulators.md","lastUpdated":null}'),n={name:"experiments/accurate_accumulators.md"};function l(h,s,p,k,d,r){return e(),a("div",null,s[0]||(s[0]=[t(`

Accurate accumulation

Accurate arithmetic is a technique which allows you to calculate using more precision than the provided numeric type.

We will use the accurate sum routines from AccurateArithmetic.jl to show the difference!

julia
import GeometryOps as GO, GeoInterface as GI
 using GeoJSON
 using AccurateArithmetic
 using NaturalEarth
diff --git a/dev/assets/experiments_accurate_accumulators.md.zt5Wx885.lean.js b/dev/assets/experiments_accurate_accumulators.md.DqCWQDFY.lean.js
similarity index 98%
rename from dev/assets/experiments_accurate_accumulators.md.zt5Wx885.lean.js
rename to dev/assets/experiments_accurate_accumulators.md.DqCWQDFY.lean.js
index 34ad8bd93..25cb7de6e 100644
--- a/dev/assets/experiments_accurate_accumulators.md.zt5Wx885.lean.js
+++ b/dev/assets/experiments_accurate_accumulators.md.DqCWQDFY.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as t,o as e}from"./chunks/framework.B9oBnxE7.js";const g=JSON.parse('{"title":"Accurate accumulation","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/accurate_accumulators.md","filePath":"experiments/accurate_accumulators.md","lastUpdated":null}'),n={name:"experiments/accurate_accumulators.md"};function l(h,s,p,k,d,r){return e(),a("div",null,s[0]||(s[0]=[t(`

Accurate accumulation

Accurate arithmetic is a technique which allows you to calculate using more precision than the provided numeric type.

We will use the accurate sum routines from AccurateArithmetic.jl to show the difference!

julia
import GeometryOps as GO, GeoInterface as GI
+import{_ as i,c as a,a5 as t,o as e}from"./chunks/framework.B0Ss3dHN.js";const g=JSON.parse('{"title":"Accurate accumulation","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/accurate_accumulators.md","filePath":"experiments/accurate_accumulators.md","lastUpdated":null}'),n={name:"experiments/accurate_accumulators.md"};function l(h,s,p,k,d,r){return e(),a("div",null,s[0]||(s[0]=[t(`

Accurate accumulation

Accurate arithmetic is a technique which allows you to calculate using more precision than the provided numeric type.

We will use the accurate sum routines from AccurateArithmetic.jl to show the difference!

julia
import GeometryOps as GO, GeoInterface as GI
 using GeoJSON
 using AccurateArithmetic
 using NaturalEarth
diff --git a/dev/assets/experiments_predicates.md.DADaA-mw.lean.js b/dev/assets/experiments_predicates.md.CftgDXAy.js
similarity index 99%
rename from dev/assets/experiments_predicates.md.DADaA-mw.lean.js
rename to dev/assets/experiments_predicates.md.CftgDXAy.js
index 340b3e8b7..f6ff9bcee 100644
--- a/dev/assets/experiments_predicates.md.DADaA-mw.lean.js
+++ b/dev/assets/experiments_predicates.md.CftgDXAy.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as h,o as k}from"./chunks/framework.B9oBnxE7.js";const n="/GeometryOps.jl/dev/assets/cldpfuq.DbLiRMiy.png",y=JSON.parse('{"title":"Predicates","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/predicates.md","filePath":"experiments/predicates.md","lastUpdated":null}'),p={name:"experiments/predicates.md"};function l(t,s,E,e,r,d){return k(),a("div",null,s[0]||(s[0]=[h(`

Predicates

Exact vs fast predicates

Orient

julia
using CairoMakie
+import{_ as i,c as a,a5 as h,o as k}from"./chunks/framework.B0Ss3dHN.js";const n="/GeometryOps.jl/dev/assets/vzynugw.C2qyL0pp.png",y=JSON.parse('{"title":"Predicates","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/predicates.md","filePath":"experiments/predicates.md","lastUpdated":null}'),p={name:"experiments/predicates.md"};function l(t,s,E,e,r,d){return k(),a("div",null,s[0]||(s[0]=[h(`

Predicates

Exact vs fast predicates

Orient

julia
using CairoMakie
 import GeometryOps as GO, GeoInterface as GI, LibGEOS as LG
 import ExactPredicates
 using MultiFloats
diff --git a/dev/assets/experiments_predicates.md.DADaA-mw.js b/dev/assets/experiments_predicates.md.CftgDXAy.lean.js
similarity index 99%
rename from dev/assets/experiments_predicates.md.DADaA-mw.js
rename to dev/assets/experiments_predicates.md.CftgDXAy.lean.js
index 340b3e8b7..f6ff9bcee 100644
--- a/dev/assets/experiments_predicates.md.DADaA-mw.js
+++ b/dev/assets/experiments_predicates.md.CftgDXAy.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as h,o as k}from"./chunks/framework.B9oBnxE7.js";const n="/GeometryOps.jl/dev/assets/cldpfuq.DbLiRMiy.png",y=JSON.parse('{"title":"Predicates","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/predicates.md","filePath":"experiments/predicates.md","lastUpdated":null}'),p={name:"experiments/predicates.md"};function l(t,s,E,e,r,d){return k(),a("div",null,s[0]||(s[0]=[h(`

Predicates

Exact vs fast predicates

Orient

julia
using CairoMakie
+import{_ as i,c as a,a5 as h,o as k}from"./chunks/framework.B0Ss3dHN.js";const n="/GeometryOps.jl/dev/assets/vzynugw.C2qyL0pp.png",y=JSON.parse('{"title":"Predicates","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/predicates.md","filePath":"experiments/predicates.md","lastUpdated":null}'),p={name:"experiments/predicates.md"};function l(t,s,E,e,r,d){return k(),a("div",null,s[0]||(s[0]=[h(`

Predicates

Exact vs fast predicates

Orient

julia
using CairoMakie
 import GeometryOps as GO, GeoInterface as GI, LibGEOS as LG
 import ExactPredicates
 using MultiFloats
diff --git a/dev/assets/explanations_crs.md.olo7NCMO.js b/dev/assets/explanations_crs.md._RGEVBFG.js
similarity index 83%
rename from dev/assets/explanations_crs.md.olo7NCMO.js
rename to dev/assets/explanations_crs.md._RGEVBFG.js
index 1c9e88e9a..faa91a3e1 100644
--- a/dev/assets/explanations_crs.md.olo7NCMO.js
+++ b/dev/assets/explanations_crs.md._RGEVBFG.js
@@ -1 +1 @@
-import{_ as e,c as t,o as a}from"./chunks/framework.B9oBnxE7.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/crs.md","filePath":"explanations/crs.md","lastUpdated":null}'),s={name:"explanations/crs.md"};function n(r,o,c,p,i,l){return a(),t("div")}const m=e(s,[["render",n]]);export{_ as __pageData,m as default};
+import{_ as e,c as t,o as a}from"./chunks/framework.B0Ss3dHN.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/crs.md","filePath":"explanations/crs.md","lastUpdated":null}'),s={name:"explanations/crs.md"};function n(r,o,c,p,i,l){return a(),t("div")}const m=e(s,[["render",n]]);export{_ as __pageData,m as default};
diff --git a/dev/assets/explanations_crs.md.olo7NCMO.lean.js b/dev/assets/explanations_crs.md._RGEVBFG.lean.js
similarity index 83%
rename from dev/assets/explanations_crs.md.olo7NCMO.lean.js
rename to dev/assets/explanations_crs.md._RGEVBFG.lean.js
index 1c9e88e9a..faa91a3e1 100644
--- a/dev/assets/explanations_crs.md.olo7NCMO.lean.js
+++ b/dev/assets/explanations_crs.md._RGEVBFG.lean.js
@@ -1 +1 @@
-import{_ as e,c as t,o as a}from"./chunks/framework.B9oBnxE7.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/crs.md","filePath":"explanations/crs.md","lastUpdated":null}'),s={name:"explanations/crs.md"};function n(r,o,c,p,i,l){return a(),t("div")}const m=e(s,[["render",n]]);export{_ as __pageData,m as default};
+import{_ as e,c as t,o as a}from"./chunks/framework.B0Ss3dHN.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/crs.md","filePath":"explanations/crs.md","lastUpdated":null}'),s={name:"explanations/crs.md"};function n(r,o,c,p,i,l){return a(),t("div")}const m=e(s,[["render",n]]);export{_ as __pageData,m as default};
diff --git a/dev/assets/explanations_paradigms.md.D8UL_RQZ.js b/dev/assets/explanations_paradigms.md.CNrPdHXR.js
similarity index 97%
rename from dev/assets/explanations_paradigms.md.D8UL_RQZ.js
rename to dev/assets/explanations_paradigms.md.CNrPdHXR.js
index 968f01214..83cbf4c62 100644
--- a/dev/assets/explanations_paradigms.md.D8UL_RQZ.js
+++ b/dev/assets/explanations_paradigms.md.CNrPdHXR.js
@@ -1 +1 @@
-import{_ as a,c as t,a5 as o,o as i}from"./chunks/framework.B9oBnxE7.js";const u=JSON.parse('{"title":"Paradigms","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/paradigms.md","filePath":"explanations/paradigms.md","lastUpdated":null}'),r={name:"explanations/paradigms.md"};function s(n,e,d,p,c,l){return i(),t("div",null,e[0]||(e[0]=[o('

Paradigms

GeometryOps exposes functions like apply and applyreduce, as well as the fix and prepare APIs, that represent paradigms of programming, by which we mean the ability to program in a certain way, and in so doing, fit neatly into the tools we've built without needing to re-implement the wheel.

Below, we'll describe some of the foundational paradigms of GeometryOps, and why you should care!

apply

The apply function allows you to decompose a given collection of geometries down to a certain level, operate on it, and reconstruct it back to the same nested form as the original. In general, its invocation is:

julia
apply(f, trait::Trait, geom)

Functionally, it's similar to map in the way you apply it to geometries - except that you tell it at which level it should stop, by passing a trait to it.

apply will start by decomposing the geometry, feature, featurecollection, iterable, or table that you pass to it, and stop when it encounters a geometry for which GI.trait(geom) isa Trait. This encompasses unions of traits especially, but beware that any geometry which is not explicitly handled, and hits GI.PointTrait, will cause an error.

apply is unlike map in that it returns reconstructed geometries, instead of the raw output of the function. If you want a purely map-like behaviour, like calculating the length of each linestring in your feature collection, then call GO.flatten(f, trait, geom), which will decompose each geometry to the given trait and apply f to it, returning the decomposition as a flattened vector.

applyreduce

applyreduce is like the previous map-based approach that we mentioned, except that it reduces the result of f by op. Note that applyreduce does not guarantee associativity, so it's best to have typeof(init) == returntype(op).

fix and prepare

The fix and prepare paradigms are different from apply, though they are built on top of it. They involve the use of structs as "actions", where a constructed object indicates an action that should be taken. A trait like interface prescribes the level (polygon, linestring, point, etc) at which each action should be applied.

In general, the idea here is to be able to invoke several actions efficiently and simultaneously, for example when correcting invalid geometries, or instantiating a Prepared geometry with several preparations (sorted edge lists, rtrees, monotone chains, etc.)

',14)]))}const m=a(r,[["render",s]]);export{u as __pageData,m as default}; +import{_ as a,c as t,a5 as o,o as i}from"./chunks/framework.B0Ss3dHN.js";const u=JSON.parse('{"title":"Paradigms","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/paradigms.md","filePath":"explanations/paradigms.md","lastUpdated":null}'),r={name:"explanations/paradigms.md"};function s(n,e,d,p,c,l){return i(),t("div",null,e[0]||(e[0]=[o('

Paradigms

GeometryOps exposes functions like apply and applyreduce, as well as the fix and prepare APIs, that represent paradigms of programming, by which we mean the ability to program in a certain way, and in so doing, fit neatly into the tools we've built without needing to re-implement the wheel.

Below, we'll describe some of the foundational paradigms of GeometryOps, and why you should care!

apply

The apply function allows you to decompose a given collection of geometries down to a certain level, operate on it, and reconstruct it back to the same nested form as the original. In general, its invocation is:

julia
apply(f, trait::Trait, geom)

Functionally, it's similar to map in the way you apply it to geometries - except that you tell it at which level it should stop, by passing a trait to it.

apply will start by decomposing the geometry, feature, featurecollection, iterable, or table that you pass to it, and stop when it encounters a geometry for which GI.trait(geom) isa Trait. This encompasses unions of traits especially, but beware that any geometry which is not explicitly handled, and hits GI.PointTrait, will cause an error.

apply is unlike map in that it returns reconstructed geometries, instead of the raw output of the function. If you want a purely map-like behaviour, like calculating the length of each linestring in your feature collection, then call GO.flatten(f, trait, geom), which will decompose each geometry to the given trait and apply f to it, returning the decomposition as a flattened vector.

applyreduce

applyreduce is like the previous map-based approach that we mentioned, except that it reduces the result of f by op. Note that applyreduce does not guarantee associativity, so it's best to have typeof(init) == returntype(op).

fix and prepare

The fix and prepare paradigms are different from apply, though they are built on top of it. They involve the use of structs as "actions", where a constructed object indicates an action that should be taken. A trait like interface prescribes the level (polygon, linestring, point, etc) at which each action should be applied.

In general, the idea here is to be able to invoke several actions efficiently and simultaneously, for example when correcting invalid geometries, or instantiating a Prepared geometry with several preparations (sorted edge lists, rtrees, monotone chains, etc.)

',14)]))}const m=a(r,[["render",s]]);export{u as __pageData,m as default}; diff --git a/dev/assets/explanations_paradigms.md.D8UL_RQZ.lean.js b/dev/assets/explanations_paradigms.md.CNrPdHXR.lean.js similarity index 97% rename from dev/assets/explanations_paradigms.md.D8UL_RQZ.lean.js rename to dev/assets/explanations_paradigms.md.CNrPdHXR.lean.js index 968f01214..83cbf4c62 100644 --- a/dev/assets/explanations_paradigms.md.D8UL_RQZ.lean.js +++ b/dev/assets/explanations_paradigms.md.CNrPdHXR.lean.js @@ -1 +1 @@ -import{_ as a,c as t,a5 as o,o as i}from"./chunks/framework.B9oBnxE7.js";const u=JSON.parse('{"title":"Paradigms","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/paradigms.md","filePath":"explanations/paradigms.md","lastUpdated":null}'),r={name:"explanations/paradigms.md"};function s(n,e,d,p,c,l){return i(),t("div",null,e[0]||(e[0]=[o('

Paradigms

GeometryOps exposes functions like apply and applyreduce, as well as the fix and prepare APIs, that represent paradigms of programming, by which we mean the ability to program in a certain way, and in so doing, fit neatly into the tools we've built without needing to re-implement the wheel.

Below, we'll describe some of the foundational paradigms of GeometryOps, and why you should care!

apply

The apply function allows you to decompose a given collection of geometries down to a certain level, operate on it, and reconstruct it back to the same nested form as the original. In general, its invocation is:

julia
apply(f, trait::Trait, geom)

Functionally, it's similar to map in the way you apply it to geometries - except that you tell it at which level it should stop, by passing a trait to it.

apply will start by decomposing the geometry, feature, featurecollection, iterable, or table that you pass to it, and stop when it encounters a geometry for which GI.trait(geom) isa Trait. This encompasses unions of traits especially, but beware that any geometry which is not explicitly handled, and hits GI.PointTrait, will cause an error.

apply is unlike map in that it returns reconstructed geometries, instead of the raw output of the function. If you want a purely map-like behaviour, like calculating the length of each linestring in your feature collection, then call GO.flatten(f, trait, geom), which will decompose each geometry to the given trait and apply f to it, returning the decomposition as a flattened vector.

applyreduce

applyreduce is like the previous map-based approach that we mentioned, except that it reduces the result of f by op. Note that applyreduce does not guarantee associativity, so it's best to have typeof(init) == returntype(op).

fix and prepare

The fix and prepare paradigms are different from apply, though they are built on top of it. They involve the use of structs as "actions", where a constructed object indicates an action that should be taken. A trait like interface prescribes the level (polygon, linestring, point, etc) at which each action should be applied.

In general, the idea here is to be able to invoke several actions efficiently and simultaneously, for example when correcting invalid geometries, or instantiating a Prepared geometry with several preparations (sorted edge lists, rtrees, monotone chains, etc.)

',14)]))}const m=a(r,[["render",s]]);export{u as __pageData,m as default}; +import{_ as a,c as t,a5 as o,o as i}from"./chunks/framework.B0Ss3dHN.js";const u=JSON.parse('{"title":"Paradigms","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/paradigms.md","filePath":"explanations/paradigms.md","lastUpdated":null}'),r={name:"explanations/paradigms.md"};function s(n,e,d,p,c,l){return i(),t("div",null,e[0]||(e[0]=[o('

Paradigms

GeometryOps exposes functions like apply and applyreduce, as well as the fix and prepare APIs, that represent paradigms of programming, by which we mean the ability to program in a certain way, and in so doing, fit neatly into the tools we've built without needing to re-implement the wheel.

Below, we'll describe some of the foundational paradigms of GeometryOps, and why you should care!

apply

The apply function allows you to decompose a given collection of geometries down to a certain level, operate on it, and reconstruct it back to the same nested form as the original. In general, its invocation is:

julia
apply(f, trait::Trait, geom)

Functionally, it's similar to map in the way you apply it to geometries - except that you tell it at which level it should stop, by passing a trait to it.

apply will start by decomposing the geometry, feature, featurecollection, iterable, or table that you pass to it, and stop when it encounters a geometry for which GI.trait(geom) isa Trait. This encompasses unions of traits especially, but beware that any geometry which is not explicitly handled, and hits GI.PointTrait, will cause an error.

apply is unlike map in that it returns reconstructed geometries, instead of the raw output of the function. If you want a purely map-like behaviour, like calculating the length of each linestring in your feature collection, then call GO.flatten(f, trait, geom), which will decompose each geometry to the given trait and apply f to it, returning the decomposition as a flattened vector.

applyreduce

applyreduce is like the previous map-based approach that we mentioned, except that it reduces the result of f by op. Note that applyreduce does not guarantee associativity, so it's best to have typeof(init) == returntype(op).

fix and prepare

The fix and prepare paradigms are different from apply, though they are built on top of it. They involve the use of structs as "actions", where a constructed object indicates an action that should be taken. A trait like interface prescribes the level (polygon, linestring, point, etc) at which each action should be applied.

In general, the idea here is to be able to invoke several actions efficiently and simultaneously, for example when correcting invalid geometries, or instantiating a Prepared geometry with several preparations (sorted edge lists, rtrees, monotone chains, etc.)

',14)]))}const m=a(r,[["render",s]]);export{u as __pageData,m as default}; diff --git a/dev/assets/explanations_peculiarities.md.BPTJUSzz.js b/dev/assets/explanations_peculiarities.md.D1LUoEKV.js similarity index 96% rename from dev/assets/explanations_peculiarities.md.BPTJUSzz.js rename to dev/assets/explanations_peculiarities.md.D1LUoEKV.js index f1ce9a6d6..cefb10e68 100644 --- a/dev/assets/explanations_peculiarities.md.BPTJUSzz.js +++ b/dev/assets/explanations_peculiarities.md.D1LUoEKV.js @@ -1 +1 @@ -import{_ as o,c as t,a5 as a,o as r}from"./chunks/framework.B9oBnxE7.js";const u=JSON.parse('{"title":"Peculiarities","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/peculiarities.md","filePath":"explanations/peculiarities.md","lastUpdated":null}'),n={name:"explanations/peculiarities.md"};function i(s,e,l,d,c,p){return r(),t("div",null,e[0]||(e[0]=[a('

Peculiarities

What does apply return and why?

apply returns the target geometries returned by f, whatever type/package they are from, but geometries, features or feature collections that wrapped the target are replaced with GeoInterace.jl wrappers with matching GeoInterface.trait to the originals. All non-geointerface iterables become Arrays. Tables.jl compatible tables are converted either back to the original type if a Tables.materializer is defined, and if not then returned as generic NamedTuple column tables (i.e., a NamedTuple of vectors).

It is recommended for consistency that f returns GeoInterface geometries unless there is a performance/conversion overhead to doing that.

Why do you want me to provide a target in set operations?

In polygon set operations like intersection, difference, and union, many different geometry types may be obtained - depending on the relationship between the polygons. For example, when performing an union on two nonintersecting polygons, one would technically have two disjoint polygons as an output.

We use the target keyword to allow the user to control which kinds of geometry they want back. For example, setting target to PolygonTrait will cause a vector of polygons to be returned (this is the only currently supported behaviour). In future, we may implement MultiPolygonTrait or GeometryCollectionTrait targets which will return a single geometry, as LibGEOS and ArchGDAL do.

This also allows for a lot more type stability - when you ask for polygons, we won't return a geometrycollection with line segments. Especially in simulation workflows, this is excellent for simplified data processing.

_True and _False (or BoolsAsTypes)

Warning

These are internals and explicitly not public API, meaning they may change at any time!

When dispatch can be controlled by the value of a boolean variable, this introduces type instability. Instead of introducing type instability, we chose to encode our boolean decision variables, like threaded and calc_extent in apply, as types. This allows the compiler to reason about what will happen, and call the correct compiled method, in a stable way without worrying about

',11)]))}const y=o(n,[["render",i]]);export{u as __pageData,y as default}; +import{_ as o,c as t,a5 as a,o as r}from"./chunks/framework.B0Ss3dHN.js";const u=JSON.parse('{"title":"Peculiarities","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/peculiarities.md","filePath":"explanations/peculiarities.md","lastUpdated":null}'),n={name:"explanations/peculiarities.md"};function i(s,e,l,d,c,p){return r(),t("div",null,e[0]||(e[0]=[a('

Peculiarities

What does apply return and why?

apply returns the target geometries returned by f, whatever type/package they are from, but geometries, features or feature collections that wrapped the target are replaced with GeoInterace.jl wrappers with matching GeoInterface.trait to the originals. All non-geointerface iterables become Arrays. Tables.jl compatible tables are converted either back to the original type if a Tables.materializer is defined, and if not then returned as generic NamedTuple column tables (i.e., a NamedTuple of vectors).

It is recommended for consistency that f returns GeoInterface geometries unless there is a performance/conversion overhead to doing that.

Why do you want me to provide a target in set operations?

In polygon set operations like intersection, difference, and union, many different geometry types may be obtained - depending on the relationship between the polygons. For example, when performing an union on two nonintersecting polygons, one would technically have two disjoint polygons as an output.

We use the target keyword to allow the user to control which kinds of geometry they want back. For example, setting target to PolygonTrait will cause a vector of polygons to be returned (this is the only currently supported behaviour). In future, we may implement MultiPolygonTrait or GeometryCollectionTrait targets which will return a single geometry, as LibGEOS and ArchGDAL do.

This also allows for a lot more type stability - when you ask for polygons, we won't return a geometrycollection with line segments. Especially in simulation workflows, this is excellent for simplified data processing.

_True and _False (or BoolsAsTypes)

Warning

These are internals and explicitly not public API, meaning they may change at any time!

When dispatch can be controlled by the value of a boolean variable, this introduces type instability. Instead of introducing type instability, we chose to encode our boolean decision variables, like threaded and calc_extent in apply, as types. This allows the compiler to reason about what will happen, and call the correct compiled method, in a stable way without worrying about

',11)]))}const y=o(n,[["render",i]]);export{u as __pageData,y as default}; diff --git a/dev/assets/explanations_peculiarities.md.BPTJUSzz.lean.js b/dev/assets/explanations_peculiarities.md.D1LUoEKV.lean.js similarity index 96% rename from dev/assets/explanations_peculiarities.md.BPTJUSzz.lean.js rename to dev/assets/explanations_peculiarities.md.D1LUoEKV.lean.js index f1ce9a6d6..cefb10e68 100644 --- a/dev/assets/explanations_peculiarities.md.BPTJUSzz.lean.js +++ b/dev/assets/explanations_peculiarities.md.D1LUoEKV.lean.js @@ -1 +1 @@ -import{_ as o,c as t,a5 as a,o as r}from"./chunks/framework.B9oBnxE7.js";const u=JSON.parse('{"title":"Peculiarities","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/peculiarities.md","filePath":"explanations/peculiarities.md","lastUpdated":null}'),n={name:"explanations/peculiarities.md"};function i(s,e,l,d,c,p){return r(),t("div",null,e[0]||(e[0]=[a('

Peculiarities

What does apply return and why?

apply returns the target geometries returned by f, whatever type/package they are from, but geometries, features or feature collections that wrapped the target are replaced with GeoInterace.jl wrappers with matching GeoInterface.trait to the originals. All non-geointerface iterables become Arrays. Tables.jl compatible tables are converted either back to the original type if a Tables.materializer is defined, and if not then returned as generic NamedTuple column tables (i.e., a NamedTuple of vectors).

It is recommended for consistency that f returns GeoInterface geometries unless there is a performance/conversion overhead to doing that.

Why do you want me to provide a target in set operations?

In polygon set operations like intersection, difference, and union, many different geometry types may be obtained - depending on the relationship between the polygons. For example, when performing an union on two nonintersecting polygons, one would technically have two disjoint polygons as an output.

We use the target keyword to allow the user to control which kinds of geometry they want back. For example, setting target to PolygonTrait will cause a vector of polygons to be returned (this is the only currently supported behaviour). In future, we may implement MultiPolygonTrait or GeometryCollectionTrait targets which will return a single geometry, as LibGEOS and ArchGDAL do.

This also allows for a lot more type stability - when you ask for polygons, we won't return a geometrycollection with line segments. Especially in simulation workflows, this is excellent for simplified data processing.

_True and _False (or BoolsAsTypes)

Warning

These are internals and explicitly not public API, meaning they may change at any time!

When dispatch can be controlled by the value of a boolean variable, this introduces type instability. Instead of introducing type instability, we chose to encode our boolean decision variables, like threaded and calc_extent in apply, as types. This allows the compiler to reason about what will happen, and call the correct compiled method, in a stable way without worrying about

',11)]))}const y=o(n,[["render",i]]);export{u as __pageData,y as default}; +import{_ as o,c as t,a5 as a,o as r}from"./chunks/framework.B0Ss3dHN.js";const u=JSON.parse('{"title":"Peculiarities","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/peculiarities.md","filePath":"explanations/peculiarities.md","lastUpdated":null}'),n={name:"explanations/peculiarities.md"};function i(s,e,l,d,c,p){return r(),t("div",null,e[0]||(e[0]=[a('

Peculiarities

What does apply return and why?

apply returns the target geometries returned by f, whatever type/package they are from, but geometries, features or feature collections that wrapped the target are replaced with GeoInterace.jl wrappers with matching GeoInterface.trait to the originals. All non-geointerface iterables become Arrays. Tables.jl compatible tables are converted either back to the original type if a Tables.materializer is defined, and if not then returned as generic NamedTuple column tables (i.e., a NamedTuple of vectors).

It is recommended for consistency that f returns GeoInterface geometries unless there is a performance/conversion overhead to doing that.

Why do you want me to provide a target in set operations?

In polygon set operations like intersection, difference, and union, many different geometry types may be obtained - depending on the relationship between the polygons. For example, when performing an union on two nonintersecting polygons, one would technically have two disjoint polygons as an output.

We use the target keyword to allow the user to control which kinds of geometry they want back. For example, setting target to PolygonTrait will cause a vector of polygons to be returned (this is the only currently supported behaviour). In future, we may implement MultiPolygonTrait or GeometryCollectionTrait targets which will return a single geometry, as LibGEOS and ArchGDAL do.

This also allows for a lot more type stability - when you ask for polygons, we won't return a geometrycollection with line segments. Especially in simulation workflows, this is excellent for simplified data processing.

_True and _False (or BoolsAsTypes)

Warning

These are internals and explicitly not public API, meaning they may change at any time!

When dispatch can be controlled by the value of a boolean variable, this introduces type instability. Instead of introducing type instability, we chose to encode our boolean decision variables, like threaded and calc_extent in apply, as types. This allows the compiler to reason about what will happen, and call the correct compiled method, in a stable way without worrying about

',11)]))}const y=o(n,[["render",i]]);export{u as __pageData,y as default}; diff --git a/dev/assets/explanations_winding_order.md.CwOzGM5W.js b/dev/assets/explanations_winding_order.md.CDqCuuUs.js similarity index 84% rename from dev/assets/explanations_winding_order.md.CwOzGM5W.js rename to dev/assets/explanations_winding_order.md.CDqCuuUs.js index 1a7b525cc..7320700b1 100644 --- a/dev/assets/explanations_winding_order.md.CwOzGM5W.js +++ b/dev/assets/explanations_winding_order.md.CDqCuuUs.js @@ -1 +1 @@ -import{_ as e,c as n,o as t}from"./chunks/framework.B9oBnxE7.js";const l=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/winding_order.md","filePath":"explanations/winding_order.md","lastUpdated":null}'),a={name:"explanations/winding_order.md"};function r(o,i,d,s,c,p){return t(),n("div")}const m=e(a,[["render",r]]);export{l as __pageData,m as default}; +import{_ as e,c as n,o as t}from"./chunks/framework.B0Ss3dHN.js";const l=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/winding_order.md","filePath":"explanations/winding_order.md","lastUpdated":null}'),a={name:"explanations/winding_order.md"};function r(o,i,d,s,c,p){return t(),n("div")}const m=e(a,[["render",r]]);export{l as __pageData,m as default}; diff --git a/dev/assets/explanations_winding_order.md.CwOzGM5W.lean.js b/dev/assets/explanations_winding_order.md.CDqCuuUs.lean.js similarity index 84% rename from dev/assets/explanations_winding_order.md.CwOzGM5W.lean.js rename to dev/assets/explanations_winding_order.md.CDqCuuUs.lean.js index 1a7b525cc..7320700b1 100644 --- a/dev/assets/explanations_winding_order.md.CwOzGM5W.lean.js +++ b/dev/assets/explanations_winding_order.md.CDqCuuUs.lean.js @@ -1 +1 @@ -import{_ as e,c as n,o as t}from"./chunks/framework.B9oBnxE7.js";const l=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/winding_order.md","filePath":"explanations/winding_order.md","lastUpdated":null}'),a={name:"explanations/winding_order.md"};function r(o,i,d,s,c,p){return t(),n("div")}const m=e(a,[["render",r]]);export{l as __pageData,m as default}; +import{_ as e,c as n,o as t}from"./chunks/framework.B0Ss3dHN.js";const l=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/winding_order.md","filePath":"explanations/winding_order.md","lastUpdated":null}'),a={name:"explanations/winding_order.md"};function r(o,i,d,s,c,p){return t(),n("div")}const m=e(a,[["render",r]]);export{l as __pageData,m as default}; diff --git a/dev/assets/hqsdgwp.sS_Fuefu.png b/dev/assets/hqsdgwp.sS_Fuefu.png deleted file mode 100644 index 2b70a9fbc1642ac280db72840bc667fc25f50f70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 207428 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 Wi>U<^gx!9w2tdC`oqJ|%KX*6hCN&K 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 diff --git a/dev/assets/index.md.BxTfxUBa.js b/dev/assets/index.md.DekoSsoW.js similarity index 96% rename from dev/assets/index.md.BxTfxUBa.js rename to dev/assets/index.md.DekoSsoW.js index 5d272a46f..3be775bf0 100644 --- a/dev/assets/index.md.BxTfxUBa.js +++ b/dev/assets/index.md.DekoSsoW.js @@ -1 +1 @@ -import{_ as t,c as a,a5 as o,o as i}from"./chunks/framework.B9oBnxE7.js";const m=JSON.parse('{"title":"What is GeometryOps.jl?","description":"","frontmatter":{"layout":"home","hero":{"name":"GeometryOps.jl","text":"","tagline":"Blazing fast geometry operations in pure Julia","image":{"src":"/logo.png","alt":"GeometryOps"},"actions":[{"theme":"brand","text":"Introduction","link":"/introduction"},{"theme":"alt","text":"View on Github","link":"https://github.com/JuliaGeo/GeometryOps.jl"},{"theme":"alt","text":"API Reference","link":"/api"}]},"features":[{"icon":"\\"Julia","title":"Pure Julia code","details":"Fast, understandable, extensible functions","link":"/introduction"},{"icon":"","title":"Literate programming","details":"Documented source code with examples!","link":"/source/methods/clipping/cut"},{"icon":"","title":"Full integration with GeoInterface","details":"Use any GeoInterface.jl-compatible geometry","link":"https://juliageo.org/GeoInterface.jl/stable"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":null}'),n={name:"index.md"};function s(r,e,l,c,d,h){return i(),a("div",null,e[0]||(e[0]=[o('

What is GeometryOps.jl?

GeometryOps.jl is a package for geometric calculations on (primarily 2D) geometries.

The driving idea behind this package is to unify all the disparate packages for geometric calculations in Julia, and make them GeoInterface.jl-compatible. We seem to be focusing primarily on 2/2.5D geometries for now.

Most of the usecases are driven by GIS and similar Earth data workflows, so this might be a bit specialized towards that, but methods should always be general to any coordinate space.

We welcome contributions, either as pull requests or discussion on issues!

How to navigate the docs

GeometryOps' docs are divided into three main sections: tutorials, explanations and source code.
Documentation and examples for many functions can be found in the source code section, since we use literate programming in GeometryOps.

  • Tutorials are meant to teach the fundamental concepts behind GeometryOps, and how to perform certain operations.
  • Explanations usually contain little code, and explain in more detail how GeometryOps works.
  • Source code usually contains explanations and examples at the top of the page, followed by annotated source code from that file.
',2)]))}const u=t(n,[["render",s]]);export{m as __pageData,u as default}; +import{_ as t,c as a,a5 as o,o as i}from"./chunks/framework.B0Ss3dHN.js";const m=JSON.parse('{"title":"What is GeometryOps.jl?","description":"","frontmatter":{"layout":"home","hero":{"name":"GeometryOps.jl","text":"","tagline":"Blazing fast geometry operations in pure Julia","image":{"src":"/logo.png","alt":"GeometryOps"},"actions":[{"theme":"brand","text":"Introduction","link":"/introduction"},{"theme":"alt","text":"View on Github","link":"https://github.com/JuliaGeo/GeometryOps.jl"},{"theme":"alt","text":"API Reference","link":"/api"}]},"features":[{"icon":"\\"Julia","title":"Pure Julia code","details":"Fast, understandable, extensible functions","link":"/introduction"},{"icon":"","title":"Literate programming","details":"Documented source code with examples!","link":"/source/methods/clipping/cut"},{"icon":"","title":"Full integration with GeoInterface","details":"Use any GeoInterface.jl-compatible geometry","link":"https://juliageo.org/GeoInterface.jl/stable"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":null}'),n={name:"index.md"};function s(r,e,l,c,d,h){return i(),a("div",null,e[0]||(e[0]=[o('

What is GeometryOps.jl?

GeometryOps.jl is a package for geometric calculations on (primarily 2D) geometries.

The driving idea behind this package is to unify all the disparate packages for geometric calculations in Julia, and make them GeoInterface.jl-compatible. We seem to be focusing primarily on 2/2.5D geometries for now.

Most of the usecases are driven by GIS and similar Earth data workflows, so this might be a bit specialized towards that, but methods should always be general to any coordinate space.

We welcome contributions, either as pull requests or discussion on issues!

How to navigate the docs

GeometryOps' docs are divided into three main sections: tutorials, explanations and source code.
Documentation and examples for many functions can be found in the source code section, since we use literate programming in GeometryOps.

  • Tutorials are meant to teach the fundamental concepts behind GeometryOps, and how to perform certain operations.
  • Explanations usually contain little code, and explain in more detail how GeometryOps works.
  • Source code usually contains explanations and examples at the top of the page, followed by annotated source code from that file.
',2)]))}const u=t(n,[["render",s]]);export{m as __pageData,u as default}; diff --git a/dev/assets/index.md.BxTfxUBa.lean.js b/dev/assets/index.md.DekoSsoW.lean.js similarity index 96% rename from dev/assets/index.md.BxTfxUBa.lean.js rename to dev/assets/index.md.DekoSsoW.lean.js index 5d272a46f..3be775bf0 100644 --- a/dev/assets/index.md.BxTfxUBa.lean.js +++ b/dev/assets/index.md.DekoSsoW.lean.js @@ -1 +1 @@ -import{_ as t,c as a,a5 as o,o as i}from"./chunks/framework.B9oBnxE7.js";const m=JSON.parse('{"title":"What is GeometryOps.jl?","description":"","frontmatter":{"layout":"home","hero":{"name":"GeometryOps.jl","text":"","tagline":"Blazing fast geometry operations in pure Julia","image":{"src":"/logo.png","alt":"GeometryOps"},"actions":[{"theme":"brand","text":"Introduction","link":"/introduction"},{"theme":"alt","text":"View on Github","link":"https://github.com/JuliaGeo/GeometryOps.jl"},{"theme":"alt","text":"API Reference","link":"/api"}]},"features":[{"icon":"\\"Julia","title":"Pure Julia code","details":"Fast, understandable, extensible functions","link":"/introduction"},{"icon":"","title":"Literate programming","details":"Documented source code with examples!","link":"/source/methods/clipping/cut"},{"icon":"","title":"Full integration with GeoInterface","details":"Use any GeoInterface.jl-compatible geometry","link":"https://juliageo.org/GeoInterface.jl/stable"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":null}'),n={name:"index.md"};function s(r,e,l,c,d,h){return i(),a("div",null,e[0]||(e[0]=[o('

What is GeometryOps.jl?

GeometryOps.jl is a package for geometric calculations on (primarily 2D) geometries.

The driving idea behind this package is to unify all the disparate packages for geometric calculations in Julia, and make them GeoInterface.jl-compatible. We seem to be focusing primarily on 2/2.5D geometries for now.

Most of the usecases are driven by GIS and similar Earth data workflows, so this might be a bit specialized towards that, but methods should always be general to any coordinate space.

We welcome contributions, either as pull requests or discussion on issues!

How to navigate the docs

GeometryOps' docs are divided into three main sections: tutorials, explanations and source code.
Documentation and examples for many functions can be found in the source code section, since we use literate programming in GeometryOps.

  • Tutorials are meant to teach the fundamental concepts behind GeometryOps, and how to perform certain operations.
  • Explanations usually contain little code, and explain in more detail how GeometryOps works.
  • Source code usually contains explanations and examples at the top of the page, followed by annotated source code from that file.
',2)]))}const u=t(n,[["render",s]]);export{m as __pageData,u as default}; +import{_ as t,c as a,a5 as o,o as i}from"./chunks/framework.B0Ss3dHN.js";const m=JSON.parse('{"title":"What is GeometryOps.jl?","description":"","frontmatter":{"layout":"home","hero":{"name":"GeometryOps.jl","text":"","tagline":"Blazing fast geometry operations in pure Julia","image":{"src":"/logo.png","alt":"GeometryOps"},"actions":[{"theme":"brand","text":"Introduction","link":"/introduction"},{"theme":"alt","text":"View on Github","link":"https://github.com/JuliaGeo/GeometryOps.jl"},{"theme":"alt","text":"API Reference","link":"/api"}]},"features":[{"icon":"\\"Julia","title":"Pure Julia code","details":"Fast, understandable, extensible functions","link":"/introduction"},{"icon":"","title":"Literate programming","details":"Documented source code with examples!","link":"/source/methods/clipping/cut"},{"icon":"","title":"Full integration with GeoInterface","details":"Use any GeoInterface.jl-compatible geometry","link":"https://juliageo.org/GeoInterface.jl/stable"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":null}'),n={name:"index.md"};function s(r,e,l,c,d,h){return i(),a("div",null,e[0]||(e[0]=[o('

What is GeometryOps.jl?

GeometryOps.jl is a package for geometric calculations on (primarily 2D) geometries.

The driving idea behind this package is to unify all the disparate packages for geometric calculations in Julia, and make them GeoInterface.jl-compatible. We seem to be focusing primarily on 2/2.5D geometries for now.

Most of the usecases are driven by GIS and similar Earth data workflows, so this might be a bit specialized towards that, but methods should always be general to any coordinate space.

We welcome contributions, either as pull requests or discussion on issues!

How to navigate the docs

GeometryOps' docs are divided into three main sections: tutorials, explanations and source code.
Documentation and examples for many functions can be found in the source code section, since we use literate programming in GeometryOps.

  • Tutorials are meant to teach the fundamental concepts behind GeometryOps, and how to perform certain operations.
  • Explanations usually contain little code, and explain in more detail how GeometryOps works.
  • Source code usually contains explanations and examples at the top of the page, followed by annotated source code from that file.
',2)]))}const u=t(n,[["render",s]]);export{m as __pageData,u as default}; diff --git a/dev/assets/introduction.md.DMSw2cvK.js b/dev/assets/introduction.md.CDdh5Sjo.js similarity index 95% rename from dev/assets/introduction.md.DMSw2cvK.js rename to dev/assets/introduction.md.CDdh5Sjo.js index e77241b4f..ddf1dffef 100644 --- a/dev/assets/introduction.md.DMSw2cvK.js +++ b/dev/assets/introduction.md.CDdh5Sjo.js @@ -1 +1 @@ -import{_ as a,c as t,a5 as o,o as i}from"./chunks/framework.B9oBnxE7.js";const m=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"introduction.md","filePath":"introduction.md","lastUpdated":null}'),r={name:"introduction.md"};function n(c,e,s,p,l,d){return i(),t("div",null,e[0]||(e[0]=[o('

Introduction

GeometryOps.jl is a package for geometric calculations on (primarily 2D) geometries.

The driving idea behind this package is to unify all the disparate packages for geometric calculations in Julia, and make them GeoInterface.jl-compatible. We seem to be focusing primarily on 2/2.5D geometries for now.

Most of the usecases are driven by GIS and similar Earth data workflows, so this might be a bit specialized towards that, but methods should always be general to any coordinate space.

We welcome contributions, either as pull requests or discussion on issues!

Main concepts

The apply paradigm

Note

See the Primitive Functions page for more information on this.

The apply function allows you to decompose a given collection of geometries down to a certain level, and then operate on it.

Functionally, it's similar to map in the way you apply it to geometries.

apply and applyreduce take any geometry, vector of geometries, collection of geometries, or table (like Shapefile.Table, DataFrame, or GeoTable)!

What's this GeoInterface.Wrapper thing?

Write a comment about GeoInterface.Wrapper and why it helps in type stability to guarantee a particular return type.

',13)]))}const u=a(r,[["render",n]]);export{m as __pageData,u as default}; +import{_ as a,c as t,a5 as o,o as i}from"./chunks/framework.B0Ss3dHN.js";const m=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"introduction.md","filePath":"introduction.md","lastUpdated":null}'),r={name:"introduction.md"};function n(c,e,s,p,l,d){return i(),t("div",null,e[0]||(e[0]=[o('

Introduction

GeometryOps.jl is a package for geometric calculations on (primarily 2D) geometries.

The driving idea behind this package is to unify all the disparate packages for geometric calculations in Julia, and make them GeoInterface.jl-compatible. We seem to be focusing primarily on 2/2.5D geometries for now.

Most of the usecases are driven by GIS and similar Earth data workflows, so this might be a bit specialized towards that, but methods should always be general to any coordinate space.

We welcome contributions, either as pull requests or discussion on issues!

Main concepts

The apply paradigm

Note

See the Primitive Functions page for more information on this.

The apply function allows you to decompose a given collection of geometries down to a certain level, and then operate on it.

Functionally, it's similar to map in the way you apply it to geometries.

apply and applyreduce take any geometry, vector of geometries, collection of geometries, or table (like Shapefile.Table, DataFrame, or GeoTable)!

What's this GeoInterface.Wrapper thing?

Write a comment about GeoInterface.Wrapper and why it helps in type stability to guarantee a particular return type.

',13)]))}const u=a(r,[["render",n]]);export{m as __pageData,u as default}; diff --git a/dev/assets/introduction.md.DMSw2cvK.lean.js b/dev/assets/introduction.md.CDdh5Sjo.lean.js similarity index 95% rename from dev/assets/introduction.md.DMSw2cvK.lean.js rename to dev/assets/introduction.md.CDdh5Sjo.lean.js index e77241b4f..ddf1dffef 100644 --- a/dev/assets/introduction.md.DMSw2cvK.lean.js +++ b/dev/assets/introduction.md.CDdh5Sjo.lean.js @@ -1 +1 @@ -import{_ as a,c as t,a5 as o,o as i}from"./chunks/framework.B9oBnxE7.js";const m=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"introduction.md","filePath":"introduction.md","lastUpdated":null}'),r={name:"introduction.md"};function n(c,e,s,p,l,d){return i(),t("div",null,e[0]||(e[0]=[o('

Introduction

GeometryOps.jl is a package for geometric calculations on (primarily 2D) geometries.

The driving idea behind this package is to unify all the disparate packages for geometric calculations in Julia, and make them GeoInterface.jl-compatible. We seem to be focusing primarily on 2/2.5D geometries for now.

Most of the usecases are driven by GIS and similar Earth data workflows, so this might be a bit specialized towards that, but methods should always be general to any coordinate space.

We welcome contributions, either as pull requests or discussion on issues!

Main concepts

The apply paradigm

Note

See the Primitive Functions page for more information on this.

The apply function allows you to decompose a given collection of geometries down to a certain level, and then operate on it.

Functionally, it's similar to map in the way you apply it to geometries.

apply and applyreduce take any geometry, vector of geometries, collection of geometries, or table (like Shapefile.Table, DataFrame, or GeoTable)!

What's this GeoInterface.Wrapper thing?

Write a comment about GeoInterface.Wrapper and why it helps in type stability to guarantee a particular return type.

',13)]))}const u=a(r,[["render",n]]);export{m as __pageData,u as default}; +import{_ as a,c as t,a5 as o,o as i}from"./chunks/framework.B0Ss3dHN.js";const m=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"introduction.md","filePath":"introduction.md","lastUpdated":null}'),r={name:"introduction.md"};function n(c,e,s,p,l,d){return i(),t("div",null,e[0]||(e[0]=[o('

Introduction

GeometryOps.jl is a package for geometric calculations on (primarily 2D) geometries.

The driving idea behind this package is to unify all the disparate packages for geometric calculations in Julia, and make them GeoInterface.jl-compatible. We seem to be focusing primarily on 2/2.5D geometries for now.

Most of the usecases are driven by GIS and similar Earth data workflows, so this might be a bit specialized towards that, but methods should always be general to any coordinate space.

We welcome contributions, either as pull requests or discussion on issues!

Main concepts

The apply paradigm

Note

See the Primitive Functions page for more information on this.

The apply function allows you to decompose a given collection of geometries down to a certain level, and then operate on it.

Functionally, it's similar to map in the way you apply it to geometries.

apply and applyreduce take any geometry, vector of geometries, collection of geometries, or table (like Shapefile.Table, DataFrame, or GeoTable)!

What's this GeoInterface.Wrapper thing?

Write a comment about GeoInterface.Wrapper and why it helps in type stability to guarantee a particular return type.

',13)]))}const u=a(r,[["render",n]]);export{m as __pageData,u as default}; diff --git a/dev/assets/itssczc.DsRRHTcy.png b/dev/assets/itssczc.DsRRHTcy.png deleted file mode 100644 index 89c344482786df654c11f22fbfaa38c080b2e86a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229881 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 &^SgM;$;QK`DH}09Jiylg6G9)9 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 diff --git a/dev/assets/jdmlgmk.Ld9T2t3C.png b/dev/assets/jdmlgmk.Ld9T2t3C.png deleted file mode 100644 index ddf31fa022aa01d431c1e55842b2fe64c056ced6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62159 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 GfBzTt#9ZJ2 diff --git a/dev/assets/jkijtgh.CD6tsQoA.png b/dev/assets/jkijtgh.CD6tsQoA.png deleted file mode 100644 index cf55d07d4f75a6911f0527c0b2247cc2d9a995f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66000 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 diff --git a/dev/assets/fgstgnj.rOsRk89v.png b/dev/assets/lewnlwz.rOsRk89v.png similarity index 100% rename from dev/assets/fgstgnj.rOsRk89v.png rename to dev/assets/lewnlwz.rOsRk89v.png diff --git a/dev/assets/vgaqycr.Cb0_DiYE.png b/dev/assets/lfkbiyn.Cb0_DiYE.png similarity index 100% rename from dev/assets/vgaqycr.Cb0_DiYE.png rename to dev/assets/lfkbiyn.Cb0_DiYE.png diff --git a/dev/assets/djtifut.DiwGEg2f.png b/dev/assets/lybcrnj.DiwGEg2f.png similarity index 100% rename from dev/assets/djtifut.DiwGEg2f.png rename to dev/assets/lybcrnj.DiwGEg2f.png diff --git a/dev/assets/hiphqee.DHcwB147.png b/dev/assets/nbkkzbs.DHcwB147.png similarity index 100% rename from dev/assets/hiphqee.DHcwB147.png rename to dev/assets/nbkkzbs.DHcwB147.png diff --git a/dev/assets/ykhxikq.4wfjCtJV.png b/dev/assets/nbufiob.4wfjCtJV.png similarity index 100% rename from dev/assets/ykhxikq.4wfjCtJV.png rename to dev/assets/nbufiob.4wfjCtJV.png diff --git a/dev/assets/jhvrbrf._0R9BbFk.png b/dev/assets/nhnkjbu._0R9BbFk.png similarity index 100% rename from dev/assets/jhvrbrf._0R9BbFk.png rename to dev/assets/nhnkjbu._0R9BbFk.png diff --git a/dev/assets/nswzqgn.D9Jcxa43.png b/dev/assets/nswzqgn.D9Jcxa43.png new file mode 100644 index 0000000000000000000000000000000000000000..f2a9454e353141b578ea98578ef632f7cfa45766 GIT binary patch literal 65136 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%0AjvOO%eM?(L}UB`2N!M*4Fd}acI+C2Q3c8i-_ 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 Z3)f`pU;F;Uc!AvGu_NjVnR2Gr{|8m&)ad{K literal 0 HcmV?d00001 diff --git a/dev/assets/nzgypfi.JNr-H8gr.png b/dev/assets/nzgypfi.JNr-H8gr.png new file mode 100644 index 0000000000000000000000000000000000000000..99e234e4a57ff3356e154dc8312992990b74d78a GIT binary patch literal 60524 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 &@g08OG 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 z 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 literal 0 HcmV?d00001 diff --git a/dev/assets/ggsdqev.BD0hVfse.png b/dev/assets/sdgtpke.BD0hVfse.png similarity index 100% rename from dev/assets/ggsdqev.BD0hVfse.png rename to dev/assets/sdgtpke.BD0hVfse.png diff --git a/dev/assets/source_GeometryOps.md.DNnOkAK4.js b/dev/assets/source_GeometryOps.md.CISTZdtA.js similarity index 99% rename from dev/assets/source_GeometryOps.md.DNnOkAK4.js rename to dev/assets/source_GeometryOps.md.CISTZdtA.js index ea2ede88f..979e673e4 100644 --- a/dev/assets/source_GeometryOps.md.DNnOkAK4.js +++ b/dev/assets/source_GeometryOps.md.CISTZdtA.js @@ -1,4 +1,4 @@ -import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B9oBnxE7.js";const g=JSON.parse('{"title":"GeometryOps.jl","description":"","frontmatter":{},"headers":[],"relativePath":"source/GeometryOps.md","filePath":"source/GeometryOps.md","lastUpdated":null}'),h={name:"source/GeometryOps.md"};function t(k,s,p,e,E,r){return l(),a("div",null,s[0]||(s[0]=[n(`

GeometryOps.jl

julia
module GeometryOps
+import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B0Ss3dHN.js";const g=JSON.parse('{"title":"GeometryOps.jl","description":"","frontmatter":{},"headers":[],"relativePath":"source/GeometryOps.md","filePath":"source/GeometryOps.md","lastUpdated":null}'),h={name:"source/GeometryOps.md"};function t(k,s,p,e,E,r){return l(),a("div",null,s[0]||(s[0]=[n(`

GeometryOps.jl

julia
module GeometryOps
 
 using GeoInterface
 using GeometryBasics
diff --git a/dev/assets/source_GeometryOps.md.DNnOkAK4.lean.js b/dev/assets/source_GeometryOps.md.CISTZdtA.lean.js
similarity index 99%
rename from dev/assets/source_GeometryOps.md.DNnOkAK4.lean.js
rename to dev/assets/source_GeometryOps.md.CISTZdtA.lean.js
index ea2ede88f..979e673e4 100644
--- a/dev/assets/source_GeometryOps.md.DNnOkAK4.lean.js
+++ b/dev/assets/source_GeometryOps.md.CISTZdtA.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B9oBnxE7.js";const g=JSON.parse('{"title":"GeometryOps.jl","description":"","frontmatter":{},"headers":[],"relativePath":"source/GeometryOps.md","filePath":"source/GeometryOps.md","lastUpdated":null}'),h={name:"source/GeometryOps.md"};function t(k,s,p,e,E,r){return l(),a("div",null,s[0]||(s[0]=[n(`

GeometryOps.jl

julia
module GeometryOps
+import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B0Ss3dHN.js";const g=JSON.parse('{"title":"GeometryOps.jl","description":"","frontmatter":{},"headers":[],"relativePath":"source/GeometryOps.md","filePath":"source/GeometryOps.md","lastUpdated":null}'),h={name:"source/GeometryOps.md"};function t(k,s,p,e,E,r){return l(),a("div",null,s[0]||(s[0]=[n(`

GeometryOps.jl

julia
module GeometryOps
 
 using GeoInterface
 using GeometryBasics
diff --git a/dev/assets/source_methods_angles.md.DJQFUrD6.lean.js b/dev/assets/source_methods_angles.md.ukA9IUfs.js
similarity index 99%
rename from dev/assets/source_methods_angles.md.DJQFUrD6.lean.js
rename to dev/assets/source_methods_angles.md.ukA9IUfs.js
index 0608a3ae9..9aecefaa3 100644
--- a/dev/assets/source_methods_angles.md.DJQFUrD6.lean.js
+++ b/dev/assets/source_methods_angles.md.ukA9IUfs.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const l="/GeometryOps.jl/dev/assets/izivjpe.Dig-DWOQ.png",y=JSON.parse('{"title":"Angles","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/angles.md","filePath":"source/methods/angles.md","lastUpdated":null}'),k={name:"source/methods/angles.md"};function t(p,s,e,r,E,g){return h(),a("div",null,s[0]||(s[0]=[n(`

Angles

julia
export angles

What is angles?

Angles are the angles formed by a given geometries line segments, if it has line segments.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const l="/GeometryOps.jl/dev/assets/dngpdrf.Dig-DWOQ.png",y=JSON.parse('{"title":"Angles","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/angles.md","filePath":"source/methods/angles.md","lastUpdated":null}'),k={name:"source/methods/angles.md"};function t(p,s,e,r,E,g){return h(),a("div",null,s[0]||(s[0]=[n(`

Angles

julia
export angles

What is angles?

Angles are the angles formed by a given geometries line segments, if it has line segments.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie, CairoMakie
 
diff --git a/dev/assets/source_methods_angles.md.DJQFUrD6.js b/dev/assets/source_methods_angles.md.ukA9IUfs.lean.js
similarity index 99%
rename from dev/assets/source_methods_angles.md.DJQFUrD6.js
rename to dev/assets/source_methods_angles.md.ukA9IUfs.lean.js
index 0608a3ae9..9aecefaa3 100644
--- a/dev/assets/source_methods_angles.md.DJQFUrD6.js
+++ b/dev/assets/source_methods_angles.md.ukA9IUfs.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const l="/GeometryOps.jl/dev/assets/izivjpe.Dig-DWOQ.png",y=JSON.parse('{"title":"Angles","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/angles.md","filePath":"source/methods/angles.md","lastUpdated":null}'),k={name:"source/methods/angles.md"};function t(p,s,e,r,E,g){return h(),a("div",null,s[0]||(s[0]=[n(`

Angles

julia
export angles

What is angles?

Angles are the angles formed by a given geometries line segments, if it has line segments.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const l="/GeometryOps.jl/dev/assets/dngpdrf.Dig-DWOQ.png",y=JSON.parse('{"title":"Angles","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/angles.md","filePath":"source/methods/angles.md","lastUpdated":null}'),k={name:"source/methods/angles.md"};function t(p,s,e,r,E,g){return h(),a("div",null,s[0]||(s[0]=[n(`

Angles

julia
export angles

What is angles?

Angles are the angles formed by a given geometries line segments, if it has line segments.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie, CairoMakie
 
diff --git a/dev/assets/source_methods_area.md.WQrOX1wx.js b/dev/assets/source_methods_area.md.Do01enJt.js
similarity index 99%
rename from dev/assets/source_methods_area.md.WQrOX1wx.js
rename to dev/assets/source_methods_area.md.Do01enJt.js
index a03932077..0685644c9 100644
--- a/dev/assets/source_methods_area.md.WQrOX1wx.js
+++ b/dev/assets/source_methods_area.md.Do01enJt.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const t="/GeometryOps.jl/dev/assets/izivjpe.Dig-DWOQ.png",e="/GeometryOps.jl/dev/assets/psyuqzd.CULn5saZ.png",o=JSON.parse('{"title":"Area and signed area","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/area.md","filePath":"source/methods/area.md","lastUpdated":null}'),l={name:"source/methods/area.md"};function p(k,s,r,d,g,E){return h(),a("div",null,s[0]||(s[0]=[n(`

Area and signed area

julia
export area, signed_area

What is area? What is signed area?

Area is the amount of space occupied by a two-dimensional figure. It is always a positive value. Signed area is simply the integral over the exterior path of a polygon, minus the sum of integrals over its interior holes. It is signed such that a clockwise path has a positive area, and a counterclockwise path has a negative area. The area is the absolute value of the signed area.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const t="/GeometryOps.jl/dev/assets/dngpdrf.Dig-DWOQ.png",e="/GeometryOps.jl/dev/assets/bavdnxo.CULn5saZ.png",y=JSON.parse('{"title":"Area and signed area","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/area.md","filePath":"source/methods/area.md","lastUpdated":null}'),l={name:"source/methods/area.md"};function p(k,s,r,d,g,E){return h(),a("div",null,s[0]||(s[0]=[n(`

Area and signed area

julia
export area, signed_area

What is area? What is signed area?

Area is the amount of space occupied by a two-dimensional figure. It is always a positive value. Signed area is simply the integral over the exterior path of a polygon, minus the sum of integrals over its interior holes. It is signed such that a clockwise path has a positive area, and a counterclockwise path has a negative area. The area is the absolute value of the signed area.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
@@ -84,4 +84,4 @@ import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const t
     end

Complete the last edge. If the first and last where the same this will be zero

julia
    p2 = pfirst
     area += _area_component(p1, p2)
     return T(area / 2)
-end

This page was generated using Literate.jl.

`,40)]))}const F=i(l,[["render",p]]);export{o as __pageData,F as default}; +end

This page was generated using Literate.jl.

`,40)]))}const F=i(l,[["render",p]]);export{y as __pageData,F as default}; diff --git a/dev/assets/source_methods_area.md.WQrOX1wx.lean.js b/dev/assets/source_methods_area.md.Do01enJt.lean.js similarity index 99% rename from dev/assets/source_methods_area.md.WQrOX1wx.lean.js rename to dev/assets/source_methods_area.md.Do01enJt.lean.js index a03932077..0685644c9 100644 --- a/dev/assets/source_methods_area.md.WQrOX1wx.lean.js +++ b/dev/assets/source_methods_area.md.Do01enJt.lean.js @@ -1,4 +1,4 @@ -import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const t="/GeometryOps.jl/dev/assets/izivjpe.Dig-DWOQ.png",e="/GeometryOps.jl/dev/assets/psyuqzd.CULn5saZ.png",o=JSON.parse('{"title":"Area and signed area","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/area.md","filePath":"source/methods/area.md","lastUpdated":null}'),l={name:"source/methods/area.md"};function p(k,s,r,d,g,E){return h(),a("div",null,s[0]||(s[0]=[n(`

Area and signed area

julia
export area, signed_area

What is area? What is signed area?

Area is the amount of space occupied by a two-dimensional figure. It is always a positive value. Signed area is simply the integral over the exterior path of a polygon, minus the sum of integrals over its interior holes. It is signed such that a clockwise path has a positive area, and a counterclockwise path has a negative area. The area is the absolute value of the signed area.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const t="/GeometryOps.jl/dev/assets/dngpdrf.Dig-DWOQ.png",e="/GeometryOps.jl/dev/assets/bavdnxo.CULn5saZ.png",y=JSON.parse('{"title":"Area and signed area","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/area.md","filePath":"source/methods/area.md","lastUpdated":null}'),l={name:"source/methods/area.md"};function p(k,s,r,d,g,E){return h(),a("div",null,s[0]||(s[0]=[n(`

Area and signed area

julia
export area, signed_area

What is area? What is signed area?

Area is the amount of space occupied by a two-dimensional figure. It is always a positive value. Signed area is simply the integral over the exterior path of a polygon, minus the sum of integrals over its interior holes. It is signed such that a clockwise path has a positive area, and a counterclockwise path has a negative area. The area is the absolute value of the signed area.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
@@ -84,4 +84,4 @@ import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const t
     end

Complete the last edge. If the first and last where the same this will be zero

julia
    p2 = pfirst
     area += _area_component(p1, p2)
     return T(area / 2)
-end

This page was generated using Literate.jl.

`,40)]))}const F=i(l,[["render",p]]);export{o as __pageData,F as default}; +end

This page was generated using Literate.jl.

`,40)]))}const F=i(l,[["render",p]]);export{y as __pageData,F as default}; diff --git a/dev/assets/source_methods_barycentric.md.Bposdlxu.js b/dev/assets/source_methods_barycentric.md.warUpGU6.js similarity index 99% rename from dev/assets/source_methods_barycentric.md.Bposdlxu.js rename to dev/assets/source_methods_barycentric.md.warUpGU6.js index ceba23cec..8f2fa74ca 100644 --- a/dev/assets/source_methods_barycentric.md.Bposdlxu.js +++ b/dev/assets/source_methods_barycentric.md.warUpGU6.js @@ -1,4 +1,4 @@ -import{_ as k,c as n,a5 as t,j as s,a,o as h}from"./chunks/framework.B9oBnxE7.js";const l="/GeometryOps.jl/dev/assets/xhjkqlp.CZy9YIUA.png",m=JSON.parse('{"title":"Barycentric coordinates","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/barycentric.md","filePath":"source/methods/barycentric.md","lastUpdated":null}'),p={name:"source/methods/barycentric.md"},e={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},E={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.692ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4726 1000","aria-hidden":"true"},r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},g={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},y={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},F={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},o={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"14.876ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 6575.4 1000","aria-hidden":"true"};function C(c,i,B,A,D,u){return h(),n("div",null,[i[14]||(i[14]=t(`

Barycentric coordinates

julia
export barycentric_coordinates, barycentric_coordinates!, barycentric_interpolate
+import{_ as k,c as n,a5 as t,j as s,a,o as h}from"./chunks/framework.B0Ss3dHN.js";const l="/GeometryOps.jl/dev/assets/ucnshtv.CZy9YIUA.png",m=JSON.parse('{"title":"Barycentric coordinates","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/barycentric.md","filePath":"source/methods/barycentric.md","lastUpdated":null}'),p={name:"source/methods/barycentric.md"},e={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},E={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.692ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4726 1000","aria-hidden":"true"},r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},g={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},y={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},F={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},o={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"14.876ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 6575.4 1000","aria-hidden":"true"};function C(c,i,B,A,D,u){return h(),n("div",null,[i[14]||(i[14]=t(`

Barycentric coordinates

julia
export barycentric_coordinates, barycentric_coordinates!, barycentric_interpolate
 export MeanValue

Generalized barycentric coordinates are a generalization of barycentric coordinates, which are typically used in triangles, to arbitrary polygons.

They provide a way to express a point within a polygon as a weighted average of the polygon's vertices.

`,4)),s("p",null,[i[2]||(i[2]=a("In the case of a triangle, barycentric coordinates are a set of three numbers ")),s("mjx-container",e,[(h(),n("svg",E,i[0]||(i[0]=[t('',1)]))),i[1]||(i[1]=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"λ"),s("mn",null,"1")]),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mn",null,"2")]),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mn",null,"3")]),s("mo",{stretchy:"false"},")")])],-1))]),i[3]||(i[3]=a(", each associated with a vertex of the triangle. Any point within the triangle can be expressed as a weighted average of the vertices, where the weights are the barycentric coordinates. The weights sum to 1, and each is non-negative."))]),s("p",null,[i[10]||(i[10]=a("For a polygon with ")),s("mjx-container",r,[(h(),n("svg",d,i[4]||(i[4]=[s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1)]))),i[5]||(i[5]=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1))]),i[11]||(i[11]=a(" vertices, generalized barycentric coordinates are a set of ")),s("mjx-container",g,[(h(),n("svg",y,i[6]||(i[6]=[s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1)]))),i[7]||(i[7]=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1))]),i[12]||(i[12]=a(" numbers ")),s("mjx-container",F,[(h(),n("svg",o,i[8]||(i[8]=[t('',1)]))),i[9]||(i[9]=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"λ"),s("mn",null,"1")]),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mn",null,"2")]),s("mo",null,","),s("mo",null,"."),s("mo",null,"."),s("mo",null,"."),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mi",null,"n")]),s("mo",{stretchy:"false"},")")])],-1))]),i[13]||(i[13]=a(", each associated with a vertex of the polygon. Any point within the polygon can be expressed as a weighted average of the vertices, where the weights are the generalized barycentric coordinates."))]),i[15]||(i[15]=t(`

As with the triangle case, the weights sum to 1, and each is non-negative.

Example

This example was taken from this page of CGAL's documentation.

julia
using GeometryOps
 using GeometryOps.GeometryBasics
 using Makie
diff --git a/dev/assets/source_methods_barycentric.md.Bposdlxu.lean.js b/dev/assets/source_methods_barycentric.md.warUpGU6.lean.js
similarity index 99%
rename from dev/assets/source_methods_barycentric.md.Bposdlxu.lean.js
rename to dev/assets/source_methods_barycentric.md.warUpGU6.lean.js
index ceba23cec..8f2fa74ca 100644
--- a/dev/assets/source_methods_barycentric.md.Bposdlxu.lean.js
+++ b/dev/assets/source_methods_barycentric.md.warUpGU6.lean.js
@@ -1,4 +1,4 @@
-import{_ as k,c as n,a5 as t,j as s,a,o as h}from"./chunks/framework.B9oBnxE7.js";const l="/GeometryOps.jl/dev/assets/xhjkqlp.CZy9YIUA.png",m=JSON.parse('{"title":"Barycentric coordinates","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/barycentric.md","filePath":"source/methods/barycentric.md","lastUpdated":null}'),p={name:"source/methods/barycentric.md"},e={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},E={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.692ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4726 1000","aria-hidden":"true"},r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},g={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},y={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},F={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},o={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"14.876ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 6575.4 1000","aria-hidden":"true"};function C(c,i,B,A,D,u){return h(),n("div",null,[i[14]||(i[14]=t(`

Barycentric coordinates

julia
export barycentric_coordinates, barycentric_coordinates!, barycentric_interpolate
+import{_ as k,c as n,a5 as t,j as s,a,o as h}from"./chunks/framework.B0Ss3dHN.js";const l="/GeometryOps.jl/dev/assets/ucnshtv.CZy9YIUA.png",m=JSON.parse('{"title":"Barycentric coordinates","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/barycentric.md","filePath":"source/methods/barycentric.md","lastUpdated":null}'),p={name:"source/methods/barycentric.md"},e={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},E={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.692ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4726 1000","aria-hidden":"true"},r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},g={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},y={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},F={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},o={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"14.876ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 6575.4 1000","aria-hidden":"true"};function C(c,i,B,A,D,u){return h(),n("div",null,[i[14]||(i[14]=t(`

Barycentric coordinates

julia
export barycentric_coordinates, barycentric_coordinates!, barycentric_interpolate
 export MeanValue

Generalized barycentric coordinates are a generalization of barycentric coordinates, which are typically used in triangles, to arbitrary polygons.

They provide a way to express a point within a polygon as a weighted average of the polygon's vertices.

`,4)),s("p",null,[i[2]||(i[2]=a("In the case of a triangle, barycentric coordinates are a set of three numbers ")),s("mjx-container",e,[(h(),n("svg",E,i[0]||(i[0]=[t('',1)]))),i[1]||(i[1]=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"λ"),s("mn",null,"1")]),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mn",null,"2")]),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mn",null,"3")]),s("mo",{stretchy:"false"},")")])],-1))]),i[3]||(i[3]=a(", each associated with a vertex of the triangle. Any point within the triangle can be expressed as a weighted average of the vertices, where the weights are the barycentric coordinates. The weights sum to 1, and each is non-negative."))]),s("p",null,[i[10]||(i[10]=a("For a polygon with ")),s("mjx-container",r,[(h(),n("svg",d,i[4]||(i[4]=[s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1)]))),i[5]||(i[5]=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1))]),i[11]||(i[11]=a(" vertices, generalized barycentric coordinates are a set of ")),s("mjx-container",g,[(h(),n("svg",y,i[6]||(i[6]=[s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1)]))),i[7]||(i[7]=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1))]),i[12]||(i[12]=a(" numbers ")),s("mjx-container",F,[(h(),n("svg",o,i[8]||(i[8]=[t('',1)]))),i[9]||(i[9]=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"λ"),s("mn",null,"1")]),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mn",null,"2")]),s("mo",null,","),s("mo",null,"."),s("mo",null,"."),s("mo",null,"."),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mi",null,"n")]),s("mo",{stretchy:"false"},")")])],-1))]),i[13]||(i[13]=a(", each associated with a vertex of the polygon. Any point within the polygon can be expressed as a weighted average of the vertices, where the weights are the generalized barycentric coordinates."))]),i[15]||(i[15]=t(`

As with the triangle case, the weights sum to 1, and each is non-negative.

Example

This example was taken from this page of CGAL's documentation.

julia
using GeometryOps
 using GeometryOps.GeometryBasics
 using Makie
diff --git a/dev/assets/source_methods_buffer.md.CueWHjge.js b/dev/assets/source_methods_buffer.md.BLI5va4z.js
similarity index 98%
rename from dev/assets/source_methods_buffer.md.CueWHjge.js
rename to dev/assets/source_methods_buffer.md.BLI5va4z.js
index d8e6759c0..518abb5f9 100644
--- a/dev/assets/source_methods_buffer.md.CueWHjge.js
+++ b/dev/assets/source_methods_buffer.md.BLI5va4z.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B9oBnxE7.js";const g=JSON.parse('{"title":"Buffer","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/buffer.md","filePath":"source/methods/buffer.md","lastUpdated":null}'),e={name:"source/methods/buffer.md"};function h(k,s,p,l,r,d){return t(),a("div",null,s[0]||(s[0]=[n(`

Buffer

Buffering a geometry means computing the region distance away from it, and returning that region as the new geometry.

As of now, we only support GEOS as the backend, meaning that LibGEOS must be loaded.

julia
function buffer(geometry, distance; kwargs...)
+import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B0Ss3dHN.js";const g=JSON.parse('{"title":"Buffer","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/buffer.md","filePath":"source/methods/buffer.md","lastUpdated":null}'),e={name:"source/methods/buffer.md"};function h(k,s,p,l,r,d){return t(),a("div",null,s[0]||(s[0]=[n(`

Buffer

Buffering a geometry means computing the region distance away from it, and returning that region as the new geometry.

As of now, we only support GEOS as the backend, meaning that LibGEOS must be loaded.

julia
function buffer(geometry, distance; kwargs...)
     buffered = buffer(GEOS(; kwargs...), geometry, distance)
     return tuples(buffered)
 end

Below is an error handler similar to the others we have for e.g. segmentize, which checks if there is a method error for the geos backend.

Add an error hint for buffer if LibGEOS is not loaded!

julia
function _buffer_error_hinter(io, exc, argtypes, kwargs)
diff --git a/dev/assets/source_methods_buffer.md.CueWHjge.lean.js b/dev/assets/source_methods_buffer.md.BLI5va4z.lean.js
similarity index 98%
rename from dev/assets/source_methods_buffer.md.CueWHjge.lean.js
rename to dev/assets/source_methods_buffer.md.BLI5va4z.lean.js
index d8e6759c0..518abb5f9 100644
--- a/dev/assets/source_methods_buffer.md.CueWHjge.lean.js
+++ b/dev/assets/source_methods_buffer.md.BLI5va4z.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B9oBnxE7.js";const g=JSON.parse('{"title":"Buffer","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/buffer.md","filePath":"source/methods/buffer.md","lastUpdated":null}'),e={name:"source/methods/buffer.md"};function h(k,s,p,l,r,d){return t(),a("div",null,s[0]||(s[0]=[n(`

Buffer

Buffering a geometry means computing the region distance away from it, and returning that region as the new geometry.

As of now, we only support GEOS as the backend, meaning that LibGEOS must be loaded.

julia
function buffer(geometry, distance; kwargs...)
+import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B0Ss3dHN.js";const g=JSON.parse('{"title":"Buffer","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/buffer.md","filePath":"source/methods/buffer.md","lastUpdated":null}'),e={name:"source/methods/buffer.md"};function h(k,s,p,l,r,d){return t(),a("div",null,s[0]||(s[0]=[n(`

Buffer

Buffering a geometry means computing the region distance away from it, and returning that region as the new geometry.

As of now, we only support GEOS as the backend, meaning that LibGEOS must be loaded.

julia
function buffer(geometry, distance; kwargs...)
     buffered = buffer(GEOS(; kwargs...), geometry, distance)
     return tuples(buffered)
 end

Below is an error handler similar to the others we have for e.g. segmentize, which checks if there is a method error for the geos backend.

Add an error hint for buffer if LibGEOS is not loaded!

julia
function _buffer_error_hinter(io, exc, argtypes, kwargs)
diff --git a/dev/assets/source_methods_centroid.md.BQUmMSwV.js b/dev/assets/source_methods_centroid.md.CvPZjUoH.js
similarity index 99%
rename from dev/assets/source_methods_centroid.md.BQUmMSwV.js
rename to dev/assets/source_methods_centroid.md.CvPZjUoH.js
index b8b68a5fd..d601a2232 100644
--- a/dev/assets/source_methods_centroid.md.BQUmMSwV.js
+++ b/dev/assets/source_methods_centroid.md.CvPZjUoH.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const t="/GeometryOps.jl/dev/assets/ggsdqev.BD0hVfse.png",k="/GeometryOps.jl/dev/assets/hiphqee.DHcwB147.png",o=JSON.parse('{"title":"Centroid","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/centroid.md","filePath":"source/methods/centroid.md","lastUpdated":null}'),l={name:"source/methods/centroid.md"};function p(e,s,r,E,d,g){return h(),a("div",null,s[0]||(s[0]=[n(`

Centroid

julia
export centroid, centroid_and_length, centroid_and_area

What is the centroid?

The centroid is the geometric center of a line string or area(s). Note that the centroid does not need to be inside of a concave area.

Further note that by convention a line, or linear ring, is calculated by weighting the line segments by their length, while polygons and multipolygon centroids are calculated by weighting edge's by their 'area components'.

To provide an example, consider this concave polygon in the shape of a 'C':

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const t="/GeometryOps.jl/dev/assets/sdgtpke.BD0hVfse.png",k="/GeometryOps.jl/dev/assets/nbkkzbs.DHcwB147.png",o=JSON.parse('{"title":"Centroid","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/centroid.md","filePath":"source/methods/centroid.md","lastUpdated":null}'),l={name:"source/methods/centroid.md"};function p(e,s,r,E,d,g){return h(),a("div",null,s[0]||(s[0]=[n(`

Centroid

julia
export centroid, centroid_and_length, centroid_and_area

What is the centroid?

The centroid is the geometric center of a line string or area(s). Note that the centroid does not need to be inside of a concave area.

Further note that by convention a line, or linear ring, is calculated by weighting the line segments by their length, while polygons and multipolygon centroids are calculated by weighting edge's by their 'area components'.

To provide an example, consider this concave polygon in the shape of a 'C':

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_centroid.md.BQUmMSwV.lean.js b/dev/assets/source_methods_centroid.md.CvPZjUoH.lean.js
similarity index 99%
rename from dev/assets/source_methods_centroid.md.BQUmMSwV.lean.js
rename to dev/assets/source_methods_centroid.md.CvPZjUoH.lean.js
index b8b68a5fd..d601a2232 100644
--- a/dev/assets/source_methods_centroid.md.BQUmMSwV.lean.js
+++ b/dev/assets/source_methods_centroid.md.CvPZjUoH.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const t="/GeometryOps.jl/dev/assets/ggsdqev.BD0hVfse.png",k="/GeometryOps.jl/dev/assets/hiphqee.DHcwB147.png",o=JSON.parse('{"title":"Centroid","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/centroid.md","filePath":"source/methods/centroid.md","lastUpdated":null}'),l={name:"source/methods/centroid.md"};function p(e,s,r,E,d,g){return h(),a("div",null,s[0]||(s[0]=[n(`

Centroid

julia
export centroid, centroid_and_length, centroid_and_area

What is the centroid?

The centroid is the geometric center of a line string or area(s). Note that the centroid does not need to be inside of a concave area.

Further note that by convention a line, or linear ring, is calculated by weighting the line segments by their length, while polygons and multipolygon centroids are calculated by weighting edge's by their 'area components'.

To provide an example, consider this concave polygon in the shape of a 'C':

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const t="/GeometryOps.jl/dev/assets/sdgtpke.BD0hVfse.png",k="/GeometryOps.jl/dev/assets/nbkkzbs.DHcwB147.png",o=JSON.parse('{"title":"Centroid","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/centroid.md","filePath":"source/methods/centroid.md","lastUpdated":null}'),l={name:"source/methods/centroid.md"};function p(e,s,r,E,d,g){return h(),a("div",null,s[0]||(s[0]=[n(`

Centroid

julia
export centroid, centroid_and_length, centroid_and_area

What is the centroid?

The centroid is the geometric center of a line string or area(s). Note that the centroid does not need to be inside of a concave area.

Further note that by convention a line, or linear ring, is calculated by weighting the line segments by their length, while polygons and multipolygon centroids are calculated by weighting edge's by their 'area components'.

To provide an example, consider this concave polygon in the shape of a 'C':

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_clipping_clipping_processor.md.BOh5dOOA.js b/dev/assets/source_methods_clipping_clipping_processor.md.D1cLUmXv.js
similarity index 99%
rename from dev/assets/source_methods_clipping_clipping_processor.md.BOh5dOOA.js
rename to dev/assets/source_methods_clipping_clipping_processor.md.D1cLUmXv.js
index b2b68820a..44a1e69d1 100644
--- a/dev/assets/source_methods_clipping_clipping_processor.md.BOh5dOOA.js
+++ b/dev/assets/source_methods_clipping_clipping_processor.md.D1cLUmXv.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const g=JSON.parse('{"title":"Polygon clipping helpers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/clipping_processor.md","filePath":"source/methods/clipping/clipping_processor.md","lastUpdated":null}'),t={name:"source/methods/clipping/clipping_processor.md"};function p(l,s,k,e,E,r){return h(),a("div",null,s[0]||(s[0]=[n(`

Polygon clipping helpers

This file contains the shared helper functions for the polygon clipping functionalities.

This enum defines which side of an edge a point is on

julia
@enum PointEdgeSide left=1 right=2 unknown=3

Constants assigned for readability

julia
const enter, exit = true, false
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const g=JSON.parse('{"title":"Polygon clipping helpers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/clipping_processor.md","filePath":"source/methods/clipping/clipping_processor.md","lastUpdated":null}'),t={name:"source/methods/clipping/clipping_processor.md"};function p(l,s,k,e,E,r){return h(),a("div",null,s[0]||(s[0]=[n(`

Polygon clipping helpers

This file contains the shared helper functions for the polygon clipping functionalities.

This enum defines which side of an edge a point is on

julia
@enum PointEdgeSide left=1 right=2 unknown=3

Constants assigned for readability

julia
const enter, exit = true, false
 const crossing, bouncing = true, false
 
 #= A point can either be the start or end of an overlapping chain of points between two
diff --git a/dev/assets/source_methods_clipping_clipping_processor.md.BOh5dOOA.lean.js b/dev/assets/source_methods_clipping_clipping_processor.md.D1cLUmXv.lean.js
similarity index 99%
rename from dev/assets/source_methods_clipping_clipping_processor.md.BOh5dOOA.lean.js
rename to dev/assets/source_methods_clipping_clipping_processor.md.D1cLUmXv.lean.js
index b2b68820a..44a1e69d1 100644
--- a/dev/assets/source_methods_clipping_clipping_processor.md.BOh5dOOA.lean.js
+++ b/dev/assets/source_methods_clipping_clipping_processor.md.D1cLUmXv.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const g=JSON.parse('{"title":"Polygon clipping helpers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/clipping_processor.md","filePath":"source/methods/clipping/clipping_processor.md","lastUpdated":null}'),t={name:"source/methods/clipping/clipping_processor.md"};function p(l,s,k,e,E,r){return h(),a("div",null,s[0]||(s[0]=[n(`

Polygon clipping helpers

This file contains the shared helper functions for the polygon clipping functionalities.

This enum defines which side of an edge a point is on

julia
@enum PointEdgeSide left=1 right=2 unknown=3

Constants assigned for readability

julia
const enter, exit = true, false
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const g=JSON.parse('{"title":"Polygon clipping helpers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/clipping_processor.md","filePath":"source/methods/clipping/clipping_processor.md","lastUpdated":null}'),t={name:"source/methods/clipping/clipping_processor.md"};function p(l,s,k,e,E,r){return h(),a("div",null,s[0]||(s[0]=[n(`

Polygon clipping helpers

This file contains the shared helper functions for the polygon clipping functionalities.

This enum defines which side of an edge a point is on

julia
@enum PointEdgeSide left=1 right=2 unknown=3

Constants assigned for readability

julia
const enter, exit = true, false
 const crossing, bouncing = true, false
 
 #= A point can either be the start or end of an overlapping chain of points between two
diff --git a/dev/assets/source_methods_clipping_coverage.md.DZJIW-uD.js b/dev/assets/source_methods_clipping_coverage.md.TKsPhvkZ.js
similarity index 99%
rename from dev/assets/source_methods_clipping_coverage.md.DZJIW-uD.js
rename to dev/assets/source_methods_clipping_coverage.md.TKsPhvkZ.js
index bab92f411..b0ffaa0f4 100644
--- a/dev/assets/source_methods_clipping_coverage.md.DZJIW-uD.js
+++ b/dev/assets/source_methods_clipping_coverage.md.TKsPhvkZ.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const l="/GeometryOps.jl/dev/assets/vgaqycr.Cb0_DiYE.png",y=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/coverage.md","filePath":"source/methods/clipping/coverage.md","lastUpdated":null}'),k={name:"source/methods/clipping/coverage.md"};function p(t,s,e,E,r,d){return h(),a("div",null,s[0]||(s[0]=[n(`
julia
export coverage

What is coverage?

Coverage is the amount of geometry area within a bounding box defined by the minimum and maximum x and y-coordinates of that bounding box, or an Extent containing that information.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const l="/GeometryOps.jl/dev/assets/lfkbiyn.Cb0_DiYE.png",y=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/coverage.md","filePath":"source/methods/clipping/coverage.md","lastUpdated":null}'),k={name:"source/methods/clipping/coverage.md"};function p(t,s,e,E,r,d){return h(),a("div",null,s[0]||(s[0]=[n(`
julia
export coverage

What is coverage?

Coverage is the amount of geometry area within a bounding box defined by the minimum and maximum x and y-coordinates of that bounding box, or an Extent containing that information.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_clipping_coverage.md.DZJIW-uD.lean.js b/dev/assets/source_methods_clipping_coverage.md.TKsPhvkZ.lean.js
similarity index 99%
rename from dev/assets/source_methods_clipping_coverage.md.DZJIW-uD.lean.js
rename to dev/assets/source_methods_clipping_coverage.md.TKsPhvkZ.lean.js
index bab92f411..b0ffaa0f4 100644
--- a/dev/assets/source_methods_clipping_coverage.md.DZJIW-uD.lean.js
+++ b/dev/assets/source_methods_clipping_coverage.md.TKsPhvkZ.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const l="/GeometryOps.jl/dev/assets/vgaqycr.Cb0_DiYE.png",y=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/coverage.md","filePath":"source/methods/clipping/coverage.md","lastUpdated":null}'),k={name:"source/methods/clipping/coverage.md"};function p(t,s,e,E,r,d){return h(),a("div",null,s[0]||(s[0]=[n(`
julia
export coverage

What is coverage?

Coverage is the amount of geometry area within a bounding box defined by the minimum and maximum x and y-coordinates of that bounding box, or an Extent containing that information.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const l="/GeometryOps.jl/dev/assets/lfkbiyn.Cb0_DiYE.png",y=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/coverage.md","filePath":"source/methods/clipping/coverage.md","lastUpdated":null}'),k={name:"source/methods/clipping/coverage.md"};function p(t,s,e,E,r,d){return h(),a("div",null,s[0]||(s[0]=[n(`
julia
export coverage

What is coverage?

Coverage is the amount of geometry area within a bounding box defined by the minimum and maximum x and y-coordinates of that bounding box, or an Extent containing that information.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_clipping_cut.md.CZH3PQSC.js b/dev/assets/source_methods_clipping_cut.md.Dgrhm9R2.js
similarity index 99%
rename from dev/assets/source_methods_clipping_cut.md.CZH3PQSC.js
rename to dev/assets/source_methods_clipping_cut.md.Dgrhm9R2.js
index e048d2681..200c36de5 100644
--- a/dev/assets/source_methods_clipping_cut.md.CZH3PQSC.js
+++ b/dev/assets/source_methods_clipping_cut.md.Dgrhm9R2.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const t="/GeometryOps.jl/dev/assets/tluyrwo.-VpeHhXX.png",y=JSON.parse('{"title":"Polygon cutting","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/cut.md","filePath":"source/methods/clipping/cut.md","lastUpdated":null}'),l={name:"source/methods/clipping/cut.md"};function p(k,s,e,r,E,d){return h(),a("div",null,s[0]||(s[0]=[n(`

Polygon cutting

julia
export cut

What is cut?

The cut function cuts a polygon through a line segment. This is inspired by functions such as Matlab's cutpolygon function.

To provide an example, consider the following polygon and line:

julia
import GeoInterface as GI, GeometryOps as GO
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const t="/GeometryOps.jl/dev/assets/cavlctn.-VpeHhXX.png",y=JSON.parse('{"title":"Polygon cutting","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/cut.md","filePath":"source/methods/clipping/cut.md","lastUpdated":null}'),l={name:"source/methods/clipping/cut.md"};function p(k,s,e,r,E,d){return h(),a("div",null,s[0]||(s[0]=[n(`

Polygon cutting

julia
export cut

What is cut?

The cut function cuts a polygon through a line segment. This is inspired by functions such as Matlab's cutpolygon function.

To provide an example, consider the following polygon and line:

julia
import GeoInterface as GI, GeometryOps as GO
 using CairoMakie
 using Makie
 
diff --git a/dev/assets/source_methods_clipping_cut.md.CZH3PQSC.lean.js b/dev/assets/source_methods_clipping_cut.md.Dgrhm9R2.lean.js
similarity index 99%
rename from dev/assets/source_methods_clipping_cut.md.CZH3PQSC.lean.js
rename to dev/assets/source_methods_clipping_cut.md.Dgrhm9R2.lean.js
index e048d2681..200c36de5 100644
--- a/dev/assets/source_methods_clipping_cut.md.CZH3PQSC.lean.js
+++ b/dev/assets/source_methods_clipping_cut.md.Dgrhm9R2.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const t="/GeometryOps.jl/dev/assets/tluyrwo.-VpeHhXX.png",y=JSON.parse('{"title":"Polygon cutting","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/cut.md","filePath":"source/methods/clipping/cut.md","lastUpdated":null}'),l={name:"source/methods/clipping/cut.md"};function p(k,s,e,r,E,d){return h(),a("div",null,s[0]||(s[0]=[n(`

Polygon cutting

julia
export cut

What is cut?

The cut function cuts a polygon through a line segment. This is inspired by functions such as Matlab's cutpolygon function.

To provide an example, consider the following polygon and line:

julia
import GeoInterface as GI, GeometryOps as GO
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const t="/GeometryOps.jl/dev/assets/cavlctn.-VpeHhXX.png",y=JSON.parse('{"title":"Polygon cutting","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/cut.md","filePath":"source/methods/clipping/cut.md","lastUpdated":null}'),l={name:"source/methods/clipping/cut.md"};function p(k,s,e,r,E,d){return h(),a("div",null,s[0]||(s[0]=[n(`

Polygon cutting

julia
export cut

What is cut?

The cut function cuts a polygon through a line segment. This is inspired by functions such as Matlab's cutpolygon function.

To provide an example, consider the following polygon and line:

julia
import GeoInterface as GI, GeometryOps as GO
 using CairoMakie
 using Makie
 
diff --git a/dev/assets/source_methods_clipping_difference.md.r4ONkeOe.js b/dev/assets/source_methods_clipping_difference.md.BHC8HbPw.js
similarity index 99%
rename from dev/assets/source_methods_clipping_difference.md.r4ONkeOe.js
rename to dev/assets/source_methods_clipping_difference.md.BHC8HbPw.js
index d241a3954..346350a9c 100644
--- a/dev/assets/source_methods_clipping_difference.md.r4ONkeOe.js
+++ b/dev/assets/source_methods_clipping_difference.md.BHC8HbPw.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B9oBnxE7.js";const y=JSON.parse('{"title":"Difference Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/difference.md","filePath":"source/methods/clipping/difference.md","lastUpdated":null}'),p={name:"source/methods/clipping/difference.md"};function t(h,s,e,k,r,d){return l(),a("div",null,s[0]||(s[0]=[n(`

Difference Polygon Clipping

julia
export difference
+import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B0Ss3dHN.js";const y=JSON.parse('{"title":"Difference Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/difference.md","filePath":"source/methods/clipping/difference.md","lastUpdated":null}'),p={name:"source/methods/clipping/difference.md"};function t(h,s,e,k,r,d){return l(),a("div",null,s[0]||(s[0]=[n(`

Difference Polygon Clipping

julia
export difference
 
 
 """
diff --git a/dev/assets/source_methods_clipping_difference.md.r4ONkeOe.lean.js b/dev/assets/source_methods_clipping_difference.md.BHC8HbPw.lean.js
similarity index 99%
rename from dev/assets/source_methods_clipping_difference.md.r4ONkeOe.lean.js
rename to dev/assets/source_methods_clipping_difference.md.BHC8HbPw.lean.js
index d241a3954..346350a9c 100644
--- a/dev/assets/source_methods_clipping_difference.md.r4ONkeOe.lean.js
+++ b/dev/assets/source_methods_clipping_difference.md.BHC8HbPw.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B9oBnxE7.js";const y=JSON.parse('{"title":"Difference Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/difference.md","filePath":"source/methods/clipping/difference.md","lastUpdated":null}'),p={name:"source/methods/clipping/difference.md"};function t(h,s,e,k,r,d){return l(),a("div",null,s[0]||(s[0]=[n(`

Difference Polygon Clipping

julia
export difference
+import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B0Ss3dHN.js";const y=JSON.parse('{"title":"Difference Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/difference.md","filePath":"source/methods/clipping/difference.md","lastUpdated":null}'),p={name:"source/methods/clipping/difference.md"};function t(h,s,e,k,r,d){return l(),a("div",null,s[0]||(s[0]=[n(`

Difference Polygon Clipping

julia
export difference
 
 
 """
diff --git a/dev/assets/source_methods_clipping_intersection.md.CCcO6qWd.js b/dev/assets/source_methods_clipping_intersection.md.YOXybPsc.js
similarity index 99%
rename from dev/assets/source_methods_clipping_intersection.md.CCcO6qWd.js
rename to dev/assets/source_methods_clipping_intersection.md.YOXybPsc.js
index 5ad26e0d5..a350a86a7 100644
--- a/dev/assets/source_methods_clipping_intersection.md.CCcO6qWd.js
+++ b/dev/assets/source_methods_clipping_intersection.md.YOXybPsc.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B9oBnxE7.js";const g=JSON.parse('{"title":"Geometry Intersection","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/intersection.md","filePath":"source/methods/clipping/intersection.md","lastUpdated":null}'),h={name:"source/methods/clipping/intersection.md"};function l(p,s,k,e,r,E){return t(),a("div",null,s[0]||(s[0]=[n(`

Geometry Intersection

julia
export intersection, intersection_points
+import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B0Ss3dHN.js";const g=JSON.parse('{"title":"Geometry Intersection","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/intersection.md","filePath":"source/methods/clipping/intersection.md","lastUpdated":null}'),h={name:"source/methods/clipping/intersection.md"};function l(p,s,k,e,r,E){return t(),a("div",null,s[0]||(s[0]=[n(`

Geometry Intersection

julia
export intersection, intersection_points
 
 """
     Enum LineOrientation
diff --git a/dev/assets/source_methods_clipping_intersection.md.CCcO6qWd.lean.js b/dev/assets/source_methods_clipping_intersection.md.YOXybPsc.lean.js
similarity index 99%
rename from dev/assets/source_methods_clipping_intersection.md.CCcO6qWd.lean.js
rename to dev/assets/source_methods_clipping_intersection.md.YOXybPsc.lean.js
index 5ad26e0d5..a350a86a7 100644
--- a/dev/assets/source_methods_clipping_intersection.md.CCcO6qWd.lean.js
+++ b/dev/assets/source_methods_clipping_intersection.md.YOXybPsc.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B9oBnxE7.js";const g=JSON.parse('{"title":"Geometry Intersection","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/intersection.md","filePath":"source/methods/clipping/intersection.md","lastUpdated":null}'),h={name:"source/methods/clipping/intersection.md"};function l(p,s,k,e,r,E){return t(),a("div",null,s[0]||(s[0]=[n(`

Geometry Intersection

julia
export intersection, intersection_points
+import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B0Ss3dHN.js";const g=JSON.parse('{"title":"Geometry Intersection","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/intersection.md","filePath":"source/methods/clipping/intersection.md","lastUpdated":null}'),h={name:"source/methods/clipping/intersection.md"};function l(p,s,k,e,r,E){return t(),a("div",null,s[0]||(s[0]=[n(`

Geometry Intersection

julia
export intersection, intersection_points
 
 """
     Enum LineOrientation
diff --git a/dev/assets/source_methods_clipping_predicates.md.CODrYlJF.js b/dev/assets/source_methods_clipping_predicates.md._lB4tLPb.js
similarity index 99%
rename from dev/assets/source_methods_clipping_predicates.md.CODrYlJF.js
rename to dev/assets/source_methods_clipping_predicates.md._lB4tLPb.js
index bf21b165a..f78a13af0 100644
--- a/dev/assets/source_methods_clipping_predicates.md.CODrYlJF.js
+++ b/dev/assets/source_methods_clipping_predicates.md._lB4tLPb.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B9oBnxE7.js";const c=JSON.parse('{"title":"If we want to inject adaptivity, we would do something like:","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/predicates.md","filePath":"source/methods/clipping/predicates.md","lastUpdated":null}'),h={name:"source/methods/clipping/predicates.md"};function e(p,s,l,k,r,d){return t(),a("div",null,s[0]||(s[0]=[n(`
julia
module Predicates
+import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B0Ss3dHN.js";const c=JSON.parse('{"title":"If we want to inject adaptivity, we would do something like:","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/predicates.md","filePath":"source/methods/clipping/predicates.md","lastUpdated":null}'),h={name:"source/methods/clipping/predicates.md"};function e(p,s,l,k,r,d){return t(),a("div",null,s[0]||(s[0]=[n(`
julia
module Predicates
     using ExactPredicates, ExactPredicates.Codegen
     import ExactPredicates: ext
     import ExactPredicates.Codegen: group!, @genpredicate
diff --git a/dev/assets/source_methods_clipping_predicates.md.CODrYlJF.lean.js b/dev/assets/source_methods_clipping_predicates.md._lB4tLPb.lean.js
similarity index 99%
rename from dev/assets/source_methods_clipping_predicates.md.CODrYlJF.lean.js
rename to dev/assets/source_methods_clipping_predicates.md._lB4tLPb.lean.js
index bf21b165a..f78a13af0 100644
--- a/dev/assets/source_methods_clipping_predicates.md.CODrYlJF.lean.js
+++ b/dev/assets/source_methods_clipping_predicates.md._lB4tLPb.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B9oBnxE7.js";const c=JSON.parse('{"title":"If we want to inject adaptivity, we would do something like:","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/predicates.md","filePath":"source/methods/clipping/predicates.md","lastUpdated":null}'),h={name:"source/methods/clipping/predicates.md"};function e(p,s,l,k,r,d){return t(),a("div",null,s[0]||(s[0]=[n(`
julia
module Predicates
+import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B0Ss3dHN.js";const c=JSON.parse('{"title":"If we want to inject adaptivity, we would do something like:","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/predicates.md","filePath":"source/methods/clipping/predicates.md","lastUpdated":null}'),h={name:"source/methods/clipping/predicates.md"};function e(p,s,l,k,r,d){return t(),a("div",null,s[0]||(s[0]=[n(`
julia
module Predicates
     using ExactPredicates, ExactPredicates.Codegen
     import ExactPredicates: ext
     import ExactPredicates.Codegen: group!, @genpredicate
diff --git a/dev/assets/source_methods_clipping_union.md.BdEMEvRX.js b/dev/assets/source_methods_clipping_union.md.D-TbsSpY.js
similarity index 99%
rename from dev/assets/source_methods_clipping_union.md.BdEMEvRX.js
rename to dev/assets/source_methods_clipping_union.md.D-TbsSpY.js
index 6acb3c7bd..d8dc5079c 100644
--- a/dev/assets/source_methods_clipping_union.md.BdEMEvRX.js
+++ b/dev/assets/source_methods_clipping_union.md.D-TbsSpY.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B9oBnxE7.js";const y=JSON.parse('{"title":"Union Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/union.md","filePath":"source/methods/clipping/union.md","lastUpdated":null}'),h={name:"source/methods/clipping/union.md"};function p(t,s,k,e,r,E){return l(),a("div",null,s[0]||(s[0]=[n(`

Union Polygon Clipping

julia
export union
+import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B0Ss3dHN.js";const y=JSON.parse('{"title":"Union Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/union.md","filePath":"source/methods/clipping/union.md","lastUpdated":null}'),h={name:"source/methods/clipping/union.md"};function p(t,s,k,e,r,E){return l(),a("div",null,s[0]||(s[0]=[n(`

Union Polygon Clipping

julia
export union
 
 """
     union(geom_a, geom_b, [::Type{T}]; target::Type, fix_multipoly = UnionIntersectingPolygons())
diff --git a/dev/assets/source_methods_clipping_union.md.BdEMEvRX.lean.js b/dev/assets/source_methods_clipping_union.md.D-TbsSpY.lean.js
similarity index 99%
rename from dev/assets/source_methods_clipping_union.md.BdEMEvRX.lean.js
rename to dev/assets/source_methods_clipping_union.md.D-TbsSpY.lean.js
index 6acb3c7bd..d8dc5079c 100644
--- a/dev/assets/source_methods_clipping_union.md.BdEMEvRX.lean.js
+++ b/dev/assets/source_methods_clipping_union.md.D-TbsSpY.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B9oBnxE7.js";const y=JSON.parse('{"title":"Union Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/union.md","filePath":"source/methods/clipping/union.md","lastUpdated":null}'),h={name:"source/methods/clipping/union.md"};function p(t,s,k,e,r,E){return l(),a("div",null,s[0]||(s[0]=[n(`

Union Polygon Clipping

julia
export union
+import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B0Ss3dHN.js";const y=JSON.parse('{"title":"Union Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/union.md","filePath":"source/methods/clipping/union.md","lastUpdated":null}'),h={name:"source/methods/clipping/union.md"};function p(t,s,k,e,r,E){return l(),a("div",null,s[0]||(s[0]=[n(`

Union Polygon Clipping

julia
export union
 
 """
     union(geom_a, geom_b, [::Type{T}]; target::Type, fix_multipoly = UnionIntersectingPolygons())
diff --git a/dev/assets/source_methods_convex_hull.md.CedUcdWz.js b/dev/assets/source_methods_convex_hull.md.NFIi0ZD0.js
similarity index 99%
rename from dev/assets/source_methods_convex_hull.md.CedUcdWz.js
rename to dev/assets/source_methods_convex_hull.md.NFIi0ZD0.js
index c9e7d6cab..0366fb605 100644
--- a/dev/assets/source_methods_convex_hull.md.CedUcdWz.js
+++ b/dev/assets/source_methods_convex_hull.md.NFIi0ZD0.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B9oBnxE7.js";const t="/GeometryOps.jl/dev/assets/eidxoxd.DpYrIdUh.png",h="/GeometryOps.jl/dev/assets/kpwfuad.mCtKcWOr.png",e="/GeometryOps.jl/dev/assets/jdmlgmk.Ld9T2t3C.png",c=JSON.parse('{"title":"Convex hull","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/convex_hull.md","filePath":"source/methods/convex_hull.md","lastUpdated":null}'),p={name:"source/methods/convex_hull.md"};function k(r,s,o,d,E,g){return l(),a("div",null,s[0]||(s[0]=[n(`

Convex hull

The convex hull of a set of points is the smallest convex polygon that contains all the points.

GeometryOps.jl provides a number of methods for computing the convex hull of a set of points, usually linked to other Julia packages.

For now, we expose one algorithm, MonotoneChainMethod, which uses the DelaunayTriangulation.jl package. The GEOS() interface also supports convex hulls.

Future work could include other algorithms, such as Quickhull.jl, or similar, via package extensions.

Example

Simple hull

julia
import GeometryOps as GO, GeoInterface as GI
+import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B0Ss3dHN.js";const t="/GeometryOps.jl/dev/assets/tmzqbco.Ds4_I6QN.png",h="/GeometryOps.jl/dev/assets/dhblkfo.mCtKcWOr.png",e="/GeometryOps.jl/dev/assets/nzgypfi.JNr-H8gr.png",c=JSON.parse('{"title":"Convex hull","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/convex_hull.md","filePath":"source/methods/convex_hull.md","lastUpdated":null}'),p={name:"source/methods/convex_hull.md"};function k(r,s,o,d,E,g){return l(),a("div",null,s[0]||(s[0]=[n(`

Convex hull

The convex hull of a set of points is the smallest convex polygon that contains all the points.

GeometryOps.jl provides a number of methods for computing the convex hull of a set of points, usually linked to other Julia packages.

For now, we expose one algorithm, MonotoneChainMethod, which uses the DelaunayTriangulation.jl package. The GEOS() interface also supports convex hulls.

Future work could include other algorithms, such as Quickhull.jl, or similar, via package extensions.

Example

Simple hull

julia
import GeometryOps as GO, GeoInterface as GI
 using CairoMakie # to plot
 
 points = randn(GO.Point2f, 100)
diff --git a/dev/assets/source_methods_convex_hull.md.CedUcdWz.lean.js b/dev/assets/source_methods_convex_hull.md.NFIi0ZD0.lean.js
similarity index 99%
rename from dev/assets/source_methods_convex_hull.md.CedUcdWz.lean.js
rename to dev/assets/source_methods_convex_hull.md.NFIi0ZD0.lean.js
index c9e7d6cab..0366fb605 100644
--- a/dev/assets/source_methods_convex_hull.md.CedUcdWz.lean.js
+++ b/dev/assets/source_methods_convex_hull.md.NFIi0ZD0.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B9oBnxE7.js";const t="/GeometryOps.jl/dev/assets/eidxoxd.DpYrIdUh.png",h="/GeometryOps.jl/dev/assets/kpwfuad.mCtKcWOr.png",e="/GeometryOps.jl/dev/assets/jdmlgmk.Ld9T2t3C.png",c=JSON.parse('{"title":"Convex hull","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/convex_hull.md","filePath":"source/methods/convex_hull.md","lastUpdated":null}'),p={name:"source/methods/convex_hull.md"};function k(r,s,o,d,E,g){return l(),a("div",null,s[0]||(s[0]=[n(`

Convex hull

The convex hull of a set of points is the smallest convex polygon that contains all the points.

GeometryOps.jl provides a number of methods for computing the convex hull of a set of points, usually linked to other Julia packages.

For now, we expose one algorithm, MonotoneChainMethod, which uses the DelaunayTriangulation.jl package. The GEOS() interface also supports convex hulls.

Future work could include other algorithms, such as Quickhull.jl, or similar, via package extensions.

Example

Simple hull

julia
import GeometryOps as GO, GeoInterface as GI
+import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B0Ss3dHN.js";const t="/GeometryOps.jl/dev/assets/tmzqbco.Ds4_I6QN.png",h="/GeometryOps.jl/dev/assets/dhblkfo.mCtKcWOr.png",e="/GeometryOps.jl/dev/assets/nzgypfi.JNr-H8gr.png",c=JSON.parse('{"title":"Convex hull","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/convex_hull.md","filePath":"source/methods/convex_hull.md","lastUpdated":null}'),p={name:"source/methods/convex_hull.md"};function k(r,s,o,d,E,g){return l(),a("div",null,s[0]||(s[0]=[n(`

Convex hull

The convex hull of a set of points is the smallest convex polygon that contains all the points.

GeometryOps.jl provides a number of methods for computing the convex hull of a set of points, usually linked to other Julia packages.

For now, we expose one algorithm, MonotoneChainMethod, which uses the DelaunayTriangulation.jl package. The GEOS() interface also supports convex hulls.

Future work could include other algorithms, such as Quickhull.jl, or similar, via package extensions.

Example

Simple hull

julia
import GeometryOps as GO, GeoInterface as GI
 using CairoMakie # to plot
 
 points = randn(GO.Point2f, 100)
diff --git a/dev/assets/source_methods_distance.md.CUPw5La4.js b/dev/assets/source_methods_distance.md.B3RCvmDv.js
similarity index 99%
rename from dev/assets/source_methods_distance.md.CUPw5La4.js
rename to dev/assets/source_methods_distance.md.B3RCvmDv.js
index f3d7b3e52..e71cb32a7 100644
--- a/dev/assets/source_methods_distance.md.CUPw5La4.js
+++ b/dev/assets/source_methods_distance.md.B3RCvmDv.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const t="/GeometryOps.jl/dev/assets/djtifut.DiwGEg2f.png",k="/GeometryOps.jl/dev/assets/wlivhzq.DuBHk1fh.png",F=JSON.parse('{"title":"Distance and signed distance","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/distance.md","filePath":"source/methods/distance.md","lastUpdated":null}'),p={name:"source/methods/distance.md"};function l(e,s,d,E,r,g){return h(),a("div",null,s[0]||(s[0]=[n(`

Distance and signed distance

julia
export distance, signed_distance

What is distance? What is signed distance?

Distance is the distance of a point to another geometry. This is always a positive number. If a point is inside of geometry, so on a curve or inside of a polygon, the distance will be zero. Signed distance is mainly used for polygons and multipolygons. If a point is outside of a geometry, signed distance has the same value as distance. However, points within the geometry have a negative distance representing the distance of a point to the closest boundary. Therefore, for all "non-filled" geometries, like curves, the distance will either be positive or 0.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const t="/GeometryOps.jl/dev/assets/lybcrnj.DiwGEg2f.png",k="/GeometryOps.jl/dev/assets/vudteoq.DuBHk1fh.png",F=JSON.parse('{"title":"Distance and signed distance","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/distance.md","filePath":"source/methods/distance.md","lastUpdated":null}'),p={name:"source/methods/distance.md"};function l(e,s,d,E,r,g){return h(),a("div",null,s[0]||(s[0]=[n(`

Distance and signed distance

julia
export distance, signed_distance

What is distance? What is signed distance?

Distance is the distance of a point to another geometry. This is always a positive number. If a point is inside of geometry, so on a curve or inside of a polygon, the distance will be zero. Signed distance is mainly used for polygons and multipolygons. If a point is outside of a geometry, signed distance has the same value as distance. However, points within the geometry have a negative distance representing the distance of a point to the closest boundary. Therefore, for all "non-filled" geometries, like curves, the distance will either be positive or 0.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_distance.md.CUPw5La4.lean.js b/dev/assets/source_methods_distance.md.B3RCvmDv.lean.js
similarity index 99%
rename from dev/assets/source_methods_distance.md.CUPw5La4.lean.js
rename to dev/assets/source_methods_distance.md.B3RCvmDv.lean.js
index f3d7b3e52..e71cb32a7 100644
--- a/dev/assets/source_methods_distance.md.CUPw5La4.lean.js
+++ b/dev/assets/source_methods_distance.md.B3RCvmDv.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const t="/GeometryOps.jl/dev/assets/djtifut.DiwGEg2f.png",k="/GeometryOps.jl/dev/assets/wlivhzq.DuBHk1fh.png",F=JSON.parse('{"title":"Distance and signed distance","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/distance.md","filePath":"source/methods/distance.md","lastUpdated":null}'),p={name:"source/methods/distance.md"};function l(e,s,d,E,r,g){return h(),a("div",null,s[0]||(s[0]=[n(`

Distance and signed distance

julia
export distance, signed_distance

What is distance? What is signed distance?

Distance is the distance of a point to another geometry. This is always a positive number. If a point is inside of geometry, so on a curve or inside of a polygon, the distance will be zero. Signed distance is mainly used for polygons and multipolygons. If a point is outside of a geometry, signed distance has the same value as distance. However, points within the geometry have a negative distance representing the distance of a point to the closest boundary. Therefore, for all "non-filled" geometries, like curves, the distance will either be positive or 0.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const t="/GeometryOps.jl/dev/assets/lybcrnj.DiwGEg2f.png",k="/GeometryOps.jl/dev/assets/vudteoq.DuBHk1fh.png",F=JSON.parse('{"title":"Distance and signed distance","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/distance.md","filePath":"source/methods/distance.md","lastUpdated":null}'),p={name:"source/methods/distance.md"};function l(e,s,d,E,r,g){return h(),a("div",null,s[0]||(s[0]=[n(`

Distance and signed distance

julia
export distance, signed_distance

What is distance? What is signed distance?

Distance is the distance of a point to another geometry. This is always a positive number. If a point is inside of geometry, so on a curve or inside of a polygon, the distance will be zero. Signed distance is mainly used for polygons and multipolygons. If a point is outside of a geometry, signed distance has the same value as distance. However, points within the geometry have a negative distance representing the distance of a point to the closest boundary. Therefore, for all "non-filled" geometries, like curves, the distance will either be positive or 0.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_equals.md.CkYarU2j.js b/dev/assets/source_methods_equals.md.D7YcKc5y.js
similarity index 99%
rename from dev/assets/source_methods_equals.md.CkYarU2j.js
rename to dev/assets/source_methods_equals.md.D7YcKc5y.js
index 769a3248c..175fdffeb 100644
--- a/dev/assets/source_methods_equals.md.CkYarU2j.js
+++ b/dev/assets/source_methods_equals.md.D7YcKc5y.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B9oBnxE7.js";const t="/GeometryOps.jl/dev/assets/lixjkeo.CgiryX2p.png",F=JSON.parse('{"title":"Equals","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/equals.md","filePath":"source/methods/equals.md","lastUpdated":null}'),p={name:"source/methods/equals.md"};function h(k,s,e,r,d,g){return l(),a("div",null,s[0]||(s[0]=[n(`

Equals

julia
export equals

What is equals?

The equals function checks if two geometries are equal. They are equal if they share the same set of points and edges to define the same shape.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B0Ss3dHN.js";const t="/GeometryOps.jl/dev/assets/swezuxk.CgiryX2p.png",F=JSON.parse('{"title":"Equals","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/equals.md","filePath":"source/methods/equals.md","lastUpdated":null}'),p={name:"source/methods/equals.md"};function h(k,s,e,r,d,g){return l(),a("div",null,s[0]||(s[0]=[n(`

Equals

julia
export equals

What is equals?

The equals function checks if two geometries are equal. They are equal if they share the same set of points and edges to define the same shape.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_equals.md.CkYarU2j.lean.js b/dev/assets/source_methods_equals.md.D7YcKc5y.lean.js
similarity index 99%
rename from dev/assets/source_methods_equals.md.CkYarU2j.lean.js
rename to dev/assets/source_methods_equals.md.D7YcKc5y.lean.js
index 769a3248c..175fdffeb 100644
--- a/dev/assets/source_methods_equals.md.CkYarU2j.lean.js
+++ b/dev/assets/source_methods_equals.md.D7YcKc5y.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B9oBnxE7.js";const t="/GeometryOps.jl/dev/assets/lixjkeo.CgiryX2p.png",F=JSON.parse('{"title":"Equals","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/equals.md","filePath":"source/methods/equals.md","lastUpdated":null}'),p={name:"source/methods/equals.md"};function h(k,s,e,r,d,g){return l(),a("div",null,s[0]||(s[0]=[n(`

Equals

julia
export equals

What is equals?

The equals function checks if two geometries are equal. They are equal if they share the same set of points and edges to define the same shape.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B0Ss3dHN.js";const t="/GeometryOps.jl/dev/assets/swezuxk.CgiryX2p.png",F=JSON.parse('{"title":"Equals","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/equals.md","filePath":"source/methods/equals.md","lastUpdated":null}'),p={name:"source/methods/equals.md"};function h(k,s,e,r,d,g){return l(),a("div",null,s[0]||(s[0]=[n(`

Equals

julia
export equals

What is equals?

The equals function checks if two geometries are equal. They are equal if they share the same set of points and edges to define the same shape.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_contains.md.rZ9SU5W6.js b/dev/assets/source_methods_geom_relations_contains.md.BBRCw1_f.js
similarity index 98%
rename from dev/assets/source_methods_geom_relations_contains.md.rZ9SU5W6.js
rename to dev/assets/source_methods_geom_relations_contains.md.BBRCw1_f.js
index ea1c33bac..660d2a766 100644
--- a/dev/assets/source_methods_geom_relations_contains.md.rZ9SU5W6.js
+++ b/dev/assets/source_methods_geom_relations_contains.md.BBRCw1_f.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B9oBnxE7.js";const e="/GeometryOps.jl/dev/assets/jhvrbrf._0R9BbFk.png",E=JSON.parse('{"title":"Contains","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/contains.md","filePath":"source/methods/geom_relations/contains.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/contains.md"};function l(p,s,k,r,o,d){return t(),a("div",null,s[0]||(s[0]=[n(`

Contains

julia
export contains

What is contains?

The contains function checks if a given geometry completely contains another geometry, or in other words, that the second geometry is completely within the first. This requires that the two interiors intersect and that the interior and boundary of the second geometry is not in the exterior of the first geometry.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B0Ss3dHN.js";const e="/GeometryOps.jl/dev/assets/nhnkjbu._0R9BbFk.png",E=JSON.parse('{"title":"Contains","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/contains.md","filePath":"source/methods/geom_relations/contains.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/contains.md"};function l(p,s,k,r,o,d){return t(),a("div",null,s[0]||(s[0]=[n(`

Contains

julia
export contains

What is contains?

The contains function checks if a given geometry completely contains another geometry, or in other words, that the second geometry is completely within the first. This requires that the two interiors intersect and that the interior and boundary of the second geometry is not in the exterior of the first geometry.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_contains.md.rZ9SU5W6.lean.js b/dev/assets/source_methods_geom_relations_contains.md.BBRCw1_f.lean.js
similarity index 98%
rename from dev/assets/source_methods_geom_relations_contains.md.rZ9SU5W6.lean.js
rename to dev/assets/source_methods_geom_relations_contains.md.BBRCw1_f.lean.js
index ea1c33bac..660d2a766 100644
--- a/dev/assets/source_methods_geom_relations_contains.md.rZ9SU5W6.lean.js
+++ b/dev/assets/source_methods_geom_relations_contains.md.BBRCw1_f.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B9oBnxE7.js";const e="/GeometryOps.jl/dev/assets/jhvrbrf._0R9BbFk.png",E=JSON.parse('{"title":"Contains","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/contains.md","filePath":"source/methods/geom_relations/contains.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/contains.md"};function l(p,s,k,r,o,d){return t(),a("div",null,s[0]||(s[0]=[n(`

Contains

julia
export contains

What is contains?

The contains function checks if a given geometry completely contains another geometry, or in other words, that the second geometry is completely within the first. This requires that the two interiors intersect and that the interior and boundary of the second geometry is not in the exterior of the first geometry.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B0Ss3dHN.js";const e="/GeometryOps.jl/dev/assets/nhnkjbu._0R9BbFk.png",E=JSON.parse('{"title":"Contains","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/contains.md","filePath":"source/methods/geom_relations/contains.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/contains.md"};function l(p,s,k,r,o,d){return t(),a("div",null,s[0]||(s[0]=[n(`

Contains

julia
export contains

What is contains?

The contains function checks if a given geometry completely contains another geometry, or in other words, that the second geometry is completely within the first. This requires that the two interiors intersect and that the interior and boundary of the second geometry is not in the exterior of the first geometry.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_coveredby.md.DY5ZSx3z.js b/dev/assets/source_methods_geom_relations_coveredby.md.DCGcwlqC.js
similarity index 99%
rename from dev/assets/source_methods_geom_relations_coveredby.md.DY5ZSx3z.js
rename to dev/assets/source_methods_geom_relations_coveredby.md.DCGcwlqC.js
index ffc1d14b8..70f3feada 100644
--- a/dev/assets/source_methods_geom_relations_coveredby.md.DY5ZSx3z.js
+++ b/dev/assets/source_methods_geom_relations_coveredby.md.DCGcwlqC.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as e}from"./chunks/framework.B9oBnxE7.js";const l="/GeometryOps.jl/dev/assets/jepbnum.DC3TvBOO.png",o=JSON.parse('{"title":"CoveredBy","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/coveredby.md","filePath":"source/methods/geom_relations/coveredby.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/coveredby.md"};function t(p,s,k,r,E,d){return e(),a("div",null,s[0]||(s[0]=[n(`

CoveredBy

julia
export coveredby

What is coveredby?

The coveredby function checks if one geometry is covered by another geometry. This is an extension of within that does not require the interiors of the two geometries to intersect, but still does require that the interior and boundary of the first geometry isn't outside of the second geometry.

To provide an example, consider this point and line:

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as n,o as e}from"./chunks/framework.B0Ss3dHN.js";const l="/GeometryOps.jl/dev/assets/rkdwnhp.DC3TvBOO.png",o=JSON.parse('{"title":"CoveredBy","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/coveredby.md","filePath":"source/methods/geom_relations/coveredby.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/coveredby.md"};function t(p,s,k,r,E,d){return e(),a("div",null,s[0]||(s[0]=[n(`

CoveredBy

julia
export coveredby

What is coveredby?

The coveredby function checks if one geometry is covered by another geometry. This is an extension of within that does not require the interiors of the two geometries to intersect, but still does require that the interior and boundary of the first geometry isn't outside of the second geometry.

To provide an example, consider this point and line:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_coveredby.md.DY5ZSx3z.lean.js b/dev/assets/source_methods_geom_relations_coveredby.md.DCGcwlqC.lean.js
similarity index 99%
rename from dev/assets/source_methods_geom_relations_coveredby.md.DY5ZSx3z.lean.js
rename to dev/assets/source_methods_geom_relations_coveredby.md.DCGcwlqC.lean.js
index ffc1d14b8..70f3feada 100644
--- a/dev/assets/source_methods_geom_relations_coveredby.md.DY5ZSx3z.lean.js
+++ b/dev/assets/source_methods_geom_relations_coveredby.md.DCGcwlqC.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as e}from"./chunks/framework.B9oBnxE7.js";const l="/GeometryOps.jl/dev/assets/jepbnum.DC3TvBOO.png",o=JSON.parse('{"title":"CoveredBy","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/coveredby.md","filePath":"source/methods/geom_relations/coveredby.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/coveredby.md"};function t(p,s,k,r,E,d){return e(),a("div",null,s[0]||(s[0]=[n(`

CoveredBy

julia
export coveredby

What is coveredby?

The coveredby function checks if one geometry is covered by another geometry. This is an extension of within that does not require the interiors of the two geometries to intersect, but still does require that the interior and boundary of the first geometry isn't outside of the second geometry.

To provide an example, consider this point and line:

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as n,o as e}from"./chunks/framework.B0Ss3dHN.js";const l="/GeometryOps.jl/dev/assets/rkdwnhp.DC3TvBOO.png",o=JSON.parse('{"title":"CoveredBy","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/coveredby.md","filePath":"source/methods/geom_relations/coveredby.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/coveredby.md"};function t(p,s,k,r,E,d){return e(),a("div",null,s[0]||(s[0]=[n(`

CoveredBy

julia
export coveredby

What is coveredby?

The coveredby function checks if one geometry is covered by another geometry. This is an extension of within that does not require the interiors of the two geometries to intersect, but still does require that the interior and boundary of the first geometry isn't outside of the second geometry.

To provide an example, consider this point and line:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_covers.md.CPJ3Bl2j.js b/dev/assets/source_methods_geom_relations_covers.md.DcOwRjYX.js
similarity index 98%
rename from dev/assets/source_methods_geom_relations_covers.md.CPJ3Bl2j.js
rename to dev/assets/source_methods_geom_relations_covers.md.DcOwRjYX.js
index 17b881e5b..10c3b75db 100644
--- a/dev/assets/source_methods_geom_relations_covers.md.CPJ3Bl2j.js
+++ b/dev/assets/source_methods_geom_relations_covers.md.DcOwRjYX.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as e,o as n}from"./chunks/framework.B9oBnxE7.js";const t="/GeometryOps.jl/dev/assets/jepbnum.DC3TvBOO.png",g=JSON.parse('{"title":"Covers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/covers.md","filePath":"source/methods/geom_relations/covers.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/covers.md"};function l(h,s,k,r,o,d){return n(),a("div",null,s[0]||(s[0]=[e(`

Covers

julia
export covers

What is covers?

The covers function checks if a given geometry completely covers another geometry. For this to be true, the "contained" geometry's interior and boundaries must be covered by the "covering" geometry's interior and boundaries. The interiors do not need to overlap.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as e,o as n}from"./chunks/framework.B0Ss3dHN.js";const t="/GeometryOps.jl/dev/assets/rkdwnhp.DC3TvBOO.png",g=JSON.parse('{"title":"Covers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/covers.md","filePath":"source/methods/geom_relations/covers.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/covers.md"};function l(h,s,k,r,o,d){return n(),a("div",null,s[0]||(s[0]=[e(`

Covers

julia
export covers

What is covers?

The covers function checks if a given geometry completely covers another geometry. For this to be true, the "contained" geometry's interior and boundaries must be covered by the "covering" geometry's interior and boundaries. The interiors do not need to overlap.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_covers.md.CPJ3Bl2j.lean.js b/dev/assets/source_methods_geom_relations_covers.md.DcOwRjYX.lean.js
similarity index 98%
rename from dev/assets/source_methods_geom_relations_covers.md.CPJ3Bl2j.lean.js
rename to dev/assets/source_methods_geom_relations_covers.md.DcOwRjYX.lean.js
index 17b881e5b..10c3b75db 100644
--- a/dev/assets/source_methods_geom_relations_covers.md.CPJ3Bl2j.lean.js
+++ b/dev/assets/source_methods_geom_relations_covers.md.DcOwRjYX.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as e,o as n}from"./chunks/framework.B9oBnxE7.js";const t="/GeometryOps.jl/dev/assets/jepbnum.DC3TvBOO.png",g=JSON.parse('{"title":"Covers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/covers.md","filePath":"source/methods/geom_relations/covers.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/covers.md"};function l(h,s,k,r,o,d){return n(),a("div",null,s[0]||(s[0]=[e(`

Covers

julia
export covers

What is covers?

The covers function checks if a given geometry completely covers another geometry. For this to be true, the "contained" geometry's interior and boundaries must be covered by the "covering" geometry's interior and boundaries. The interiors do not need to overlap.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as e,o as n}from"./chunks/framework.B0Ss3dHN.js";const t="/GeometryOps.jl/dev/assets/rkdwnhp.DC3TvBOO.png",g=JSON.parse('{"title":"Covers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/covers.md","filePath":"source/methods/geom_relations/covers.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/covers.md"};function l(h,s,k,r,o,d){return n(),a("div",null,s[0]||(s[0]=[e(`

Covers

julia
export covers

What is covers?

The covers function checks if a given geometry completely covers another geometry. For this to be true, the "contained" geometry's interior and boundaries must be covered by the "covering" geometry's interior and boundaries. The interiors do not need to overlap.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_crosses.md.D7R-Fl5Y.js b/dev/assets/source_methods_geom_relations_crosses.md.CjXmPRlk.js
similarity index 99%
rename from dev/assets/source_methods_geom_relations_crosses.md.D7R-Fl5Y.js
rename to dev/assets/source_methods_geom_relations_crosses.md.CjXmPRlk.js
index 16d54e525..bfbc10aca 100644
--- a/dev/assets/source_methods_geom_relations_crosses.md.D7R-Fl5Y.js
+++ b/dev/assets/source_methods_geom_relations_crosses.md.CjXmPRlk.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B9oBnxE7.js";const d=JSON.parse('{"title":"Crossing checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/crosses.md","filePath":"source/methods/geom_relations/crosses.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/crosses.md"};function h(t,s,k,e,r,E){return l(),a("div",null,s[0]||(s[0]=[n(`

Crossing checks

julia
"""
+import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B0Ss3dHN.js";const d=JSON.parse('{"title":"Crossing checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/crosses.md","filePath":"source/methods/geom_relations/crosses.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/crosses.md"};function h(t,s,k,e,r,E){return l(),a("div",null,s[0]||(s[0]=[n(`

Crossing checks

julia
"""
      crosses(geom1, geom2)::Bool
 
 Return \`true\` if the intersection results in a geometry whose dimension is one less than
diff --git a/dev/assets/source_methods_geom_relations_crosses.md.D7R-Fl5Y.lean.js b/dev/assets/source_methods_geom_relations_crosses.md.CjXmPRlk.lean.js
similarity index 99%
rename from dev/assets/source_methods_geom_relations_crosses.md.D7R-Fl5Y.lean.js
rename to dev/assets/source_methods_geom_relations_crosses.md.CjXmPRlk.lean.js
index 16d54e525..bfbc10aca 100644
--- a/dev/assets/source_methods_geom_relations_crosses.md.D7R-Fl5Y.lean.js
+++ b/dev/assets/source_methods_geom_relations_crosses.md.CjXmPRlk.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B9oBnxE7.js";const d=JSON.parse('{"title":"Crossing checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/crosses.md","filePath":"source/methods/geom_relations/crosses.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/crosses.md"};function h(t,s,k,e,r,E){return l(),a("div",null,s[0]||(s[0]=[n(`

Crossing checks

julia
"""
+import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B0Ss3dHN.js";const d=JSON.parse('{"title":"Crossing checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/crosses.md","filePath":"source/methods/geom_relations/crosses.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/crosses.md"};function h(t,s,k,e,r,E){return l(),a("div",null,s[0]||(s[0]=[n(`

Crossing checks

julia
"""
      crosses(geom1, geom2)::Bool
 
 Return \`true\` if the intersection results in a geometry whose dimension is one less than
diff --git a/dev/assets/source_methods_geom_relations_disjoint.md.BDF7Z8l1.js b/dev/assets/source_methods_geom_relations_disjoint.md.BYLRIf7-.js
similarity index 99%
rename from dev/assets/source_methods_geom_relations_disjoint.md.BDF7Z8l1.js
rename to dev/assets/source_methods_geom_relations_disjoint.md.BYLRIf7-.js
index 2e0e8b5d0..c31b337a3 100644
--- a/dev/assets/source_methods_geom_relations_disjoint.md.BDF7Z8l1.js
+++ b/dev/assets/source_methods_geom_relations_disjoint.md.BYLRIf7-.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B9oBnxE7.js";const h="/GeometryOps.jl/dev/assets/gxwpnqk.C3SxJ3x-.png",o=JSON.parse('{"title":"Disjoint","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/disjoint.md","filePath":"source/methods/geom_relations/disjoint.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/disjoint.md"};function p(k,s,e,r,E,g){return t(),a("div",null,s[0]||(s[0]=[n(`

Disjoint

julia
export disjoint

What is disjoint?

The disjoint function checks if one geometry is outside of another geometry, without sharing any boundaries or interiors.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B0Ss3dHN.js";const h="/GeometryOps.jl/dev/assets/cwymcju.C3SxJ3x-.png",o=JSON.parse('{"title":"Disjoint","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/disjoint.md","filePath":"source/methods/geom_relations/disjoint.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/disjoint.md"};function p(k,s,e,r,E,g){return t(),a("div",null,s[0]||(s[0]=[n(`

Disjoint

julia
export disjoint

What is disjoint?

The disjoint function checks if one geometry is outside of another geometry, without sharing any boundaries or interiors.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_disjoint.md.BDF7Z8l1.lean.js b/dev/assets/source_methods_geom_relations_disjoint.md.BYLRIf7-.lean.js
similarity index 99%
rename from dev/assets/source_methods_geom_relations_disjoint.md.BDF7Z8l1.lean.js
rename to dev/assets/source_methods_geom_relations_disjoint.md.BYLRIf7-.lean.js
index 2e0e8b5d0..c31b337a3 100644
--- a/dev/assets/source_methods_geom_relations_disjoint.md.BDF7Z8l1.lean.js
+++ b/dev/assets/source_methods_geom_relations_disjoint.md.BYLRIf7-.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B9oBnxE7.js";const h="/GeometryOps.jl/dev/assets/gxwpnqk.C3SxJ3x-.png",o=JSON.parse('{"title":"Disjoint","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/disjoint.md","filePath":"source/methods/geom_relations/disjoint.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/disjoint.md"};function p(k,s,e,r,E,g){return t(),a("div",null,s[0]||(s[0]=[n(`

Disjoint

julia
export disjoint

What is disjoint?

The disjoint function checks if one geometry is outside of another geometry, without sharing any boundaries or interiors.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B0Ss3dHN.js";const h="/GeometryOps.jl/dev/assets/cwymcju.C3SxJ3x-.png",o=JSON.parse('{"title":"Disjoint","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/disjoint.md","filePath":"source/methods/geom_relations/disjoint.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/disjoint.md"};function p(k,s,e,r,E,g){return t(),a("div",null,s[0]||(s[0]=[n(`

Disjoint

julia
export disjoint

What is disjoint?

The disjoint function checks if one geometry is outside of another geometry, without sharing any boundaries or interiors.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_geom_geom_processors.md.BZCoUBOQ.js b/dev/assets/source_methods_geom_relations_geom_geom_processors.md.DoSX0nd_.js
similarity index 99%
rename from dev/assets/source_methods_geom_relations_geom_geom_processors.md.BZCoUBOQ.js
rename to dev/assets/source_methods_geom_relations_geom_geom_processors.md.DoSX0nd_.js
index a5eead89e..e53142f5c 100644
--- a/dev/assets/source_methods_geom_relations_geom_geom_processors.md.BZCoUBOQ.js
+++ b/dev/assets/source_methods_geom_relations_geom_geom_processors.md.DoSX0nd_.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const g=JSON.parse('{"title":"Line-curve interaction","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/geom_geom_processors.md","filePath":"source/methods/geom_relations/geom_geom_processors.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/geom_geom_processors.md"};function t(p,s,k,e,r,E){return h(),a("div",null,s[0]||(s[0]=[n(`

Line-curve interaction

julia
#= Code is based off of DE-9IM Standards (https://en.wikipedia.org/wiki/DE-9IM)
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const g=JSON.parse('{"title":"Line-curve interaction","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/geom_geom_processors.md","filePath":"source/methods/geom_relations/geom_geom_processors.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/geom_geom_processors.md"};function t(p,s,k,e,r,E){return h(),a("div",null,s[0]||(s[0]=[n(`

Line-curve interaction

julia
#= Code is based off of DE-9IM Standards (https://en.wikipedia.org/wiki/DE-9IM)
 and attempts a standardized solution for most of the functions.
 =#
 
diff --git a/dev/assets/source_methods_geom_relations_geom_geom_processors.md.BZCoUBOQ.lean.js b/dev/assets/source_methods_geom_relations_geom_geom_processors.md.DoSX0nd_.lean.js
similarity index 99%
rename from dev/assets/source_methods_geom_relations_geom_geom_processors.md.BZCoUBOQ.lean.js
rename to dev/assets/source_methods_geom_relations_geom_geom_processors.md.DoSX0nd_.lean.js
index a5eead89e..e53142f5c 100644
--- a/dev/assets/source_methods_geom_relations_geom_geom_processors.md.BZCoUBOQ.lean.js
+++ b/dev/assets/source_methods_geom_relations_geom_geom_processors.md.DoSX0nd_.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const g=JSON.parse('{"title":"Line-curve interaction","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/geom_geom_processors.md","filePath":"source/methods/geom_relations/geom_geom_processors.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/geom_geom_processors.md"};function t(p,s,k,e,r,E){return h(),a("div",null,s[0]||(s[0]=[n(`

Line-curve interaction

julia
#= Code is based off of DE-9IM Standards (https://en.wikipedia.org/wiki/DE-9IM)
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const g=JSON.parse('{"title":"Line-curve interaction","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/geom_geom_processors.md","filePath":"source/methods/geom_relations/geom_geom_processors.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/geom_geom_processors.md"};function t(p,s,k,e,r,E){return h(),a("div",null,s[0]||(s[0]=[n(`

Line-curve interaction

julia
#= Code is based off of DE-9IM Standards (https://en.wikipedia.org/wiki/DE-9IM)
 and attempts a standardized solution for most of the functions.
 =#
 
diff --git a/dev/assets/source_methods_geom_relations_intersects.md.DCCZpt4n.js b/dev/assets/source_methods_geom_relations_intersects.md.C7r9I1BI.js
similarity index 98%
rename from dev/assets/source_methods_geom_relations_intersects.md.DCCZpt4n.js
rename to dev/assets/source_methods_geom_relations_intersects.md.C7r9I1BI.js
index 1653abf8c..7799c23f8 100644
--- a/dev/assets/source_methods_geom_relations_intersects.md.DCCZpt4n.js
+++ b/dev/assets/source_methods_geom_relations_intersects.md.C7r9I1BI.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as e,o as n}from"./chunks/framework.B9oBnxE7.js";const t="/GeometryOps.jl/dev/assets/tzplwye.DeeQUply.png",g=JSON.parse('{"title":"Intersection checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/intersects.md","filePath":"source/methods/geom_relations/intersects.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/intersects.md"};function l(h,s,k,r,o,d){return n(),a("div",null,s[0]||(s[0]=[e(`

Intersection checks

julia
export intersects

What is intersects?

The intersects function checks if a given geometry intersects with another geometry, or in other words, the either the interiors or boundaries of the two geometries intersect.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as e,o as n}from"./chunks/framework.B0Ss3dHN.js";const t="/GeometryOps.jl/dev/assets/rabkbtk.DeeQUply.png",g=JSON.parse('{"title":"Intersection checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/intersects.md","filePath":"source/methods/geom_relations/intersects.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/intersects.md"};function l(h,s,k,r,o,d){return n(),a("div",null,s[0]||(s[0]=[e(`

Intersection checks

julia
export intersects

What is intersects?

The intersects function checks if a given geometry intersects with another geometry, or in other words, the either the interiors or boundaries of the two geometries intersect.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_intersects.md.DCCZpt4n.lean.js b/dev/assets/source_methods_geom_relations_intersects.md.C7r9I1BI.lean.js
similarity index 98%
rename from dev/assets/source_methods_geom_relations_intersects.md.DCCZpt4n.lean.js
rename to dev/assets/source_methods_geom_relations_intersects.md.C7r9I1BI.lean.js
index 1653abf8c..7799c23f8 100644
--- a/dev/assets/source_methods_geom_relations_intersects.md.DCCZpt4n.lean.js
+++ b/dev/assets/source_methods_geom_relations_intersects.md.C7r9I1BI.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as e,o as n}from"./chunks/framework.B9oBnxE7.js";const t="/GeometryOps.jl/dev/assets/tzplwye.DeeQUply.png",g=JSON.parse('{"title":"Intersection checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/intersects.md","filePath":"source/methods/geom_relations/intersects.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/intersects.md"};function l(h,s,k,r,o,d){return n(),a("div",null,s[0]||(s[0]=[e(`

Intersection checks

julia
export intersects

What is intersects?

The intersects function checks if a given geometry intersects with another geometry, or in other words, the either the interiors or boundaries of the two geometries intersect.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as e,o as n}from"./chunks/framework.B0Ss3dHN.js";const t="/GeometryOps.jl/dev/assets/rabkbtk.DeeQUply.png",g=JSON.parse('{"title":"Intersection checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/intersects.md","filePath":"source/methods/geom_relations/intersects.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/intersects.md"};function l(h,s,k,r,o,d){return n(),a("div",null,s[0]||(s[0]=[e(`

Intersection checks

julia
export intersects

What is intersects?

The intersects function checks if a given geometry intersects with another geometry, or in other words, the either the interiors or boundaries of the two geometries intersect.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_overlaps.md.CvcH8LNG.js b/dev/assets/source_methods_geom_relations_overlaps.md.O3O0qXk8.js
similarity index 99%
rename from dev/assets/source_methods_geom_relations_overlaps.md.CvcH8LNG.js
rename to dev/assets/source_methods_geom_relations_overlaps.md.O3O0qXk8.js
index 65172fe2d..d8dbc90af 100644
--- a/dev/assets/source_methods_geom_relations_overlaps.md.CvcH8LNG.js
+++ b/dev/assets/source_methods_geom_relations_overlaps.md.O3O0qXk8.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B9oBnxE7.js";const p="/GeometryOps.jl/dev/assets/lixjkeo.CgiryX2p.png",o=JSON.parse('{"title":"Overlaps","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/overlaps.md","filePath":"source/methods/geom_relations/overlaps.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/overlaps.md"};function e(h,s,k,r,d,g){return l(),a("div",null,s[0]||(s[0]=[n(`

Overlaps

julia
export overlaps

What is overlaps?

The overlaps function checks if two geometries overlap. Two geometries can only overlap if they have the same dimension, and if they overlap, but one is not contained, within, or equal to the other.

Note that this means it is impossible for a single point to overlap with a single point and a line only overlaps with another line if only a section of each line is collinear.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B0Ss3dHN.js";const p="/GeometryOps.jl/dev/assets/swezuxk.CgiryX2p.png",o=JSON.parse('{"title":"Overlaps","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/overlaps.md","filePath":"source/methods/geom_relations/overlaps.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/overlaps.md"};function e(h,s,k,r,d,g){return l(),a("div",null,s[0]||(s[0]=[n(`

Overlaps

julia
export overlaps

What is overlaps?

The overlaps function checks if two geometries overlap. Two geometries can only overlap if they have the same dimension, and if they overlap, but one is not contained, within, or equal to the other.

Note that this means it is impossible for a single point to overlap with a single point and a line only overlaps with another line if only a section of each line is collinear.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_overlaps.md.CvcH8LNG.lean.js b/dev/assets/source_methods_geom_relations_overlaps.md.O3O0qXk8.lean.js
similarity index 99%
rename from dev/assets/source_methods_geom_relations_overlaps.md.CvcH8LNG.lean.js
rename to dev/assets/source_methods_geom_relations_overlaps.md.O3O0qXk8.lean.js
index 65172fe2d..d8dbc90af 100644
--- a/dev/assets/source_methods_geom_relations_overlaps.md.CvcH8LNG.lean.js
+++ b/dev/assets/source_methods_geom_relations_overlaps.md.O3O0qXk8.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B9oBnxE7.js";const p="/GeometryOps.jl/dev/assets/lixjkeo.CgiryX2p.png",o=JSON.parse('{"title":"Overlaps","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/overlaps.md","filePath":"source/methods/geom_relations/overlaps.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/overlaps.md"};function e(h,s,k,r,d,g){return l(),a("div",null,s[0]||(s[0]=[n(`

Overlaps

julia
export overlaps

What is overlaps?

The overlaps function checks if two geometries overlap. Two geometries can only overlap if they have the same dimension, and if they overlap, but one is not contained, within, or equal to the other.

Note that this means it is impossible for a single point to overlap with a single point and a line only overlaps with another line if only a section of each line is collinear.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B0Ss3dHN.js";const p="/GeometryOps.jl/dev/assets/swezuxk.CgiryX2p.png",o=JSON.parse('{"title":"Overlaps","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/overlaps.md","filePath":"source/methods/geom_relations/overlaps.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/overlaps.md"};function e(h,s,k,r,d,g){return l(),a("div",null,s[0]||(s[0]=[n(`

Overlaps

julia
export overlaps

What is overlaps?

The overlaps function checks if two geometries overlap. Two geometries can only overlap if they have the same dimension, and if they overlap, but one is not contained, within, or equal to the other.

Note that this means it is impossible for a single point to overlap with a single point and a line only overlaps with another line if only a section of each line is collinear.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_touches.md.DsnREoFX.js b/dev/assets/source_methods_geom_relations_touches.md.BEMKQZS2.js
similarity index 99%
rename from dev/assets/source_methods_geom_relations_touches.md.DsnREoFX.js
rename to dev/assets/source_methods_geom_relations_touches.md.BEMKQZS2.js
index 8b5c05877..37c962672 100644
--- a/dev/assets/source_methods_geom_relations_touches.md.DsnREoFX.js
+++ b/dev/assets/source_methods_geom_relations_touches.md.BEMKQZS2.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B9oBnxE7.js";const h="/GeometryOps.jl/dev/assets/omjlqzr.BEFUMtlf.png",o=JSON.parse('{"title":"Touches","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/touches.md","filePath":"source/methods/geom_relations/touches.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/touches.md"};function e(p,s,k,r,E,g){return t(),a("div",null,s[0]||(s[0]=[n(`

Touches

julia
export touches

What is touches?

The touches function checks if one geometry touches another geometry. In other words, the interiors of the two geometries don't interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B0Ss3dHN.js";const h="/GeometryOps.jl/dev/assets/tlougwp.BEFUMtlf.png",o=JSON.parse('{"title":"Touches","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/touches.md","filePath":"source/methods/geom_relations/touches.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/touches.md"};function e(p,s,k,r,E,g){return t(),a("div",null,s[0]||(s[0]=[n(`

Touches

julia
export touches

What is touches?

The touches function checks if one geometry touches another geometry. In other words, the interiors of the two geometries don't interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_touches.md.DsnREoFX.lean.js b/dev/assets/source_methods_geom_relations_touches.md.BEMKQZS2.lean.js
similarity index 99%
rename from dev/assets/source_methods_geom_relations_touches.md.DsnREoFX.lean.js
rename to dev/assets/source_methods_geom_relations_touches.md.BEMKQZS2.lean.js
index 8b5c05877..37c962672 100644
--- a/dev/assets/source_methods_geom_relations_touches.md.DsnREoFX.lean.js
+++ b/dev/assets/source_methods_geom_relations_touches.md.BEMKQZS2.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B9oBnxE7.js";const h="/GeometryOps.jl/dev/assets/omjlqzr.BEFUMtlf.png",o=JSON.parse('{"title":"Touches","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/touches.md","filePath":"source/methods/geom_relations/touches.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/touches.md"};function e(p,s,k,r,E,g){return t(),a("div",null,s[0]||(s[0]=[n(`

Touches

julia
export touches

What is touches?

The touches function checks if one geometry touches another geometry. In other words, the interiors of the two geometries don't interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B0Ss3dHN.js";const h="/GeometryOps.jl/dev/assets/tlougwp.BEFUMtlf.png",o=JSON.parse('{"title":"Touches","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/touches.md","filePath":"source/methods/geom_relations/touches.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/touches.md"};function e(p,s,k,r,E,g){return t(),a("div",null,s[0]||(s[0]=[n(`

Touches

julia
export touches

What is touches?

The touches function checks if one geometry touches another geometry. In other words, the interiors of the two geometries don't interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_within.md.D7xZ4SZL.js b/dev/assets/source_methods_geom_relations_within.md.CladBRqO.js
similarity index 99%
rename from dev/assets/source_methods_geom_relations_within.md.D7xZ4SZL.js
rename to dev/assets/source_methods_geom_relations_within.md.CladBRqO.js
index 90bb8f888..f1ff3fcb9 100644
--- a/dev/assets/source_methods_geom_relations_within.md.D7xZ4SZL.js
+++ b/dev/assets/source_methods_geom_relations_within.md.CladBRqO.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const t="/GeometryOps.jl/dev/assets/jhvrbrf._0R9BbFk.png",o=JSON.parse('{"title":"Within","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/within.md","filePath":"source/methods/geom_relations/within.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/within.md"};function e(p,s,k,r,E,g){return h(),a("div",null,s[0]||(s[0]=[n(`

Within

julia
export within

What is within?

The within function checks if one geometry is inside another geometry. This requires that the two interiors intersect and that the interior and boundary of the first geometry is not in the exterior of the second geometry.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const t="/GeometryOps.jl/dev/assets/nhnkjbu._0R9BbFk.png",o=JSON.parse('{"title":"Within","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/within.md","filePath":"source/methods/geom_relations/within.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/within.md"};function e(p,s,k,r,E,g){return h(),a("div",null,s[0]||(s[0]=[n(`

Within

julia
export within

What is within?

The within function checks if one geometry is inside another geometry. This requires that the two interiors intersect and that the interior and boundary of the first geometry is not in the exterior of the second geometry.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_within.md.D7xZ4SZL.lean.js b/dev/assets/source_methods_geom_relations_within.md.CladBRqO.lean.js
similarity index 99%
rename from dev/assets/source_methods_geom_relations_within.md.D7xZ4SZL.lean.js
rename to dev/assets/source_methods_geom_relations_within.md.CladBRqO.lean.js
index 90bb8f888..f1ff3fcb9 100644
--- a/dev/assets/source_methods_geom_relations_within.md.D7xZ4SZL.lean.js
+++ b/dev/assets/source_methods_geom_relations_within.md.CladBRqO.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const t="/GeometryOps.jl/dev/assets/jhvrbrf._0R9BbFk.png",o=JSON.parse('{"title":"Within","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/within.md","filePath":"source/methods/geom_relations/within.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/within.md"};function e(p,s,k,r,E,g){return h(),a("div",null,s[0]||(s[0]=[n(`

Within

julia
export within

What is within?

The within function checks if one geometry is inside another geometry. This requires that the two interiors intersect and that the interior and boundary of the first geometry is not in the exterior of the second geometry.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const t="/GeometryOps.jl/dev/assets/nhnkjbu._0R9BbFk.png",o=JSON.parse('{"title":"Within","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/within.md","filePath":"source/methods/geom_relations/within.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/within.md"};function e(p,s,k,r,E,g){return h(),a("div",null,s[0]||(s[0]=[n(`

Within

julia
export within

What is within?

The within function checks if one geometry is inside another geometry. This requires that the two interiors intersect and that the interior and boundary of the first geometry is not in the exterior of the second geometry.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_orientation.md.CJ5sSCzc.js b/dev/assets/source_methods_orientation.md.CWpaqwvx.js
similarity index 99%
rename from dev/assets/source_methods_orientation.md.CJ5sSCzc.js
rename to dev/assets/source_methods_orientation.md.CWpaqwvx.js
index 1f17fe7a6..f6541c133 100644
--- a/dev/assets/source_methods_orientation.md.CJ5sSCzc.js
+++ b/dev/assets/source_methods_orientation.md.CWpaqwvx.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B9oBnxE7.js";const E=JSON.parse('{"title":"Orientation","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/orientation.md","filePath":"source/methods/orientation.md","lastUpdated":null}'),p={name:"source/methods/orientation.md"};function h(t,s,e,k,r,d){return l(),a("div",null,s[0]||(s[0]=[n(`

Orientation

julia
export isclockwise, isconcave

isclockwise

The orientation of a geometry is whether it runs clockwise or counter-clockwise.

This is defined for linestrings, linear rings, or vectors of points.

isconcave

A polygon is concave if it has at least one interior angle greater than 180 degrees, meaning that the interior of the polygon is not a convex set.

These are all adapted from Turf.jl.

The may not necessarily be what want in the end but work for now!

julia
"""
+import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B0Ss3dHN.js";const E=JSON.parse('{"title":"Orientation","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/orientation.md","filePath":"source/methods/orientation.md","lastUpdated":null}'),p={name:"source/methods/orientation.md"};function h(t,s,e,k,r,d){return l(),a("div",null,s[0]||(s[0]=[n(`

Orientation

julia
export isclockwise, isconcave

isclockwise

The orientation of a geometry is whether it runs clockwise or counter-clockwise.

This is defined for linestrings, linear rings, or vectors of points.

isconcave

A polygon is concave if it has at least one interior angle greater than 180 degrees, meaning that the interior of the polygon is not a convex set.

These are all adapted from Turf.jl.

The may not necessarily be what want in the end but work for now!

julia
"""
     isclockwise(line::Union{LineString, Vector{Position}})::Bool
 
 Take a ring and return \`true\` if the line goes clockwise, or \`false\` if the line goes
diff --git a/dev/assets/source_methods_orientation.md.CJ5sSCzc.lean.js b/dev/assets/source_methods_orientation.md.CWpaqwvx.lean.js
similarity index 99%
rename from dev/assets/source_methods_orientation.md.CJ5sSCzc.lean.js
rename to dev/assets/source_methods_orientation.md.CWpaqwvx.lean.js
index 1f17fe7a6..f6541c133 100644
--- a/dev/assets/source_methods_orientation.md.CJ5sSCzc.lean.js
+++ b/dev/assets/source_methods_orientation.md.CWpaqwvx.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B9oBnxE7.js";const E=JSON.parse('{"title":"Orientation","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/orientation.md","filePath":"source/methods/orientation.md","lastUpdated":null}'),p={name:"source/methods/orientation.md"};function h(t,s,e,k,r,d){return l(),a("div",null,s[0]||(s[0]=[n(`

Orientation

julia
export isclockwise, isconcave

isclockwise

The orientation of a geometry is whether it runs clockwise or counter-clockwise.

This is defined for linestrings, linear rings, or vectors of points.

isconcave

A polygon is concave if it has at least one interior angle greater than 180 degrees, meaning that the interior of the polygon is not a convex set.

These are all adapted from Turf.jl.

The may not necessarily be what want in the end but work for now!

julia
"""
+import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B0Ss3dHN.js";const E=JSON.parse('{"title":"Orientation","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/orientation.md","filePath":"source/methods/orientation.md","lastUpdated":null}'),p={name:"source/methods/orientation.md"};function h(t,s,e,k,r,d){return l(),a("div",null,s[0]||(s[0]=[n(`

Orientation

julia
export isclockwise, isconcave

isclockwise

The orientation of a geometry is whether it runs clockwise or counter-clockwise.

This is defined for linestrings, linear rings, or vectors of points.

isconcave

A polygon is concave if it has at least one interior angle greater than 180 degrees, meaning that the interior of the polygon is not a convex set.

These are all adapted from Turf.jl.

The may not necessarily be what want in the end but work for now!

julia
"""
     isclockwise(line::Union{LineString, Vector{Position}})::Bool
 
 Take a ring and return \`true\` if the line goes clockwise, or \`false\` if the line goes
diff --git a/dev/assets/source_methods_polygonize.md.CtlVBLXz.js b/dev/assets/source_methods_polygonize.md.uB4iwmdu.js
similarity index 99%
rename from dev/assets/source_methods_polygonize.md.CtlVBLXz.js
rename to dev/assets/source_methods_polygonize.md.uB4iwmdu.js
index e746f3c18..5bf5b7853 100644
--- a/dev/assets/source_methods_polygonize.md.CtlVBLXz.js
+++ b/dev/assets/source_methods_polygonize.md.uB4iwmdu.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const g=JSON.parse('{"title":"Polygonizing raster data","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/polygonize.md","filePath":"source/methods/polygonize.md","lastUpdated":null}'),l={name:"source/methods/polygonize.md"};function p(t,s,k,e,d,E){return h(),a("div",null,s[0]||(s[0]=[n(`

Polygonizing raster data

julia
export polygonize
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const g=JSON.parse('{"title":"Polygonizing raster data","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/polygonize.md","filePath":"source/methods/polygonize.md","lastUpdated":null}'),l={name:"source/methods/polygonize.md"};function p(t,s,k,e,d,E){return h(),a("div",null,s[0]||(s[0]=[n(`

Polygonizing raster data

julia
export polygonize
 
 #=
 The methods in this file convert a raster image into a set of polygons,
diff --git a/dev/assets/source_methods_polygonize.md.CtlVBLXz.lean.js b/dev/assets/source_methods_polygonize.md.uB4iwmdu.lean.js
similarity index 99%
rename from dev/assets/source_methods_polygonize.md.CtlVBLXz.lean.js
rename to dev/assets/source_methods_polygonize.md.uB4iwmdu.lean.js
index e746f3c18..5bf5b7853 100644
--- a/dev/assets/source_methods_polygonize.md.CtlVBLXz.lean.js
+++ b/dev/assets/source_methods_polygonize.md.uB4iwmdu.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const g=JSON.parse('{"title":"Polygonizing raster data","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/polygonize.md","filePath":"source/methods/polygonize.md","lastUpdated":null}'),l={name:"source/methods/polygonize.md"};function p(t,s,k,e,d,E){return h(),a("div",null,s[0]||(s[0]=[n(`

Polygonizing raster data

julia
export polygonize
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const g=JSON.parse('{"title":"Polygonizing raster data","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/polygonize.md","filePath":"source/methods/polygonize.md","lastUpdated":null}'),l={name:"source/methods/polygonize.md"};function p(t,s,k,e,d,E){return h(),a("div",null,s[0]||(s[0]=[n(`

Polygonizing raster data

julia
export polygonize
 
 #=
 The methods in this file convert a raster image into a set of polygons,
diff --git a/dev/assets/source_not_implemented_yet.md.MCIqLYiF.js b/dev/assets/source_not_implemented_yet.md.Bsubdj8P.js
similarity index 94%
rename from dev/assets/source_not_implemented_yet.md.MCIqLYiF.js
rename to dev/assets/source_not_implemented_yet.md.Bsubdj8P.js
index 02b966ad9..35627483c 100644
--- a/dev/assets/source_not_implemented_yet.md.MCIqLYiF.js
+++ b/dev/assets/source_not_implemented_yet.md.Bsubdj8P.js
@@ -1,4 +1,4 @@
-import{_ as i,c as t,a5 as s,o as a}from"./chunks/framework.B9oBnxE7.js";const k=JSON.parse('{"title":"Not implemented yet","description":"","frontmatter":{},"headers":[],"relativePath":"source/not_implemented_yet.md","filePath":"source/not_implemented_yet.md","lastUpdated":null}'),n={name:"source/not_implemented_yet.md"};function l(p,e,h,o,r,d){return a(),t("div",null,e[0]||(e[0]=[s(`

Not implemented yet

All of the functions in this file are not implemented in Julia yet. Some of them may have implementations in LibGEOS which we can use via an extension, but there is no native-Julia implementation for them.

julia
function symdifference end
+import{_ as i,c as t,a5 as s,o as a}from"./chunks/framework.B0Ss3dHN.js";const k=JSON.parse('{"title":"Not implemented yet","description":"","frontmatter":{},"headers":[],"relativePath":"source/not_implemented_yet.md","filePath":"source/not_implemented_yet.md","lastUpdated":null}'),n={name:"source/not_implemented_yet.md"};function l(p,e,h,o,r,d){return a(),t("div",null,e[0]||(e[0]=[s(`

Not implemented yet

All of the functions in this file are not implemented in Julia yet. Some of them may have implementations in LibGEOS which we can use via an extension, but there is no native-Julia implementation for them.

julia
function symdifference end
 function buffer end
 function convexhull end
 function concavehull end

This page was generated using Literate.jl.

`,5)]))}const c=i(n,[["render",l]]);export{k as __pageData,c as default}; diff --git a/dev/assets/source_not_implemented_yet.md.MCIqLYiF.lean.js b/dev/assets/source_not_implemented_yet.md.Bsubdj8P.lean.js similarity index 94% rename from dev/assets/source_not_implemented_yet.md.MCIqLYiF.lean.js rename to dev/assets/source_not_implemented_yet.md.Bsubdj8P.lean.js index 02b966ad9..35627483c 100644 --- a/dev/assets/source_not_implemented_yet.md.MCIqLYiF.lean.js +++ b/dev/assets/source_not_implemented_yet.md.Bsubdj8P.lean.js @@ -1,4 +1,4 @@ -import{_ as i,c as t,a5 as s,o as a}from"./chunks/framework.B9oBnxE7.js";const k=JSON.parse('{"title":"Not implemented yet","description":"","frontmatter":{},"headers":[],"relativePath":"source/not_implemented_yet.md","filePath":"source/not_implemented_yet.md","lastUpdated":null}'),n={name:"source/not_implemented_yet.md"};function l(p,e,h,o,r,d){return a(),t("div",null,e[0]||(e[0]=[s(`

Not implemented yet

All of the functions in this file are not implemented in Julia yet. Some of them may have implementations in LibGEOS which we can use via an extension, but there is no native-Julia implementation for them.

julia
function symdifference end
+import{_ as i,c as t,a5 as s,o as a}from"./chunks/framework.B0Ss3dHN.js";const k=JSON.parse('{"title":"Not implemented yet","description":"","frontmatter":{},"headers":[],"relativePath":"source/not_implemented_yet.md","filePath":"source/not_implemented_yet.md","lastUpdated":null}'),n={name:"source/not_implemented_yet.md"};function l(p,e,h,o,r,d){return a(),t("div",null,e[0]||(e[0]=[s(`

Not implemented yet

All of the functions in this file are not implemented in Julia yet. Some of them may have implementations in LibGEOS which we can use via an extension, but there is no native-Julia implementation for them.

julia
function symdifference end
 function buffer end
 function convexhull end
 function concavehull end

This page was generated using Literate.jl.

`,5)]))}const c=i(n,[["render",l]]);export{k as __pageData,c as default}; diff --git a/dev/assets/source_primitives.md.DgVD9ya5.js b/dev/assets/source_primitives.md.B63LzEac.js similarity index 99% rename from dev/assets/source_primitives.md.DgVD9ya5.js rename to dev/assets/source_primitives.md.B63LzEac.js index f33165586..17aae2260 100644 --- a/dev/assets/source_primitives.md.DgVD9ya5.js +++ b/dev/assets/source_primitives.md.B63LzEac.js @@ -1,7 +1,7 @@ -import{_ as i,c as a,a5 as t,o as n}from"./chunks/framework.B9oBnxE7.js";const E=JSON.parse('{"title":"Primitive functions","description":"","frontmatter":{},"headers":[],"relativePath":"source/primitives.md","filePath":"source/primitives.md","lastUpdated":null}'),h={name:"source/primitives.md"};function e(l,s,p,k,r,d){return n(),a("div",null,s[0]||(s[0]=[t(`

Primitive functions

julia
export apply, applyreduce, TraitTarget

This file mainly defines the apply and applyreduce functions, and some related functionality.

In general, the idea behind the apply framework is to take as input any geometry, vector of geometries, or feature collection, deconstruct it to the given trait target (any arbitrary GI.AbstractTrait or TraitTarget union thereof, like PointTrait or PolygonTrait) and perform some operation on it.

This allows for a simple and consistent framework within which users can define their own operations trivially easily, and removes a lot of the complexity involved with handling complex geometry structures.

For example, a simple way to flip the x and y coordinates of a geometry is:

julia
flipped_geom = GO.apply(GI.PointTrait(), geom) do p
+import{_ as i,c as a,a5 as t,o as n}from"./chunks/framework.B0Ss3dHN.js";const E=JSON.parse('{"title":"Primitive functions","description":"","frontmatter":{},"headers":[],"relativePath":"source/primitives.md","filePath":"source/primitives.md","lastUpdated":null}'),h={name:"source/primitives.md"};function e(l,s,p,k,r,d){return n(),a("div",null,s[0]||(s[0]=[t(`

Primitive functions

julia
export apply, applyreduce, TraitTarget

This file mainly defines the apply and applyreduce functions, and some related functionality.

In general, the idea behind the apply framework is to take as input any geometry, vector of geometries, or feature collection, deconstruct it to the given trait target (any arbitrary GI.AbstractTrait or TraitTarget union thereof, like PointTrait or PolygonTrait) and perform some operation on it.

This allows for a simple and consistent framework within which users can define their own operations trivially easily, and removes a lot of the complexity involved with handling complex geometry structures.

For example, a simple way to flip the x and y coordinates of a geometry is:

julia
flipped_geom = GO.apply(GI.PointTrait(), geom) do p
     (GI.y(p), GI.x(p))
 end

As simple as that. There's no need to implement your own decomposition because it's done for you.

Functions like flip, reproject, transform, even segmentize and simplify have been implemented using the apply framework. Similarly, centroid, area and distance have been implemented using the applyreduce framework.

Docstrings

Functions

Missing docstring.

Missing docstring for apply. Check Documenter's build log for details.

Missing docstring.

Missing docstring for applyreduce. Check Documenter's build log for details.

Missing docstring.

Missing docstring for GeometryOps.unwrap. Check Documenter's build log for details.

# GeometryOps.flattenFunction.
julia
flatten(target::Type{<:GI.AbstractTrait}, obj)
-flatten(f, target::Type{<:GI.AbstractTrait}, obj)

Lazily flatten any AbstractArray, iterator, FeatureCollectionTrait, FeatureTrait or AbstractGeometryTrait object obj, so that objects with the target trait are returned by the iterator.

If f is passed in it will be applied to the target geometries.

source


# GeometryOps.reconstructFunction.
julia
reconstruct(geom, components)

Reconstruct geom from an iterable of component objects that match its structure.

All objects in components must have the same GeoInterface.trait.

Usually used in combination with flatten.

source


# GeometryOps.rebuildFunction.
julia
rebuild(geom, child_geoms)

Rebuild a geometry from child geometries.

By default geometries will be rebuilt as a GeoInterface.Wrappers geometry, but rebuild can have methods added to it to dispatch on geometries from other packages and specify how to rebuild them.

(Maybe it should go into GeoInterface.jl)

source


Types

Missing docstring.

Missing docstring for TraitTarget. Check Documenter's build log for details.

Implementation

julia
const THREADED_KEYWORD = "- \`threaded\`: \`true\` or \`false\`. Whether to use multithreading. Defaults to \`false\`."
+flatten(f, target::Type{<:GI.AbstractTrait}, obj)

Lazily flatten any AbstractArray, iterator, FeatureCollectionTrait, FeatureTrait or AbstractGeometryTrait object obj, so that objects with the target trait are returned by the iterator.

If f is passed in it will be applied to the target geometries.

source


# GeometryOps.reconstructFunction.
julia
reconstruct(geom, components)

Reconstruct geom from an iterable of component objects that match its structure.

All objects in components must have the same GeoInterface.trait.

Usually used in combination with flatten.

source


# GeometryOps.rebuildFunction.
julia
rebuild(geom, child_geoms)

Rebuild a geometry from child geometries.

By default geometries will be rebuilt as a GeoInterface.Wrappers geometry, but rebuild can have methods added to it to dispatch on geometries from other packages and specify how to rebuild them.

(Maybe it should go into GeoInterface.jl)

source


Types

Missing docstring.

Missing docstring for TraitTarget. Check Documenter's build log for details.

Implementation

julia
const THREADED_KEYWORD = "- \`threaded\`: \`true\` or \`false\`. Whether to use multithreading. Defaults to \`false\`."
 const CRS_KEYWORD = "- \`crs\`: The CRS to attach to geometries. Defaults to \`nothing\`."
 const CALC_EXTENT_KEYWORD = "- \`calc_extent\`: \`true\` or \`false\`. Whether to calculate the extent. Defaults to \`false\`."
 
diff --git a/dev/assets/source_primitives.md.DgVD9ya5.lean.js b/dev/assets/source_primitives.md.B63LzEac.lean.js
similarity index 99%
rename from dev/assets/source_primitives.md.DgVD9ya5.lean.js
rename to dev/assets/source_primitives.md.B63LzEac.lean.js
index f33165586..17aae2260 100644
--- a/dev/assets/source_primitives.md.DgVD9ya5.lean.js
+++ b/dev/assets/source_primitives.md.B63LzEac.lean.js
@@ -1,7 +1,7 @@
-import{_ as i,c as a,a5 as t,o as n}from"./chunks/framework.B9oBnxE7.js";const E=JSON.parse('{"title":"Primitive functions","description":"","frontmatter":{},"headers":[],"relativePath":"source/primitives.md","filePath":"source/primitives.md","lastUpdated":null}'),h={name:"source/primitives.md"};function e(l,s,p,k,r,d){return n(),a("div",null,s[0]||(s[0]=[t(`

Primitive functions

julia
export apply, applyreduce, TraitTarget

This file mainly defines the apply and applyreduce functions, and some related functionality.

In general, the idea behind the apply framework is to take as input any geometry, vector of geometries, or feature collection, deconstruct it to the given trait target (any arbitrary GI.AbstractTrait or TraitTarget union thereof, like PointTrait or PolygonTrait) and perform some operation on it.

This allows for a simple and consistent framework within which users can define their own operations trivially easily, and removes a lot of the complexity involved with handling complex geometry structures.

For example, a simple way to flip the x and y coordinates of a geometry is:

julia
flipped_geom = GO.apply(GI.PointTrait(), geom) do p
+import{_ as i,c as a,a5 as t,o as n}from"./chunks/framework.B0Ss3dHN.js";const E=JSON.parse('{"title":"Primitive functions","description":"","frontmatter":{},"headers":[],"relativePath":"source/primitives.md","filePath":"source/primitives.md","lastUpdated":null}'),h={name:"source/primitives.md"};function e(l,s,p,k,r,d){return n(),a("div",null,s[0]||(s[0]=[t(`

Primitive functions

julia
export apply, applyreduce, TraitTarget

This file mainly defines the apply and applyreduce functions, and some related functionality.

In general, the idea behind the apply framework is to take as input any geometry, vector of geometries, or feature collection, deconstruct it to the given trait target (any arbitrary GI.AbstractTrait or TraitTarget union thereof, like PointTrait or PolygonTrait) and perform some operation on it.

This allows for a simple and consistent framework within which users can define their own operations trivially easily, and removes a lot of the complexity involved with handling complex geometry structures.

For example, a simple way to flip the x and y coordinates of a geometry is:

julia
flipped_geom = GO.apply(GI.PointTrait(), geom) do p
     (GI.y(p), GI.x(p))
 end

As simple as that. There's no need to implement your own decomposition because it's done for you.

Functions like flip, reproject, transform, even segmentize and simplify have been implemented using the apply framework. Similarly, centroid, area and distance have been implemented using the applyreduce framework.

Docstrings

Functions

Missing docstring.

Missing docstring for apply. Check Documenter's build log for details.

Missing docstring.

Missing docstring for applyreduce. Check Documenter's build log for details.

Missing docstring.

Missing docstring for GeometryOps.unwrap. Check Documenter's build log for details.

# GeometryOps.flattenFunction.
julia
flatten(target::Type{<:GI.AbstractTrait}, obj)
-flatten(f, target::Type{<:GI.AbstractTrait}, obj)

Lazily flatten any AbstractArray, iterator, FeatureCollectionTrait, FeatureTrait or AbstractGeometryTrait object obj, so that objects with the target trait are returned by the iterator.

If f is passed in it will be applied to the target geometries.

source


# GeometryOps.reconstructFunction.
julia
reconstruct(geom, components)

Reconstruct geom from an iterable of component objects that match its structure.

All objects in components must have the same GeoInterface.trait.

Usually used in combination with flatten.

source


# GeometryOps.rebuildFunction.
julia
rebuild(geom, child_geoms)

Rebuild a geometry from child geometries.

By default geometries will be rebuilt as a GeoInterface.Wrappers geometry, but rebuild can have methods added to it to dispatch on geometries from other packages and specify how to rebuild them.

(Maybe it should go into GeoInterface.jl)

source


Types

Missing docstring.

Missing docstring for TraitTarget. Check Documenter's build log for details.

Implementation

julia
const THREADED_KEYWORD = "- \`threaded\`: \`true\` or \`false\`. Whether to use multithreading. Defaults to \`false\`."
+flatten(f, target::Type{<:GI.AbstractTrait}, obj)

Lazily flatten any AbstractArray, iterator, FeatureCollectionTrait, FeatureTrait or AbstractGeometryTrait object obj, so that objects with the target trait are returned by the iterator.

If f is passed in it will be applied to the target geometries.

source


# GeometryOps.reconstructFunction.
julia
reconstruct(geom, components)

Reconstruct geom from an iterable of component objects that match its structure.

All objects in components must have the same GeoInterface.trait.

Usually used in combination with flatten.

source


# GeometryOps.rebuildFunction.
julia
rebuild(geom, child_geoms)

Rebuild a geometry from child geometries.

By default geometries will be rebuilt as a GeoInterface.Wrappers geometry, but rebuild can have methods added to it to dispatch on geometries from other packages and specify how to rebuild them.

(Maybe it should go into GeoInterface.jl)

source


Types

Missing docstring.

Missing docstring for TraitTarget. Check Documenter's build log for details.

Implementation

julia
const THREADED_KEYWORD = "- \`threaded\`: \`true\` or \`false\`. Whether to use multithreading. Defaults to \`false\`."
 const CRS_KEYWORD = "- \`crs\`: The CRS to attach to geometries. Defaults to \`nothing\`."
 const CALC_EXTENT_KEYWORD = "- \`calc_extent\`: \`true\` or \`false\`. Whether to calculate the extent. Defaults to \`false\`."
 
diff --git a/dev/assets/source_transformations_correction_closed_ring.md.Ctg_GWEB.js b/dev/assets/source_transformations_correction_closed_ring.md.DqulCeOT.js
similarity index 99%
rename from dev/assets/source_transformations_correction_closed_ring.md.Ctg_GWEB.js
rename to dev/assets/source_transformations_correction_closed_ring.md.DqulCeOT.js
index 230f3dda9..099451596 100644
--- a/dev/assets/source_transformations_correction_closed_ring.md.Ctg_GWEB.js
+++ b/dev/assets/source_transformations_correction_closed_ring.md.DqulCeOT.js
@@ -1,4 +1,4 @@
-import{_ as l,c as a,a5 as n,j as i,a as t,o as e}from"./chunks/framework.B9oBnxE7.js";const m=JSON.parse('{"title":"Closed Rings","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/closed_ring.md","filePath":"source/transformations/correction/closed_ring.md","lastUpdated":null}'),h={name:"source/transformations/correction/closed_ring.md"},p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},k={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},o={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.254ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2322.4 748","aria-hidden":"true"};function d(g,s,c,E,y,u){return e(),a("div",null,[s[7]||(s[7]=n(`

Closed Rings

julia
export ClosedRing

A closed ring is a ring that has the same start and end point. This is a requirement for a valid polygon (technically, for a valid LinearRing). This correction is used to ensure that the polygon is valid.

The reason this operates on the polygon level is that several packages are loose about whether they return LinearRings (which is correct) or LineStrings (which is incorrect) for the contents of a polygon. Therefore, we decompose manually to ensure correctness.

Example

Many polygon providers do not close their polygons, which makes them invalid according to the specification. Quite a few geometry algorithms assume that polygons are closed, and leaving them open can lead to incorrect results!

For example, the following polygon is not valid:

julia
import GeoInterface as GI
+import{_ as l,c as a,a5 as n,j as i,a as t,o as e}from"./chunks/framework.B0Ss3dHN.js";const m=JSON.parse('{"title":"Closed Rings","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/closed_ring.md","filePath":"source/transformations/correction/closed_ring.md","lastUpdated":null}'),h={name:"source/transformations/correction/closed_ring.md"},p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},k={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},o={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.254ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2322.4 748","aria-hidden":"true"};function d(g,s,c,E,y,u){return e(),a("div",null,[s[7]||(s[7]=n(`

Closed Rings

julia
export ClosedRing

A closed ring is a ring that has the same start and end point. This is a requirement for a valid polygon (technically, for a valid LinearRing). This correction is used to ensure that the polygon is valid.

The reason this operates on the polygon level is that several packages are loose about whether they return LinearRings (which is correct) or LineStrings (which is incorrect) for the contents of a polygon. Therefore, we decompose manually to ensure correctness.

Example

Many polygon providers do not close their polygons, which makes them invalid according to the specification. Quite a few geometry algorithms assume that polygons are closed, and leaving them open can lead to incorrect results!

For example, the following polygon is not valid:

julia
import GeoInterface as GI
 polygon = GI.Polygon([[(0, 0), (1, 0), (1, 1), (0, 1)]])
GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Int64, Int64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Int64, Int64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Int64, Int64}}, Nothing, Nothing}([(0, 0), (1, 0), (1, 1), (0, 1)], nothing, nothing)], nothing, nothing)

even though it will look correct when visualized, and indeed appears correct.

julia
import GeometryOps as GO
 GO.fix(polygon, corrections = [GO.ClosedRing()])
GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 1.0), (0.0, 0.0)], nothing, nothing)], nothing, nothing)
`,12)),i("p",null,[s[4]||(s[4]=t("You can see that the last point of the ring here is equal to the first point. For a polygon with ")),i("mjx-container",p,[(e(),a("svg",k,s[0]||(s[0]=[i("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[i("g",{"data-mml-node":"math"},[i("g",{"data-mml-node":"mi"},[i("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1)]))),s[1]||(s[1]=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mi",null,"n")])],-1))]),s[5]||(s[5]=t(" sides, there should be ")),i("mjx-container",r,[(e(),a("svg",o,s[2]||(s[2]=[n('',1)]))),s[3]||(s[3]=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mi",null,"n"),i("mo",null,"+"),i("mn",null,"1")])],-1))]),s[6]||(s[6]=t(" vertices."))]),s[8]||(s[8]=n(`

Implementation

julia
"""
     ClosedRing() <: GeometryCorrection
diff --git a/dev/assets/source_transformations_correction_closed_ring.md.Ctg_GWEB.lean.js b/dev/assets/source_transformations_correction_closed_ring.md.DqulCeOT.lean.js
similarity index 99%
rename from dev/assets/source_transformations_correction_closed_ring.md.Ctg_GWEB.lean.js
rename to dev/assets/source_transformations_correction_closed_ring.md.DqulCeOT.lean.js
index 230f3dda9..099451596 100644
--- a/dev/assets/source_transformations_correction_closed_ring.md.Ctg_GWEB.lean.js
+++ b/dev/assets/source_transformations_correction_closed_ring.md.DqulCeOT.lean.js
@@ -1,4 +1,4 @@
-import{_ as l,c as a,a5 as n,j as i,a as t,o as e}from"./chunks/framework.B9oBnxE7.js";const m=JSON.parse('{"title":"Closed Rings","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/closed_ring.md","filePath":"source/transformations/correction/closed_ring.md","lastUpdated":null}'),h={name:"source/transformations/correction/closed_ring.md"},p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},k={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},o={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.254ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2322.4 748","aria-hidden":"true"};function d(g,s,c,E,y,u){return e(),a("div",null,[s[7]||(s[7]=n(`

Closed Rings

julia
export ClosedRing

A closed ring is a ring that has the same start and end point. This is a requirement for a valid polygon (technically, for a valid LinearRing). This correction is used to ensure that the polygon is valid.

The reason this operates on the polygon level is that several packages are loose about whether they return LinearRings (which is correct) or LineStrings (which is incorrect) for the contents of a polygon. Therefore, we decompose manually to ensure correctness.

Example

Many polygon providers do not close their polygons, which makes them invalid according to the specification. Quite a few geometry algorithms assume that polygons are closed, and leaving them open can lead to incorrect results!

For example, the following polygon is not valid:

julia
import GeoInterface as GI
+import{_ as l,c as a,a5 as n,j as i,a as t,o as e}from"./chunks/framework.B0Ss3dHN.js";const m=JSON.parse('{"title":"Closed Rings","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/closed_ring.md","filePath":"source/transformations/correction/closed_ring.md","lastUpdated":null}'),h={name:"source/transformations/correction/closed_ring.md"},p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},k={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},o={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.254ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2322.4 748","aria-hidden":"true"};function d(g,s,c,E,y,u){return e(),a("div",null,[s[7]||(s[7]=n(`

Closed Rings

julia
export ClosedRing

A closed ring is a ring that has the same start and end point. This is a requirement for a valid polygon (technically, for a valid LinearRing). This correction is used to ensure that the polygon is valid.

The reason this operates on the polygon level is that several packages are loose about whether they return LinearRings (which is correct) or LineStrings (which is incorrect) for the contents of a polygon. Therefore, we decompose manually to ensure correctness.

Example

Many polygon providers do not close their polygons, which makes them invalid according to the specification. Quite a few geometry algorithms assume that polygons are closed, and leaving them open can lead to incorrect results!

For example, the following polygon is not valid:

julia
import GeoInterface as GI
 polygon = GI.Polygon([[(0, 0), (1, 0), (1, 1), (0, 1)]])
GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Int64, Int64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Int64, Int64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Int64, Int64}}, Nothing, Nothing}([(0, 0), (1, 0), (1, 1), (0, 1)], nothing, nothing)], nothing, nothing)

even though it will look correct when visualized, and indeed appears correct.

julia
import GeometryOps as GO
 GO.fix(polygon, corrections = [GO.ClosedRing()])
GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 1.0), (0.0, 0.0)], nothing, nothing)], nothing, nothing)
`,12)),i("p",null,[s[4]||(s[4]=t("You can see that the last point of the ring here is equal to the first point. For a polygon with ")),i("mjx-container",p,[(e(),a("svg",k,s[0]||(s[0]=[i("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[i("g",{"data-mml-node":"math"},[i("g",{"data-mml-node":"mi"},[i("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1)]))),s[1]||(s[1]=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mi",null,"n")])],-1))]),s[5]||(s[5]=t(" sides, there should be ")),i("mjx-container",r,[(e(),a("svg",o,s[2]||(s[2]=[n('',1)]))),s[3]||(s[3]=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mi",null,"n"),i("mo",null,"+"),i("mn",null,"1")])],-1))]),s[6]||(s[6]=t(" vertices."))]),s[8]||(s[8]=n(`

Implementation

julia
"""
     ClosedRing() <: GeometryCorrection
diff --git a/dev/assets/source_transformations_correction_geometry_correction.md.CWM5TiYs.js b/dev/assets/source_transformations_correction_geometry_correction.md.WX6iVPd4.js
similarity index 97%
rename from dev/assets/source_transformations_correction_geometry_correction.md.CWM5TiYs.js
rename to dev/assets/source_transformations_correction_geometry_correction.md.WX6iVPd4.js
index a8f99162f..8e6bcad30 100644
--- a/dev/assets/source_transformations_correction_geometry_correction.md.CWM5TiYs.js
+++ b/dev/assets/source_transformations_correction_geometry_correction.md.WX6iVPd4.js
@@ -1,4 +1,4 @@
-import{_ as s,c as e,a5 as t,o as a}from"./chunks/framework.B9oBnxE7.js";const d=JSON.parse('{"title":"Geometry Corrections","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/geometry_correction.md","filePath":"source/transformations/correction/geometry_correction.md","lastUpdated":null}'),n={name:"source/transformations/correction/geometry_correction.md"};function r(o,i,l,p,h,c){return a(),e("div",null,i[0]||(i[0]=[t(`

Geometry Corrections

julia
export fix

This file simply defines the GeometryCorrection abstract type, and the interface that any GeometryCorrection must implement.

A geometry correction is a transformation that is applied to a geometry to correct it in some way.

For example, a ClosedRing correction might be applied to a Polygon to ensure that its exterior ring is closed.

Interface

All GeometryCorrections are callable structs which, when called, apply the correction to the given geometry, and return either a copy or the original geometry (if nothing needed to be corrected).

See below for the full interface specification.

# GeometryOps.GeometryCorrectionType.
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source


Any geometry correction must implement the interface as given above.

julia
"""
+import{_ as s,c as e,a5 as t,o as a}from"./chunks/framework.B0Ss3dHN.js";const d=JSON.parse('{"title":"Geometry Corrections","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/geometry_correction.md","filePath":"source/transformations/correction/geometry_correction.md","lastUpdated":null}'),n={name:"source/transformations/correction/geometry_correction.md"};function r(o,i,l,p,h,c){return a(),e("div",null,i[0]||(i[0]=[t(`

Geometry Corrections

julia
export fix

This file simply defines the GeometryCorrection abstract type, and the interface that any GeometryCorrection must implement.

A geometry correction is a transformation that is applied to a geometry to correct it in some way.

For example, a ClosedRing correction might be applied to a Polygon to ensure that its exterior ring is closed.

Interface

All GeometryCorrections are callable structs which, when called, apply the correction to the given geometry, and return either a copy or the original geometry (if nothing needed to be corrected).

See below for the full interface specification.

# GeometryOps.GeometryCorrectionType.
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source


Any geometry correction must implement the interface as given above.

julia
"""
     abstract type GeometryCorrection
 
 This abstract type represents a geometry correction.
@@ -28,4 +28,4 @@ import{_ as s,c as e,a5 as t,o as a}from"./chunks/framework.B9oBnxE7.js";const d
         final_geometry = apply(net_function, Trait, final_geometry; kwargs...)
     end
     return final_geometry
-end

Available corrections

# GeometryOps.ClosedRingType.
julia
ClosedRing() <: GeometryCorrection

This correction ensures that a polygon's exterior and interior rings are closed.

It can be called on any geometry correction as usual.

See also GeometryCorrection.

source


# GeometryOps.DiffIntersectingPolygonsType.
julia
DiffIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygons included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be made nonintersecting through the difference operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area. See also GeometryCorrection, UnionIntersectingPolygons.

source


# GeometryOps.GeometryCorrectionType.
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source


# GeometryOps.UnionIntersectingPolygonsType.
julia
UnionIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygon's included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be combined through the union operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area.

See also GeometryCorrection.

source



This page was generated using Literate.jl.

`,23)]))}const y=s(n,[["render",r]]);export{d as __pageData,y as default}; +end

Available corrections

# GeometryOps.ClosedRingType.
julia
ClosedRing() <: GeometryCorrection

This correction ensures that a polygon's exterior and interior rings are closed.

It can be called on any geometry correction as usual.

See also GeometryCorrection.

source


# GeometryOps.DiffIntersectingPolygonsType.
julia
DiffIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygons included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be made nonintersecting through the difference operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area. See also GeometryCorrection, UnionIntersectingPolygons.

source


# GeometryOps.GeometryCorrectionType.
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source


# GeometryOps.UnionIntersectingPolygonsType.
julia
UnionIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygon's included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be combined through the union operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area.

See also GeometryCorrection.

source



This page was generated using Literate.jl.

`,23)]))}const y=s(n,[["render",r]]);export{d as __pageData,y as default}; diff --git a/dev/assets/source_transformations_correction_geometry_correction.md.CWM5TiYs.lean.js b/dev/assets/source_transformations_correction_geometry_correction.md.WX6iVPd4.lean.js similarity index 97% rename from dev/assets/source_transformations_correction_geometry_correction.md.CWM5TiYs.lean.js rename to dev/assets/source_transformations_correction_geometry_correction.md.WX6iVPd4.lean.js index a8f99162f..8e6bcad30 100644 --- a/dev/assets/source_transformations_correction_geometry_correction.md.CWM5TiYs.lean.js +++ b/dev/assets/source_transformations_correction_geometry_correction.md.WX6iVPd4.lean.js @@ -1,4 +1,4 @@ -import{_ as s,c as e,a5 as t,o as a}from"./chunks/framework.B9oBnxE7.js";const d=JSON.parse('{"title":"Geometry Corrections","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/geometry_correction.md","filePath":"source/transformations/correction/geometry_correction.md","lastUpdated":null}'),n={name:"source/transformations/correction/geometry_correction.md"};function r(o,i,l,p,h,c){return a(),e("div",null,i[0]||(i[0]=[t(`

Geometry Corrections

julia
export fix

This file simply defines the GeometryCorrection abstract type, and the interface that any GeometryCorrection must implement.

A geometry correction is a transformation that is applied to a geometry to correct it in some way.

For example, a ClosedRing correction might be applied to a Polygon to ensure that its exterior ring is closed.

Interface

All GeometryCorrections are callable structs which, when called, apply the correction to the given geometry, and return either a copy or the original geometry (if nothing needed to be corrected).

See below for the full interface specification.

# GeometryOps.GeometryCorrectionType.
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source


Any geometry correction must implement the interface as given above.

julia
"""
+import{_ as s,c as e,a5 as t,o as a}from"./chunks/framework.B0Ss3dHN.js";const d=JSON.parse('{"title":"Geometry Corrections","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/geometry_correction.md","filePath":"source/transformations/correction/geometry_correction.md","lastUpdated":null}'),n={name:"source/transformations/correction/geometry_correction.md"};function r(o,i,l,p,h,c){return a(),e("div",null,i[0]||(i[0]=[t(`

Geometry Corrections

julia
export fix

This file simply defines the GeometryCorrection abstract type, and the interface that any GeometryCorrection must implement.

A geometry correction is a transformation that is applied to a geometry to correct it in some way.

For example, a ClosedRing correction might be applied to a Polygon to ensure that its exterior ring is closed.

Interface

All GeometryCorrections are callable structs which, when called, apply the correction to the given geometry, and return either a copy or the original geometry (if nothing needed to be corrected).

See below for the full interface specification.

# GeometryOps.GeometryCorrectionType.
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source


Any geometry correction must implement the interface as given above.

julia
"""
     abstract type GeometryCorrection
 
 This abstract type represents a geometry correction.
@@ -28,4 +28,4 @@ import{_ as s,c as e,a5 as t,o as a}from"./chunks/framework.B9oBnxE7.js";const d
         final_geometry = apply(net_function, Trait, final_geometry; kwargs...)
     end
     return final_geometry
-end

Available corrections

# GeometryOps.ClosedRingType.
julia
ClosedRing() <: GeometryCorrection

This correction ensures that a polygon's exterior and interior rings are closed.

It can be called on any geometry correction as usual.

See also GeometryCorrection.

source


# GeometryOps.DiffIntersectingPolygonsType.
julia
DiffIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygons included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be made nonintersecting through the difference operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area. See also GeometryCorrection, UnionIntersectingPolygons.

source


# GeometryOps.GeometryCorrectionType.
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source


# GeometryOps.UnionIntersectingPolygonsType.
julia
UnionIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygon's included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be combined through the union operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area.

See also GeometryCorrection.

source



This page was generated using Literate.jl.

`,23)]))}const y=s(n,[["render",r]]);export{d as __pageData,y as default}; +end

Available corrections

# GeometryOps.ClosedRingType.
julia
ClosedRing() <: GeometryCorrection

This correction ensures that a polygon's exterior and interior rings are closed.

It can be called on any geometry correction as usual.

See also GeometryCorrection.

source


# GeometryOps.DiffIntersectingPolygonsType.
julia
DiffIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygons included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be made nonintersecting through the difference operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area. See also GeometryCorrection, UnionIntersectingPolygons.

source


# GeometryOps.GeometryCorrectionType.
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source


# GeometryOps.UnionIntersectingPolygonsType.
julia
UnionIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygon's included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be combined through the union operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area.

See also GeometryCorrection.

source



This page was generated using Literate.jl.

`,23)]))}const y=s(n,[["render",r]]);export{d as __pageData,y as default}; diff --git a/dev/assets/source_transformations_correction_intersecting_polygons.md.BkfNriZS.js b/dev/assets/source_transformations_correction_intersecting_polygons.md.BoAkYnvk.js similarity index 99% rename from dev/assets/source_transformations_correction_intersecting_polygons.md.BkfNriZS.js rename to dev/assets/source_transformations_correction_intersecting_polygons.md.BoAkYnvk.js index bf6d022b0..ce1f3ee9b 100644 --- a/dev/assets/source_transformations_correction_intersecting_polygons.md.BkfNriZS.js +++ b/dev/assets/source_transformations_correction_intersecting_polygons.md.BoAkYnvk.js @@ -1,4 +1,4 @@ -import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B9oBnxE7.js";const E=JSON.parse('{"title":"Intersecting Polygons","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/intersecting_polygons.md","filePath":"source/transformations/correction/intersecting_polygons.md","lastUpdated":null}'),t={name:"source/transformations/correction/intersecting_polygons.md"};function h(p,s,e,k,r,g){return l(),a("div",null,s[0]||(s[0]=[n(`

Intersecting Polygons

julia
export UnionIntersectingPolygons

If the sub-polygons of a multipolygon are intersecting, this makes them invalid according to specification. Each sub-polygon of a multipolygon being disjoint (other than by a single point) is a requirement for a valid multipolygon. However, different libraries may achieve this in different ways.

For example, taking the union of all sub-polygons of a multipolygon will create a new multipolygon where each sub-polygon is disjoint. This can be done with the UnionIntersectingPolygons correction.

The reason this operates on a multipolygon level is that it is easy for users to mistakenly create multipolygon's that overlap, which can then be detrimental to polygon clipping performance and even create wrong answers.

Example

Multipolygon providers may not check that the polygons making up their multipolygons do not intersect, which makes them invalid according to the specification.

For example, the following multipolygon is not valid:

julia
import GeoInterface as GI
+import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B0Ss3dHN.js";const E=JSON.parse('{"title":"Intersecting Polygons","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/intersecting_polygons.md","filePath":"source/transformations/correction/intersecting_polygons.md","lastUpdated":null}'),t={name:"source/transformations/correction/intersecting_polygons.md"};function h(p,s,e,k,r,g){return l(),a("div",null,s[0]||(s[0]=[n(`

Intersecting Polygons

julia
export UnionIntersectingPolygons

If the sub-polygons of a multipolygon are intersecting, this makes them invalid according to specification. Each sub-polygon of a multipolygon being disjoint (other than by a single point) is a requirement for a valid multipolygon. However, different libraries may achieve this in different ways.

For example, taking the union of all sub-polygons of a multipolygon will create a new multipolygon where each sub-polygon is disjoint. This can be done with the UnionIntersectingPolygons correction.

The reason this operates on a multipolygon level is that it is easy for users to mistakenly create multipolygon's that overlap, which can then be detrimental to polygon clipping performance and even create wrong answers.

Example

Multipolygon providers may not check that the polygons making up their multipolygons do not intersect, which makes them invalid according to the specification.

For example, the following multipolygon is not valid:

julia
import GeoInterface as GI
 polygon = GI.Polygon([[(0.0, 0.0), (3.0, 0.0), (3.0, 3.0), (0.0, 3.0), (0.0, 0.0)]])
 multipolygon = GI.MultiPolygon([polygon, polygon])
GeoInterface.Wrappers.MultiPolygon{false, false, Vector{GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}[GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(0.0, 0.0), (3.0, 0.0), (3.0, 3.0), (0.0, 3.0), (0.0, 0.0)], nothing, nothing)], nothing, nothing), GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(0.0, 0.0), (3.0, 0.0), (3.0, 3.0), (0.0, 3.0), (0.0, 0.0)], nothing, nothing)], nothing, nothing)], nothing, nothing)

given that the two sub-polygons are the exact same shape.

julia
import GeometryOps as GO
 GO.fix(multipolygon, corrections = [GO.UnionIntersectingPolygons()])
GeoInterface.Wrappers.MultiPolygon{false, false, Vector{GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}[GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(0.0, 0.0), (3.0, 0.0), (3.0, 3.0), (0.0, 3.0), (0.0, 0.0)], nothing, nothing)], nothing, nothing)], nothing, nothing)

You can see that the the multipolygon now only contains one sub-polygon, rather than the two identical ones provided.

Implementation

julia
"""
diff --git a/dev/assets/source_transformations_correction_intersecting_polygons.md.BkfNriZS.lean.js b/dev/assets/source_transformations_correction_intersecting_polygons.md.BoAkYnvk.lean.js
similarity index 99%
rename from dev/assets/source_transformations_correction_intersecting_polygons.md.BkfNriZS.lean.js
rename to dev/assets/source_transformations_correction_intersecting_polygons.md.BoAkYnvk.lean.js
index bf6d022b0..ce1f3ee9b 100644
--- a/dev/assets/source_transformations_correction_intersecting_polygons.md.BkfNriZS.lean.js
+++ b/dev/assets/source_transformations_correction_intersecting_polygons.md.BoAkYnvk.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B9oBnxE7.js";const E=JSON.parse('{"title":"Intersecting Polygons","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/intersecting_polygons.md","filePath":"source/transformations/correction/intersecting_polygons.md","lastUpdated":null}'),t={name:"source/transformations/correction/intersecting_polygons.md"};function h(p,s,e,k,r,g){return l(),a("div",null,s[0]||(s[0]=[n(`

Intersecting Polygons

julia
export UnionIntersectingPolygons

If the sub-polygons of a multipolygon are intersecting, this makes them invalid according to specification. Each sub-polygon of a multipolygon being disjoint (other than by a single point) is a requirement for a valid multipolygon. However, different libraries may achieve this in different ways.

For example, taking the union of all sub-polygons of a multipolygon will create a new multipolygon where each sub-polygon is disjoint. This can be done with the UnionIntersectingPolygons correction.

The reason this operates on a multipolygon level is that it is easy for users to mistakenly create multipolygon's that overlap, which can then be detrimental to polygon clipping performance and even create wrong answers.

Example

Multipolygon providers may not check that the polygons making up their multipolygons do not intersect, which makes them invalid according to the specification.

For example, the following multipolygon is not valid:

julia
import GeoInterface as GI
+import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.B0Ss3dHN.js";const E=JSON.parse('{"title":"Intersecting Polygons","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/intersecting_polygons.md","filePath":"source/transformations/correction/intersecting_polygons.md","lastUpdated":null}'),t={name:"source/transformations/correction/intersecting_polygons.md"};function h(p,s,e,k,r,g){return l(),a("div",null,s[0]||(s[0]=[n(`

Intersecting Polygons

julia
export UnionIntersectingPolygons

If the sub-polygons of a multipolygon are intersecting, this makes them invalid according to specification. Each sub-polygon of a multipolygon being disjoint (other than by a single point) is a requirement for a valid multipolygon. However, different libraries may achieve this in different ways.

For example, taking the union of all sub-polygons of a multipolygon will create a new multipolygon where each sub-polygon is disjoint. This can be done with the UnionIntersectingPolygons correction.

The reason this operates on a multipolygon level is that it is easy for users to mistakenly create multipolygon's that overlap, which can then be detrimental to polygon clipping performance and even create wrong answers.

Example

Multipolygon providers may not check that the polygons making up their multipolygons do not intersect, which makes them invalid according to the specification.

For example, the following multipolygon is not valid:

julia
import GeoInterface as GI
 polygon = GI.Polygon([[(0.0, 0.0), (3.0, 0.0), (3.0, 3.0), (0.0, 3.0), (0.0, 0.0)]])
 multipolygon = GI.MultiPolygon([polygon, polygon])
GeoInterface.Wrappers.MultiPolygon{false, false, Vector{GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}[GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(0.0, 0.0), (3.0, 0.0), (3.0, 3.0), (0.0, 3.0), (0.0, 0.0)], nothing, nothing)], nothing, nothing), GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(0.0, 0.0), (3.0, 0.0), (3.0, 3.0), (0.0, 3.0), (0.0, 0.0)], nothing, nothing)], nothing, nothing)], nothing, nothing)

given that the two sub-polygons are the exact same shape.

julia
import GeometryOps as GO
 GO.fix(multipolygon, corrections = [GO.UnionIntersectingPolygons()])
GeoInterface.Wrappers.MultiPolygon{false, false, Vector{GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}[GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(0.0, 0.0), (3.0, 0.0), (3.0, 3.0), (0.0, 3.0), (0.0, 0.0)], nothing, nothing)], nothing, nothing)], nothing, nothing)

You can see that the the multipolygon now only contains one sub-polygon, rather than the two identical ones provided.

Implementation

julia
"""
diff --git a/dev/assets/source_transformations_extent.md.C2PAEcJR.js b/dev/assets/source_transformations_extent.md.B3JOS_Vt.js
similarity index 95%
rename from dev/assets/source_transformations_extent.md.C2PAEcJR.js
rename to dev/assets/source_transformations_extent.md.B3JOS_Vt.js
index 24d81a20c..793b0bb90 100644
--- a/dev/assets/source_transformations_extent.md.C2PAEcJR.js
+++ b/dev/assets/source_transformations_extent.md.B3JOS_Vt.js
@@ -1,4 +1,4 @@
-import{_ as e,c as a,a5 as n,o as t}from"./chunks/framework.B9oBnxE7.js";const k=JSON.parse('{"title":"Extent embedding","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/extent.md","filePath":"source/transformations/extent.md","lastUpdated":null}'),i={name:"source/transformations/extent.md"};function l(p,s,r,h,d,o){return t(),a("div",null,s[0]||(s[0]=[n(`

Extent embedding

julia
"""
+import{_ as e,c as a,a5 as n,o as t}from"./chunks/framework.B0Ss3dHN.js";const k=JSON.parse('{"title":"Extent embedding","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/extent.md","filePath":"source/transformations/extent.md","lastUpdated":null}'),i={name:"source/transformations/extent.md"};function l(p,s,r,h,d,o){return t(),a("div",null,s[0]||(s[0]=[n(`

Extent embedding

julia
"""
     embed_extent(obj)
 
 Recursively wrap the object with a GeoInterface.jl geometry,
diff --git a/dev/assets/source_transformations_extent.md.C2PAEcJR.lean.js b/dev/assets/source_transformations_extent.md.B3JOS_Vt.lean.js
similarity index 95%
rename from dev/assets/source_transformations_extent.md.C2PAEcJR.lean.js
rename to dev/assets/source_transformations_extent.md.B3JOS_Vt.lean.js
index 24d81a20c..793b0bb90 100644
--- a/dev/assets/source_transformations_extent.md.C2PAEcJR.lean.js
+++ b/dev/assets/source_transformations_extent.md.B3JOS_Vt.lean.js
@@ -1,4 +1,4 @@
-import{_ as e,c as a,a5 as n,o as t}from"./chunks/framework.B9oBnxE7.js";const k=JSON.parse('{"title":"Extent embedding","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/extent.md","filePath":"source/transformations/extent.md","lastUpdated":null}'),i={name:"source/transformations/extent.md"};function l(p,s,r,h,d,o){return t(),a("div",null,s[0]||(s[0]=[n(`

Extent embedding

julia
"""
+import{_ as e,c as a,a5 as n,o as t}from"./chunks/framework.B0Ss3dHN.js";const k=JSON.parse('{"title":"Extent embedding","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/extent.md","filePath":"source/transformations/extent.md","lastUpdated":null}'),i={name:"source/transformations/extent.md"};function l(p,s,r,h,d,o){return t(),a("div",null,s[0]||(s[0]=[n(`

Extent embedding

julia
"""
     embed_extent(obj)
 
 Recursively wrap the object with a GeoInterface.jl geometry,
diff --git a/dev/assets/source_transformations_flip.md.CQd98wvw.js b/dev/assets/source_transformations_flip.md.CzCsDiZ2.js
similarity index 97%
rename from dev/assets/source_transformations_flip.md.CQd98wvw.js
rename to dev/assets/source_transformations_flip.md.CzCsDiZ2.js
index f84d10daf..7dca82f73 100644
--- a/dev/assets/source_transformations_flip.md.CQd98wvw.js
+++ b/dev/assets/source_transformations_flip.md.CzCsDiZ2.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as p}from"./chunks/framework.B9oBnxE7.js";const g=JSON.parse('{"title":"Coordinate flipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/flip.md","filePath":"source/transformations/flip.md","lastUpdated":null}'),t={name:"source/transformations/flip.md"};function l(h,s,e,k,r,d){return p(),a("div",null,s[0]||(s[0]=[n(`

Coordinate flipping

This is a simple example of how to use the apply functionality in a function, by flipping the x and y coordinates of a geometry.

julia
"""
+import{_ as i,c as a,a5 as n,o as p}from"./chunks/framework.B0Ss3dHN.js";const g=JSON.parse('{"title":"Coordinate flipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/flip.md","filePath":"source/transformations/flip.md","lastUpdated":null}'),t={name:"source/transformations/flip.md"};function l(h,s,e,k,r,d){return p(),a("div",null,s[0]||(s[0]=[n(`

Coordinate flipping

This is a simple example of how to use the apply functionality in a function, by flipping the x and y coordinates of a geometry.

julia
"""
     flip(obj)
 
 Swap all of the x and y coordinates in obj, otherwise
diff --git a/dev/assets/source_transformations_flip.md.CQd98wvw.lean.js b/dev/assets/source_transformations_flip.md.CzCsDiZ2.lean.js
similarity index 97%
rename from dev/assets/source_transformations_flip.md.CQd98wvw.lean.js
rename to dev/assets/source_transformations_flip.md.CzCsDiZ2.lean.js
index f84d10daf..7dca82f73 100644
--- a/dev/assets/source_transformations_flip.md.CQd98wvw.lean.js
+++ b/dev/assets/source_transformations_flip.md.CzCsDiZ2.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as p}from"./chunks/framework.B9oBnxE7.js";const g=JSON.parse('{"title":"Coordinate flipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/flip.md","filePath":"source/transformations/flip.md","lastUpdated":null}'),t={name:"source/transformations/flip.md"};function l(h,s,e,k,r,d){return p(),a("div",null,s[0]||(s[0]=[n(`

Coordinate flipping

This is a simple example of how to use the apply functionality in a function, by flipping the x and y coordinates of a geometry.

julia
"""
+import{_ as i,c as a,a5 as n,o as p}from"./chunks/framework.B0Ss3dHN.js";const g=JSON.parse('{"title":"Coordinate flipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/flip.md","filePath":"source/transformations/flip.md","lastUpdated":null}'),t={name:"source/transformations/flip.md"};function l(h,s,e,k,r,d){return p(),a("div",null,s[0]||(s[0]=[n(`

Coordinate flipping

This is a simple example of how to use the apply functionality in a function, by flipping the x and y coordinates of a geometry.

julia
"""
     flip(obj)
 
 Swap all of the x and y coordinates in obj, otherwise
diff --git a/dev/assets/source_transformations_reproject.md.B3dLlAHy.js b/dev/assets/source_transformations_reproject.md.CQSHmG_K.js
similarity index 98%
rename from dev/assets/source_transformations_reproject.md.B3dLlAHy.js
rename to dev/assets/source_transformations_reproject.md.CQSHmG_K.js
index 6251c25a3..7ae01f0ed 100644
--- a/dev/assets/source_transformations_reproject.md.B3dLlAHy.js
+++ b/dev/assets/source_transformations_reproject.md.CQSHmG_K.js
@@ -1 +1 @@
-import{_ as i,c as a,a5 as e,o as n}from"./chunks/framework.B9oBnxE7.js";const c=JSON.parse('{"title":"Geometry reprojection","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/reproject.md","filePath":"source/transformations/reproject.md","lastUpdated":null}'),t={name:"source/transformations/reproject.md"};function p(l,s,r,h,k,o){return n(),a("div",null,s[0]||(s[0]=[e('

Geometry reprojection

julia
export reproject

This file is pretty simple - it simply reprojects a geometry pointwise from one CRS to another. It uses the Proj package for the transformation, but this could be moved to an extension if needed.

Note that the actual implementation is in the GeometryOpsProjExt extension module.

This works using the apply functionality.

julia
"""\n    reproject(geometry; source_crs, target_crs, transform, always_xy, time)\n    reproject(geometry, source_crs, target_crs; always_xy, time)\n    reproject(geometry, transform; always_xy, time)\n\nReproject any GeoInterface.jl compatible `geometry` from `source_crs` to `target_crs`.\n\nThe returned object will be constructed from `GeoInterface.WrapperGeometry`\ngeometries, wrapping views of a `Vector{Proj.Point{D}}`, where `D` is the dimension.\n\n!!! tip\n    The `Proj.jl` package must be loaded for this method to work,\n    since it is implemented in a package extension.\n\n# Arguments\n\n- `geometry`: Any GeoInterface.jl compatible geometries.\n- `source_crs`: the source coordinate reference system, as a GeoFormatTypes.jl object or a string.\n- `target_crs`: the target coordinate reference system, as a GeoFormatTypes.jl object or a string.\n\nIf these a passed as keywords, `transform` will take priority.\nWithout it `target_crs` is always needed, and `source_crs` is\nneeded if it is not retrievable from the geometry with `GeoInterface.crs(geometry)`.\n\n# Keywords\n\n- `always_xy`: force x, y coordinate order, `true` by default.\n    `false` will expect and return points in the crs coordinate order.\n- `time`: the time for the coordinates. `Inf` by default.\n$APPLY_KEYWORDS\n"""\nfunction reproject end

Method error handling

We also inject a method error handler, which prints a suggestion if the Proj extension is not loaded.

julia
function _reproject_error_hinter(io, exc, argtypes, kwargs)\n    if isnothing(Base.get_extension(GeometryOps, :GeometryOpsProjExt)) && exc.f == reproject\n        print(io, "\\n\\nThe `reproject` method requires the Proj.jl package to be explicitly loaded.\\n")\n        print(io, "You can do this by simply typing ")\n        printstyled(io, "using Proj"; color = :cyan, bold = true)\n        println(io, " in your REPL, \\nor otherwise loading Proj.jl via using or import.")\n    else # this is a more general error\n        nothing\n    end\nend

This page was generated using Literate.jl.

',11)]))}const g=i(t,[["render",p]]);export{c as __pageData,g as default}; +import{_ as i,c as a,a5 as e,o as n}from"./chunks/framework.B0Ss3dHN.js";const c=JSON.parse('{"title":"Geometry reprojection","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/reproject.md","filePath":"source/transformations/reproject.md","lastUpdated":null}'),t={name:"source/transformations/reproject.md"};function p(l,s,r,h,k,o){return n(),a("div",null,s[0]||(s[0]=[e('

Geometry reprojection

julia
export reproject

This file is pretty simple - it simply reprojects a geometry pointwise from one CRS to another. It uses the Proj package for the transformation, but this could be moved to an extension if needed.

Note that the actual implementation is in the GeometryOpsProjExt extension module.

This works using the apply functionality.

julia
"""\n    reproject(geometry; source_crs, target_crs, transform, always_xy, time)\n    reproject(geometry, source_crs, target_crs; always_xy, time)\n    reproject(geometry, transform; always_xy, time)\n\nReproject any GeoInterface.jl compatible `geometry` from `source_crs` to `target_crs`.\n\nThe returned object will be constructed from `GeoInterface.WrapperGeometry`\ngeometries, wrapping views of a `Vector{Proj.Point{D}}`, where `D` is the dimension.\n\n!!! tip\n    The `Proj.jl` package must be loaded for this method to work,\n    since it is implemented in a package extension.\n\n# Arguments\n\n- `geometry`: Any GeoInterface.jl compatible geometries.\n- `source_crs`: the source coordinate reference system, as a GeoFormatTypes.jl object or a string.\n- `target_crs`: the target coordinate reference system, as a GeoFormatTypes.jl object or a string.\n\nIf these a passed as keywords, `transform` will take priority.\nWithout it `target_crs` is always needed, and `source_crs` is\nneeded if it is not retrievable from the geometry with `GeoInterface.crs(geometry)`.\n\n# Keywords\n\n- `always_xy`: force x, y coordinate order, `true` by default.\n    `false` will expect and return points in the crs coordinate order.\n- `time`: the time for the coordinates. `Inf` by default.\n$APPLY_KEYWORDS\n"""\nfunction reproject end

Method error handling

We also inject a method error handler, which prints a suggestion if the Proj extension is not loaded.

julia
function _reproject_error_hinter(io, exc, argtypes, kwargs)\n    if isnothing(Base.get_extension(GeometryOps, :GeometryOpsProjExt)) && exc.f == reproject\n        print(io, "\\n\\nThe `reproject` method requires the Proj.jl package to be explicitly loaded.\\n")\n        print(io, "You can do this by simply typing ")\n        printstyled(io, "using Proj"; color = :cyan, bold = true)\n        println(io, " in your REPL, \\nor otherwise loading Proj.jl via using or import.")\n    else # this is a more general error\n        nothing\n    end\nend

This page was generated using Literate.jl.

',11)]))}const g=i(t,[["render",p]]);export{c as __pageData,g as default}; diff --git a/dev/assets/source_transformations_reproject.md.B3dLlAHy.lean.js b/dev/assets/source_transformations_reproject.md.CQSHmG_K.lean.js similarity index 98% rename from dev/assets/source_transformations_reproject.md.B3dLlAHy.lean.js rename to dev/assets/source_transformations_reproject.md.CQSHmG_K.lean.js index 6251c25a3..7ae01f0ed 100644 --- a/dev/assets/source_transformations_reproject.md.B3dLlAHy.lean.js +++ b/dev/assets/source_transformations_reproject.md.CQSHmG_K.lean.js @@ -1 +1 @@ -import{_ as i,c as a,a5 as e,o as n}from"./chunks/framework.B9oBnxE7.js";const c=JSON.parse('{"title":"Geometry reprojection","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/reproject.md","filePath":"source/transformations/reproject.md","lastUpdated":null}'),t={name:"source/transformations/reproject.md"};function p(l,s,r,h,k,o){return n(),a("div",null,s[0]||(s[0]=[e('

Geometry reprojection

julia
export reproject

This file is pretty simple - it simply reprojects a geometry pointwise from one CRS to another. It uses the Proj package for the transformation, but this could be moved to an extension if needed.

Note that the actual implementation is in the GeometryOpsProjExt extension module.

This works using the apply functionality.

julia
"""\n    reproject(geometry; source_crs, target_crs, transform, always_xy, time)\n    reproject(geometry, source_crs, target_crs; always_xy, time)\n    reproject(geometry, transform; always_xy, time)\n\nReproject any GeoInterface.jl compatible `geometry` from `source_crs` to `target_crs`.\n\nThe returned object will be constructed from `GeoInterface.WrapperGeometry`\ngeometries, wrapping views of a `Vector{Proj.Point{D}}`, where `D` is the dimension.\n\n!!! tip\n    The `Proj.jl` package must be loaded for this method to work,\n    since it is implemented in a package extension.\n\n# Arguments\n\n- `geometry`: Any GeoInterface.jl compatible geometries.\n- `source_crs`: the source coordinate reference system, as a GeoFormatTypes.jl object or a string.\n- `target_crs`: the target coordinate reference system, as a GeoFormatTypes.jl object or a string.\n\nIf these a passed as keywords, `transform` will take priority.\nWithout it `target_crs` is always needed, and `source_crs` is\nneeded if it is not retrievable from the geometry with `GeoInterface.crs(geometry)`.\n\n# Keywords\n\n- `always_xy`: force x, y coordinate order, `true` by default.\n    `false` will expect and return points in the crs coordinate order.\n- `time`: the time for the coordinates. `Inf` by default.\n$APPLY_KEYWORDS\n"""\nfunction reproject end

Method error handling

We also inject a method error handler, which prints a suggestion if the Proj extension is not loaded.

julia
function _reproject_error_hinter(io, exc, argtypes, kwargs)\n    if isnothing(Base.get_extension(GeometryOps, :GeometryOpsProjExt)) && exc.f == reproject\n        print(io, "\\n\\nThe `reproject` method requires the Proj.jl package to be explicitly loaded.\\n")\n        print(io, "You can do this by simply typing ")\n        printstyled(io, "using Proj"; color = :cyan, bold = true)\n        println(io, " in your REPL, \\nor otherwise loading Proj.jl via using or import.")\n    else # this is a more general error\n        nothing\n    end\nend

This page was generated using Literate.jl.

',11)]))}const g=i(t,[["render",p]]);export{c as __pageData,g as default}; +import{_ as i,c as a,a5 as e,o as n}from"./chunks/framework.B0Ss3dHN.js";const c=JSON.parse('{"title":"Geometry reprojection","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/reproject.md","filePath":"source/transformations/reproject.md","lastUpdated":null}'),t={name:"source/transformations/reproject.md"};function p(l,s,r,h,k,o){return n(),a("div",null,s[0]||(s[0]=[e('

Geometry reprojection

julia
export reproject

This file is pretty simple - it simply reprojects a geometry pointwise from one CRS to another. It uses the Proj package for the transformation, but this could be moved to an extension if needed.

Note that the actual implementation is in the GeometryOpsProjExt extension module.

This works using the apply functionality.

julia
"""\n    reproject(geometry; source_crs, target_crs, transform, always_xy, time)\n    reproject(geometry, source_crs, target_crs; always_xy, time)\n    reproject(geometry, transform; always_xy, time)\n\nReproject any GeoInterface.jl compatible `geometry` from `source_crs` to `target_crs`.\n\nThe returned object will be constructed from `GeoInterface.WrapperGeometry`\ngeometries, wrapping views of a `Vector{Proj.Point{D}}`, where `D` is the dimension.\n\n!!! tip\n    The `Proj.jl` package must be loaded for this method to work,\n    since it is implemented in a package extension.\n\n# Arguments\n\n- `geometry`: Any GeoInterface.jl compatible geometries.\n- `source_crs`: the source coordinate reference system, as a GeoFormatTypes.jl object or a string.\n- `target_crs`: the target coordinate reference system, as a GeoFormatTypes.jl object or a string.\n\nIf these a passed as keywords, `transform` will take priority.\nWithout it `target_crs` is always needed, and `source_crs` is\nneeded if it is not retrievable from the geometry with `GeoInterface.crs(geometry)`.\n\n# Keywords\n\n- `always_xy`: force x, y coordinate order, `true` by default.\n    `false` will expect and return points in the crs coordinate order.\n- `time`: the time for the coordinates. `Inf` by default.\n$APPLY_KEYWORDS\n"""\nfunction reproject end

Method error handling

We also inject a method error handler, which prints a suggestion if the Proj extension is not loaded.

julia
function _reproject_error_hinter(io, exc, argtypes, kwargs)\n    if isnothing(Base.get_extension(GeometryOps, :GeometryOpsProjExt)) && exc.f == reproject\n        print(io, "\\n\\nThe `reproject` method requires the Proj.jl package to be explicitly loaded.\\n")\n        print(io, "You can do this by simply typing ")\n        printstyled(io, "using Proj"; color = :cyan, bold = true)\n        println(io, " in your REPL, \\nor otherwise loading Proj.jl via using or import.")\n    else # this is a more general error\n        nothing\n    end\nend

This page was generated using Literate.jl.

',11)]))}const g=i(t,[["render",p]]);export{c as __pageData,g as default}; diff --git a/dev/assets/source_transformations_segmentize.md.FzoXEUxb.js b/dev/assets/source_transformations_segmentize.md.DCSzM58m.js similarity index 99% rename from dev/assets/source_transformations_segmentize.md.FzoXEUxb.js rename to dev/assets/source_transformations_segmentize.md.DCSzM58m.js index 3f92039ab..cf114c791 100644 --- a/dev/assets/source_transformations_segmentize.md.FzoXEUxb.js +++ b/dev/assets/source_transformations_segmentize.md.DCSzM58m.js @@ -1,4 +1,4 @@ -import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const t="/GeometryOps.jl/dev/assets/qeoallh.D5-bot8v.png",l="/GeometryOps.jl/dev/assets/jkijtgh.CD6tsQoA.png",o=JSON.parse('{"title":"Segmentize","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/segmentize.md","filePath":"source/transformations/segmentize.md","lastUpdated":null}'),e={name:"source/transformations/segmentize.md"};function k(p,s,r,E,d,g){return h(),a("div",null,s[0]||(s[0]=[n(`

Segmentize

julia
export segmentize
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const t="/GeometryOps.jl/dev/assets/eeaiohh.D5-bot8v.png",l="/GeometryOps.jl/dev/assets/nswzqgn.D9Jcxa43.png",o=JSON.parse('{"title":"Segmentize","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/segmentize.md","filePath":"source/transformations/segmentize.md","lastUpdated":null}'),e={name:"source/transformations/segmentize.md"};function k(p,s,r,E,d,g){return h(),a("div",null,s[0]||(s[0]=[n(`

Segmentize

julia
export segmentize
 export LinearSegments, GeodesicSegments

This function "segmentizes" or "densifies" a geometry by adding extra vertices to the geometry so that no segment is longer than a given distance. This is useful for plotting geometries with a limited number of vertices, or for ensuring that a geometry is not too "coarse" for a given application.

Info

We plan to add interpolated segmentization from DataInterpolations.jl in the future, which will be available to any vector of point-like objects.

For now, this function only works on 2D geometries. We will also support 3D geometries, as well as measure interpolation, in the future.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 rectangle = GI.Wrappers.Polygon([[(0.0, 50.0), (7.071, 57.07), (0, 64.14), (-7.07, 57.07), (0.0, 50.0)]])
 linear = GO.segmentize(rectangle; max_distance = 5)
diff --git a/dev/assets/source_transformations_segmentize.md.FzoXEUxb.lean.js b/dev/assets/source_transformations_segmentize.md.DCSzM58m.lean.js
similarity index 99%
rename from dev/assets/source_transformations_segmentize.md.FzoXEUxb.lean.js
rename to dev/assets/source_transformations_segmentize.md.DCSzM58m.lean.js
index 3f92039ab..cf114c791 100644
--- a/dev/assets/source_transformations_segmentize.md.FzoXEUxb.lean.js
+++ b/dev/assets/source_transformations_segmentize.md.DCSzM58m.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const t="/GeometryOps.jl/dev/assets/qeoallh.D5-bot8v.png",l="/GeometryOps.jl/dev/assets/jkijtgh.CD6tsQoA.png",o=JSON.parse('{"title":"Segmentize","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/segmentize.md","filePath":"source/transformations/segmentize.md","lastUpdated":null}'),e={name:"source/transformations/segmentize.md"};function k(p,s,r,E,d,g){return h(),a("div",null,s[0]||(s[0]=[n(`

Segmentize

julia
export segmentize
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const t="/GeometryOps.jl/dev/assets/eeaiohh.D5-bot8v.png",l="/GeometryOps.jl/dev/assets/nswzqgn.D9Jcxa43.png",o=JSON.parse('{"title":"Segmentize","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/segmentize.md","filePath":"source/transformations/segmentize.md","lastUpdated":null}'),e={name:"source/transformations/segmentize.md"};function k(p,s,r,E,d,g){return h(),a("div",null,s[0]||(s[0]=[n(`

Segmentize

julia
export segmentize
 export LinearSegments, GeodesicSegments

This function "segmentizes" or "densifies" a geometry by adding extra vertices to the geometry so that no segment is longer than a given distance. This is useful for plotting geometries with a limited number of vertices, or for ensuring that a geometry is not too "coarse" for a given application.

Info

We plan to add interpolated segmentization from DataInterpolations.jl in the future, which will be available to any vector of point-like objects.

For now, this function only works on 2D geometries. We will also support 3D geometries, as well as measure interpolation, in the future.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 rectangle = GI.Wrappers.Polygon([[(0.0, 50.0), (7.071, 57.07), (0, 64.14), (-7.07, 57.07), (0.0, 50.0)]])
 linear = GO.segmentize(rectangle; max_distance = 5)
diff --git a/dev/assets/source_transformations_simplify.md.LsrfUdCs.js b/dev/assets/source_transformations_simplify.md.BtEM-RYN.js
similarity index 99%
rename from dev/assets/source_transformations_simplify.md.LsrfUdCs.js
rename to dev/assets/source_transformations_simplify.md.BtEM-RYN.js
index a15010573..ae90a31fe 100644
--- a/dev/assets/source_transformations_simplify.md.LsrfUdCs.js
+++ b/dev/assets/source_transformations_simplify.md.BtEM-RYN.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const l="/GeometryOps.jl/dev/assets/nzqlyub.Bglvb-jp.png",k="/GeometryOps.jl/dev/assets/simoaxi.B94PsR1K.png",t="/GeometryOps.jl/dev/assets/dzyqzlu.C5N3xVUC.png",p="/GeometryOps.jl/dev/assets/ydfkdpp.Bj1uXsmn.png",c=JSON.parse('{"title":"Geometry simplification","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/simplify.md","filePath":"source/transformations/simplify.md","lastUpdated":null}'),e={name:"source/transformations/simplify.md"};function E(r,s,d,g,y,F){return h(),a("div",null,s[0]||(s[0]=[n(`

Geometry simplification

This file holds implementations for the RadialDistance, Douglas-Peucker, and Visvalingam-Whyatt algorithms for simplifying geometries (specifically for polygons and lines).

The GEOS extension also allows for GEOS's topology preserving simplification as well as Douglas-Peucker simplification implemented in GEOS. Call this by passing GEOS(; method = :TopologyPreserve) or GEOS(; method = :DouglasPeucker) to the algorithm.

Examples

A quick and dirty example is:

julia
using Makie, GeoInterfaceMakie
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const l="/GeometryOps.jl/dev/assets/syrxnah.Bglvb-jp.png",k="/GeometryOps.jl/dev/assets/pshmrok.B94PsR1K.png",t="/GeometryOps.jl/dev/assets/rxbguvl.CD3O6lbE.png",p="/GeometryOps.jl/dev/assets/wiiqzty.B1-COp2s.png",c=JSON.parse('{"title":"Geometry simplification","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/simplify.md","filePath":"source/transformations/simplify.md","lastUpdated":null}'),e={name:"source/transformations/simplify.md"};function E(r,s,d,g,y,F){return h(),a("div",null,s[0]||(s[0]=[n(`

Geometry simplification

This file holds implementations for the RadialDistance, Douglas-Peucker, and Visvalingam-Whyatt algorithms for simplifying geometries (specifically for polygons and lines).

The GEOS extension also allows for GEOS's topology preserving simplification as well as Douglas-Peucker simplification implemented in GEOS. Call this by passing GEOS(; method = :TopologyPreserve) or GEOS(; method = :DouglasPeucker) to the algorithm.

Examples

A quick and dirty example is:

julia
using Makie, GeoInterfaceMakie
 import GeoInterface as GI
 import GeometryOps as GO
 
diff --git a/dev/assets/source_transformations_simplify.md.LsrfUdCs.lean.js b/dev/assets/source_transformations_simplify.md.BtEM-RYN.lean.js
similarity index 99%
rename from dev/assets/source_transformations_simplify.md.LsrfUdCs.lean.js
rename to dev/assets/source_transformations_simplify.md.BtEM-RYN.lean.js
index a15010573..ae90a31fe 100644
--- a/dev/assets/source_transformations_simplify.md.LsrfUdCs.lean.js
+++ b/dev/assets/source_transformations_simplify.md.BtEM-RYN.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const l="/GeometryOps.jl/dev/assets/nzqlyub.Bglvb-jp.png",k="/GeometryOps.jl/dev/assets/simoaxi.B94PsR1K.png",t="/GeometryOps.jl/dev/assets/dzyqzlu.C5N3xVUC.png",p="/GeometryOps.jl/dev/assets/ydfkdpp.Bj1uXsmn.png",c=JSON.parse('{"title":"Geometry simplification","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/simplify.md","filePath":"source/transformations/simplify.md","lastUpdated":null}'),e={name:"source/transformations/simplify.md"};function E(r,s,d,g,y,F){return h(),a("div",null,s[0]||(s[0]=[n(`

Geometry simplification

This file holds implementations for the RadialDistance, Douglas-Peucker, and Visvalingam-Whyatt algorithms for simplifying geometries (specifically for polygons and lines).

The GEOS extension also allows for GEOS's topology preserving simplification as well as Douglas-Peucker simplification implemented in GEOS. Call this by passing GEOS(; method = :TopologyPreserve) or GEOS(; method = :DouglasPeucker) to the algorithm.

Examples

A quick and dirty example is:

julia
using Makie, GeoInterfaceMakie
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const l="/GeometryOps.jl/dev/assets/syrxnah.Bglvb-jp.png",k="/GeometryOps.jl/dev/assets/pshmrok.B94PsR1K.png",t="/GeometryOps.jl/dev/assets/rxbguvl.CD3O6lbE.png",p="/GeometryOps.jl/dev/assets/wiiqzty.B1-COp2s.png",c=JSON.parse('{"title":"Geometry simplification","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/simplify.md","filePath":"source/transformations/simplify.md","lastUpdated":null}'),e={name:"source/transformations/simplify.md"};function E(r,s,d,g,y,F){return h(),a("div",null,s[0]||(s[0]=[n(`

Geometry simplification

This file holds implementations for the RadialDistance, Douglas-Peucker, and Visvalingam-Whyatt algorithms for simplifying geometries (specifically for polygons and lines).

The GEOS extension also allows for GEOS's topology preserving simplification as well as Douglas-Peucker simplification implemented in GEOS. Call this by passing GEOS(; method = :TopologyPreserve) or GEOS(; method = :DouglasPeucker) to the algorithm.

Examples

A quick and dirty example is:

julia
using Makie, GeoInterfaceMakie
 import GeoInterface as GI
 import GeometryOps as GO
 
diff --git a/dev/assets/source_transformations_transform.md.CTodlzuV.js b/dev/assets/source_transformations_transform.md.D50yl898.js
similarity index 98%
rename from dev/assets/source_transformations_transform.md.CTodlzuV.js
rename to dev/assets/source_transformations_transform.md.D50yl898.js
index c1c263560..ff4bdc962 100644
--- a/dev/assets/source_transformations_transform.md.CTodlzuV.js
+++ b/dev/assets/source_transformations_transform.md.D50yl898.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B9oBnxE7.js";const F=JSON.parse('{"title":"Pointwise transformation","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/transform.md","filePath":"source/transformations/transform.md","lastUpdated":null}'),l={name:"source/transformations/transform.md"};function e(p,s,h,r,k,o){return t(),a("div",null,s[0]||(s[0]=[n(`

Pointwise transformation

julia
"""
+import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B0Ss3dHN.js";const F=JSON.parse('{"title":"Pointwise transformation","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/transform.md","filePath":"source/transformations/transform.md","lastUpdated":null}'),l={name:"source/transformations/transform.md"};function e(p,s,h,r,k,o){return t(),a("div",null,s[0]||(s[0]=[n(`

Pointwise transformation

julia
"""
     transform(f, obj)
 
 Apply a function \`f\` to all the points in \`obj\`.
diff --git a/dev/assets/source_transformations_transform.md.CTodlzuV.lean.js b/dev/assets/source_transformations_transform.md.D50yl898.lean.js
similarity index 98%
rename from dev/assets/source_transformations_transform.md.CTodlzuV.lean.js
rename to dev/assets/source_transformations_transform.md.D50yl898.lean.js
index c1c263560..ff4bdc962 100644
--- a/dev/assets/source_transformations_transform.md.CTodlzuV.lean.js
+++ b/dev/assets/source_transformations_transform.md.D50yl898.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B9oBnxE7.js";const F=JSON.parse('{"title":"Pointwise transformation","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/transform.md","filePath":"source/transformations/transform.md","lastUpdated":null}'),l={name:"source/transformations/transform.md"};function e(p,s,h,r,k,o){return t(),a("div",null,s[0]||(s[0]=[n(`

Pointwise transformation

julia
"""
+import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B0Ss3dHN.js";const F=JSON.parse('{"title":"Pointwise transformation","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/transform.md","filePath":"source/transformations/transform.md","lastUpdated":null}'),l={name:"source/transformations/transform.md"};function e(p,s,h,r,k,o){return t(),a("div",null,s[0]||(s[0]=[n(`

Pointwise transformation

julia
"""
     transform(f, obj)
 
 Apply a function \`f\` to all the points in \`obj\`.
diff --git a/dev/assets/source_transformations_tuples.md.CQtVCMR5.js b/dev/assets/source_transformations_tuples.md.BSO5jndR.js
similarity index 96%
rename from dev/assets/source_transformations_tuples.md.CQtVCMR5.js
rename to dev/assets/source_transformations_tuples.md.BSO5jndR.js
index 196c239df..ba66b7e87 100644
--- a/dev/assets/source_transformations_tuples.md.CQtVCMR5.js
+++ b/dev/assets/source_transformations_tuples.md.BSO5jndR.js
@@ -1,4 +1,4 @@
-import{_ as a,c as n,a5 as i,o as e}from"./chunks/framework.B9oBnxE7.js";const d=JSON.parse('{"title":"Tuple conversion","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/tuples.md","filePath":"source/transformations/tuples.md","lastUpdated":null}'),t={name:"source/transformations/tuples.md"};function p(l,s,r,o,h,k){return e(),n("div",null,s[0]||(s[0]=[i(`

Tuple conversion

julia
"""
+import{_ as a,c as n,a5 as i,o as e}from"./chunks/framework.B0Ss3dHN.js";const d=JSON.parse('{"title":"Tuple conversion","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/tuples.md","filePath":"source/transformations/tuples.md","lastUpdated":null}'),t={name:"source/transformations/tuples.md"};function p(l,s,r,o,h,k){return e(),n("div",null,s[0]||(s[0]=[i(`

Tuple conversion

julia
"""
     tuples(obj)
 
 Convert all points in \`obj\` to \`Tuple\`s, wherever the are nested.
diff --git a/dev/assets/source_transformations_tuples.md.CQtVCMR5.lean.js b/dev/assets/source_transformations_tuples.md.BSO5jndR.lean.js
similarity index 96%
rename from dev/assets/source_transformations_tuples.md.CQtVCMR5.lean.js
rename to dev/assets/source_transformations_tuples.md.BSO5jndR.lean.js
index 196c239df..ba66b7e87 100644
--- a/dev/assets/source_transformations_tuples.md.CQtVCMR5.lean.js
+++ b/dev/assets/source_transformations_tuples.md.BSO5jndR.lean.js
@@ -1,4 +1,4 @@
-import{_ as a,c as n,a5 as i,o as e}from"./chunks/framework.B9oBnxE7.js";const d=JSON.parse('{"title":"Tuple conversion","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/tuples.md","filePath":"source/transformations/tuples.md","lastUpdated":null}'),t={name:"source/transformations/tuples.md"};function p(l,s,r,o,h,k){return e(),n("div",null,s[0]||(s[0]=[i(`

Tuple conversion

julia
"""
+import{_ as a,c as n,a5 as i,o as e}from"./chunks/framework.B0Ss3dHN.js";const d=JSON.parse('{"title":"Tuple conversion","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/tuples.md","filePath":"source/transformations/tuples.md","lastUpdated":null}'),t={name:"source/transformations/tuples.md"};function p(l,s,r,o,h,k){return e(),n("div",null,s[0]||(s[0]=[i(`

Tuple conversion

julia
"""
     tuples(obj)
 
 Convert all points in \`obj\` to \`Tuple\`s, wherever the are nested.
diff --git a/dev/assets/source_types.md.Blt3PWgm.js b/dev/assets/source_types.md.D23Fcnpy.js
similarity index 99%
rename from dev/assets/source_types.md.Blt3PWgm.js
rename to dev/assets/source_types.md.D23Fcnpy.js
index b17029f06..269b1810b 100644
--- a/dev/assets/source_types.md.Blt3PWgm.js
+++ b/dev/assets/source_types.md.D23Fcnpy.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B9oBnxE7.js";const g=JSON.parse('{"title":"Types","description":"","frontmatter":{},"headers":[],"relativePath":"source/types.md","filePath":"source/types.md","lastUpdated":null}'),e={name:"source/types.md"};function l(p,s,h,k,r,d){return t(),a("div",null,s[0]||(s[0]=[n(`

Types

This file defines some fundamental types used in GeometryOps.

Warning

Unlike in other Julia packages, only some types are defined in this file, not all. This is because we define types in the files where they are used, to make it easier to understand the code.

julia
export TraitTarget, GEOS

TraitTarget

This struct holds a trait parameter or a union of trait parameters. It's essentially a way to construct unions.

julia
"""
+import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B0Ss3dHN.js";const g=JSON.parse('{"title":"Types","description":"","frontmatter":{},"headers":[],"relativePath":"source/types.md","filePath":"source/types.md","lastUpdated":null}'),e={name:"source/types.md"};function l(p,s,h,k,r,d){return t(),a("div",null,s[0]||(s[0]=[n(`

Types

This file defines some fundamental types used in GeometryOps.

Warning

Unlike in other Julia packages, only some types are defined in this file, not all. This is because we define types in the files where they are used, to make it easier to understand the code.

julia
export TraitTarget, GEOS

TraitTarget

This struct holds a trait parameter or a union of trait parameters. It's essentially a way to construct unions.

julia
"""
     TraitTarget{T}
 
 This struct holds a trait parameter or a union of trait parameters.
diff --git a/dev/assets/source_types.md.Blt3PWgm.lean.js b/dev/assets/source_types.md.D23Fcnpy.lean.js
similarity index 99%
rename from dev/assets/source_types.md.Blt3PWgm.lean.js
rename to dev/assets/source_types.md.D23Fcnpy.lean.js
index b17029f06..269b1810b 100644
--- a/dev/assets/source_types.md.Blt3PWgm.lean.js
+++ b/dev/assets/source_types.md.D23Fcnpy.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B9oBnxE7.js";const g=JSON.parse('{"title":"Types","description":"","frontmatter":{},"headers":[],"relativePath":"source/types.md","filePath":"source/types.md","lastUpdated":null}'),e={name:"source/types.md"};function l(p,s,h,k,r,d){return t(),a("div",null,s[0]||(s[0]=[n(`

Types

This file defines some fundamental types used in GeometryOps.

Warning

Unlike in other Julia packages, only some types are defined in this file, not all. This is because we define types in the files where they are used, to make it easier to understand the code.

julia
export TraitTarget, GEOS

TraitTarget

This struct holds a trait parameter or a union of trait parameters. It's essentially a way to construct unions.

julia
"""
+import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B0Ss3dHN.js";const g=JSON.parse('{"title":"Types","description":"","frontmatter":{},"headers":[],"relativePath":"source/types.md","filePath":"source/types.md","lastUpdated":null}'),e={name:"source/types.md"};function l(p,s,h,k,r,d){return t(),a("div",null,s[0]||(s[0]=[n(`

Types

This file defines some fundamental types used in GeometryOps.

Warning

Unlike in other Julia packages, only some types are defined in this file, not all. This is because we define types in the files where they are used, to make it easier to understand the code.

julia
export TraitTarget, GEOS

TraitTarget

This struct holds a trait parameter or a union of trait parameters. It's essentially a way to construct unions.

julia
"""
     TraitTarget{T}
 
 This struct holds a trait parameter or a union of trait parameters.
diff --git a/dev/assets/source_utils.md.on7iMB6f.js b/dev/assets/source_utils.md.BAUiaq8M.js
similarity index 99%
rename from dev/assets/source_utils.md.on7iMB6f.js
rename to dev/assets/source_utils.md.BAUiaq8M.js
index c71ec2a9e..3ab5ed44c 100644
--- a/dev/assets/source_utils.md.on7iMB6f.js
+++ b/dev/assets/source_utils.md.BAUiaq8M.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B9oBnxE7.js";const d=JSON.parse('{"title":"Utility functions","description":"","frontmatter":{},"headers":[],"relativePath":"source/utils.md","filePath":"source/utils.md","lastUpdated":null}'),p={name:"source/utils.md"};function l(h,s,k,e,r,F){return t(),a("div",null,s[0]||(s[0]=[n(`

Utility functions

julia
_is3d(geom)::Bool = _is3d(GI.trait(geom), geom)
+import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B0Ss3dHN.js";const d=JSON.parse('{"title":"Utility functions","description":"","frontmatter":{},"headers":[],"relativePath":"source/utils.md","filePath":"source/utils.md","lastUpdated":null}'),p={name:"source/utils.md"};function l(h,s,k,e,r,F){return t(),a("div",null,s[0]||(s[0]=[n(`

Utility functions

julia
_is3d(geom)::Bool = _is3d(GI.trait(geom), geom)
 _is3d(::GI.AbstractGeometryTrait, geom)::Bool = GI.is3d(geom)
 _is3d(::GI.FeatureTrait, feature)::Bool = _is3d(GI.geometry(feature))
 _is3d(::GI.FeatureCollectionTrait, fc)::Bool = _is3d(GI.getfeature(fc, 1))
diff --git a/dev/assets/source_utils.md.on7iMB6f.lean.js b/dev/assets/source_utils.md.BAUiaq8M.lean.js
similarity index 99%
rename from dev/assets/source_utils.md.on7iMB6f.lean.js
rename to dev/assets/source_utils.md.BAUiaq8M.lean.js
index c71ec2a9e..3ab5ed44c 100644
--- a/dev/assets/source_utils.md.on7iMB6f.lean.js
+++ b/dev/assets/source_utils.md.BAUiaq8M.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B9oBnxE7.js";const d=JSON.parse('{"title":"Utility functions","description":"","frontmatter":{},"headers":[],"relativePath":"source/utils.md","filePath":"source/utils.md","lastUpdated":null}'),p={name:"source/utils.md"};function l(h,s,k,e,r,F){return t(),a("div",null,s[0]||(s[0]=[n(`

Utility functions

julia
_is3d(geom)::Bool = _is3d(GI.trait(geom), geom)
+import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.B0Ss3dHN.js";const d=JSON.parse('{"title":"Utility functions","description":"","frontmatter":{},"headers":[],"relativePath":"source/utils.md","filePath":"source/utils.md","lastUpdated":null}'),p={name:"source/utils.md"};function l(h,s,k,e,r,F){return t(),a("div",null,s[0]||(s[0]=[n(`

Utility functions

julia
_is3d(geom)::Bool = _is3d(GI.trait(geom), geom)
 _is3d(::GI.AbstractGeometryTrait, geom)::Bool = GI.is3d(geom)
 _is3d(::GI.FeatureTrait, feature)::Bool = _is3d(GI.geometry(feature))
 _is3d(::GI.FeatureCollectionTrait, fc)::Bool = _is3d(GI.getfeature(fc, 1))
diff --git a/dev/assets/lixjkeo.CgiryX2p.png b/dev/assets/swezuxk.CgiryX2p.png
similarity index 100%
rename from dev/assets/lixjkeo.CgiryX2p.png
rename to dev/assets/swezuxk.CgiryX2p.png
diff --git a/dev/assets/nzqlyub.Bglvb-jp.png b/dev/assets/syrxnah.Bglvb-jp.png
similarity index 100%
rename from dev/assets/nzqlyub.Bglvb-jp.png
rename to dev/assets/syrxnah.Bglvb-jp.png
diff --git a/dev/assets/omjlqzr.BEFUMtlf.png b/dev/assets/tlougwp.BEFUMtlf.png
similarity index 100%
rename from dev/assets/omjlqzr.BEFUMtlf.png
rename to dev/assets/tlougwp.BEFUMtlf.png
diff --git a/dev/assets/tmzqbco.Ds4_I6QN.png b/dev/assets/tmzqbco.Ds4_I6QN.png
new file mode 100644
index 0000000000000000000000000000000000000000..5750a9b93ad5aa77440c3211586b5afed1725fd1
GIT binary patch
literal 70825
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
L%Ze2s-@N}{3#=nh

literal 0
HcmV?d00001

diff --git a/dev/assets/tutorials_creating_geometry.md.CXM5034I.js b/dev/assets/tutorials_creating_geometry.md.CWhgTWcM.js
similarity index 99%
rename from dev/assets/tutorials_creating_geometry.md.CXM5034I.js
rename to dev/assets/tutorials_creating_geometry.md.CWhgTWcM.js
index 2ac4b24e0..243478a4d 100644
--- a/dev/assets/tutorials_creating_geometry.md.CXM5034I.js
+++ b/dev/assets/tutorials_creating_geometry.md.CWhgTWcM.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as e,o as t}from"./chunks/framework.B9oBnxE7.js";const n="/GeometryOps.jl/dev/assets/ntsoasx.Dz86q2IX.png",l="/GeometryOps.jl/dev/assets/xadzjhs.Cx40vhB3.png",p="/GeometryOps.jl/dev/assets/kknjmky.0OJvb21A.png",h="/GeometryOps.jl/dev/assets/udsihcc.DaovVbE6.png",o="/GeometryOps.jl/dev/assets/fgstgnj.rOsRk89v.png",k="/GeometryOps.jl/dev/assets/ykhxikq.4wfjCtJV.png",r="/GeometryOps.jl/dev/assets/qncsgbg.3sfpQl2i.png",g="/GeometryOps.jl/dev/assets/nhikwcj.Dab1-ETk.png",d="/GeometryOps.jl/dev/assets/hkumiam.D9AE7i2o.png",E="/GeometryOps.jl/dev/assets/dmyrnfb.DTKLkKh_.png",c="/GeometryOps.jl/dev/assets/uozbjwy.0f3Lq4Lw.png",G=JSON.parse('{"title":"Creating Geometry","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/creating_geometry.md","filePath":"tutorials/creating_geometry.md","lastUpdated":null}'),y={name:"tutorials/creating_geometry.md"};function F(u,s,f,C,m,b){return t(),a("div",null,s[0]||(s[0]=[e(`

In this tutorial, we're going to:

  1. Create and plot geometries

  2. Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

  3. Create geospatial geometries with embedded coordinate reference system information

  4. Assign attributes to geospatial geometries

  5. Save geospatial geometries to common geospatial file formats

First, we load some required packages.

julia
# Geospatial packages from Julia
+import{_ as i,c as a,a5 as e,o as t}from"./chunks/framework.B0Ss3dHN.js";const n="/GeometryOps.jl/dev/assets/aftrdlb.Dz86q2IX.png",l="/GeometryOps.jl/dev/assets/zbdndpn.Cx40vhB3.png",p="/GeometryOps.jl/dev/assets/zcclcqv.0OJvb21A.png",h="/GeometryOps.jl/dev/assets/vdymleu.DaovVbE6.png",o="/GeometryOps.jl/dev/assets/lewnlwz.rOsRk89v.png",k="/GeometryOps.jl/dev/assets/nbufiob.4wfjCtJV.png",r="/GeometryOps.jl/dev/assets/rngeqqd.3sfpQl2i.png",g="/GeometryOps.jl/dev/assets/ccrysmn.Dab1-ETk.png",d="/GeometryOps.jl/dev/assets/rnkakvw.D9AE7i2o.png",E="/GeometryOps.jl/dev/assets/dsjwujh.DTKLkKh_.png",c="/GeometryOps.jl/dev/assets/ydfaqmc.0f3Lq4Lw.png",G=JSON.parse('{"title":"Creating Geometry","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/creating_geometry.md","filePath":"tutorials/creating_geometry.md","lastUpdated":null}'),y={name:"tutorials/creating_geometry.md"};function F(u,s,f,C,m,b){return t(),a("div",null,s[0]||(s[0]=[e(`

Creating Geometry

In this tutorial, we're going to:

  1. Create and plot geometries

  2. Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

  3. Create geospatial geometries with embedded coordinate reference system information

  4. Assign attributes to geospatial geometries

  5. Save geospatial geometries to common geospatial file formats

First, we load some required packages.

julia
# Geospatial packages from Julia
 import GeoInterface as GI
 import GeometryOps as GO
 import GeoFormatTypes as GFT
diff --git a/dev/assets/tutorials_creating_geometry.md.CXM5034I.lean.js b/dev/assets/tutorials_creating_geometry.md.CWhgTWcM.lean.js
similarity index 99%
rename from dev/assets/tutorials_creating_geometry.md.CXM5034I.lean.js
rename to dev/assets/tutorials_creating_geometry.md.CWhgTWcM.lean.js
index 2ac4b24e0..243478a4d 100644
--- a/dev/assets/tutorials_creating_geometry.md.CXM5034I.lean.js
+++ b/dev/assets/tutorials_creating_geometry.md.CWhgTWcM.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as e,o as t}from"./chunks/framework.B9oBnxE7.js";const n="/GeometryOps.jl/dev/assets/ntsoasx.Dz86q2IX.png",l="/GeometryOps.jl/dev/assets/xadzjhs.Cx40vhB3.png",p="/GeometryOps.jl/dev/assets/kknjmky.0OJvb21A.png",h="/GeometryOps.jl/dev/assets/udsihcc.DaovVbE6.png",o="/GeometryOps.jl/dev/assets/fgstgnj.rOsRk89v.png",k="/GeometryOps.jl/dev/assets/ykhxikq.4wfjCtJV.png",r="/GeometryOps.jl/dev/assets/qncsgbg.3sfpQl2i.png",g="/GeometryOps.jl/dev/assets/nhikwcj.Dab1-ETk.png",d="/GeometryOps.jl/dev/assets/hkumiam.D9AE7i2o.png",E="/GeometryOps.jl/dev/assets/dmyrnfb.DTKLkKh_.png",c="/GeometryOps.jl/dev/assets/uozbjwy.0f3Lq4Lw.png",G=JSON.parse('{"title":"Creating Geometry","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/creating_geometry.md","filePath":"tutorials/creating_geometry.md","lastUpdated":null}'),y={name:"tutorials/creating_geometry.md"};function F(u,s,f,C,m,b){return t(),a("div",null,s[0]||(s[0]=[e(`

Creating Geometry

In this tutorial, we're going to:

  1. Create and plot geometries

  2. Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

  3. Create geospatial geometries with embedded coordinate reference system information

  4. Assign attributes to geospatial geometries

  5. Save geospatial geometries to common geospatial file formats

First, we load some required packages.

julia
# Geospatial packages from Julia
+import{_ as i,c as a,a5 as e,o as t}from"./chunks/framework.B0Ss3dHN.js";const n="/GeometryOps.jl/dev/assets/aftrdlb.Dz86q2IX.png",l="/GeometryOps.jl/dev/assets/zbdndpn.Cx40vhB3.png",p="/GeometryOps.jl/dev/assets/zcclcqv.0OJvb21A.png",h="/GeometryOps.jl/dev/assets/vdymleu.DaovVbE6.png",o="/GeometryOps.jl/dev/assets/lewnlwz.rOsRk89v.png",k="/GeometryOps.jl/dev/assets/nbufiob.4wfjCtJV.png",r="/GeometryOps.jl/dev/assets/rngeqqd.3sfpQl2i.png",g="/GeometryOps.jl/dev/assets/ccrysmn.Dab1-ETk.png",d="/GeometryOps.jl/dev/assets/rnkakvw.D9AE7i2o.png",E="/GeometryOps.jl/dev/assets/dsjwujh.DTKLkKh_.png",c="/GeometryOps.jl/dev/assets/ydfaqmc.0f3Lq4Lw.png",G=JSON.parse('{"title":"Creating Geometry","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/creating_geometry.md","filePath":"tutorials/creating_geometry.md","lastUpdated":null}'),y={name:"tutorials/creating_geometry.md"};function F(u,s,f,C,m,b){return t(),a("div",null,s[0]||(s[0]=[e(`

Creating Geometry

In this tutorial, we're going to:

  1. Create and plot geometries

  2. Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

  3. Create geospatial geometries with embedded coordinate reference system information

  4. Assign attributes to geospatial geometries

  5. Save geospatial geometries to common geospatial file formats

First, we load some required packages.

julia
# Geospatial packages from Julia
 import GeoInterface as GI
 import GeometryOps as GO
 import GeoFormatTypes as GFT
diff --git a/dev/assets/tutorials_geodesic_paths.md.BCOcCatY.js b/dev/assets/tutorials_geodesic_paths.md._RhqTYOW.js
similarity index 97%
rename from dev/assets/tutorials_geodesic_paths.md.BCOcCatY.js
rename to dev/assets/tutorials_geodesic_paths.md._RhqTYOW.js
index f484f4905..f9a7ea1ab 100644
--- a/dev/assets/tutorials_geodesic_paths.md.BCOcCatY.js
+++ b/dev/assets/tutorials_geodesic_paths.md._RhqTYOW.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const t="/GeometryOps.jl/dev/assets/rsxzpqi.CPClNl7F.png",o=JSON.parse('{"title":"Geodesic paths","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/geodesic_paths.md","filePath":"tutorials/geodesic_paths.md","lastUpdated":null}'),p={name:"tutorials/geodesic_paths.md"};function k(l,s,e,E,d,r){return h(),a("div",null,s[0]||(s[0]=[n(`

Geodesic paths

Geodesic paths are paths computed on an ellipsoid, as opposed to a plane.

julia
import GeometryOps as GO, GeoInterface as GI
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const t="/GeometryOps.jl/dev/assets/pnjlkev.CPClNl7F.png",o=JSON.parse('{"title":"Geodesic paths","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/geodesic_paths.md","filePath":"tutorials/geodesic_paths.md","lastUpdated":null}'),p={name:"tutorials/geodesic_paths.md"};function k(l,s,e,E,d,r){return h(),a("div",null,s[0]||(s[0]=[n(`

Geodesic paths

Geodesic paths are paths computed on an ellipsoid, as opposed to a plane.

julia
import GeometryOps as GO, GeoInterface as GI
 using CairoMakie, GeoMakie
 
 
diff --git a/dev/assets/tutorials_geodesic_paths.md.BCOcCatY.lean.js b/dev/assets/tutorials_geodesic_paths.md._RhqTYOW.lean.js
similarity index 97%
rename from dev/assets/tutorials_geodesic_paths.md.BCOcCatY.lean.js
rename to dev/assets/tutorials_geodesic_paths.md._RhqTYOW.lean.js
index f484f4905..f9a7ea1ab 100644
--- a/dev/assets/tutorials_geodesic_paths.md.BCOcCatY.lean.js
+++ b/dev/assets/tutorials_geodesic_paths.md._RhqTYOW.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const t="/GeometryOps.jl/dev/assets/rsxzpqi.CPClNl7F.png",o=JSON.parse('{"title":"Geodesic paths","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/geodesic_paths.md","filePath":"tutorials/geodesic_paths.md","lastUpdated":null}'),p={name:"tutorials/geodesic_paths.md"};function k(l,s,e,E,d,r){return h(),a("div",null,s[0]||(s[0]=[n(`

Geodesic paths

Geodesic paths are paths computed on an ellipsoid, as opposed to a plane.

julia
import GeometryOps as GO, GeoInterface as GI
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const t="/GeometryOps.jl/dev/assets/pnjlkev.CPClNl7F.png",o=JSON.parse('{"title":"Geodesic paths","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/geodesic_paths.md","filePath":"tutorials/geodesic_paths.md","lastUpdated":null}'),p={name:"tutorials/geodesic_paths.md"};function k(l,s,e,E,d,r){return h(),a("div",null,s[0]||(s[0]=[n(`

Geodesic paths

Geodesic paths are paths computed on an ellipsoid, as opposed to a plane.

julia
import GeometryOps as GO, GeoInterface as GI
 using CairoMakie, GeoMakie
 
 
diff --git a/dev/assets/tutorials_spatial_joins.md.B7N3iyRl.js b/dev/assets/tutorials_spatial_joins.md.3ItQXtC7.js
similarity index 99%
rename from dev/assets/tutorials_spatial_joins.md.B7N3iyRl.js
rename to dev/assets/tutorials_spatial_joins.md.3ItQXtC7.js
index fcf381c0b..dfb7a2700 100644
--- a/dev/assets/tutorials_spatial_joins.md.B7N3iyRl.js
+++ b/dev/assets/tutorials_spatial_joins.md.3ItQXtC7.js
@@ -1,4 +1,4 @@
-import{_ as l,c as t,j as i,a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const e="/GeometryOps.jl/dev/assets/dakcocu.3UVIT8DR.png",p="/GeometryOps.jl/dev/assets/hqsdgwp.sS_Fuefu.png",k="/GeometryOps.jl/dev/assets/itssczc.DsRRHTcy.png",C=JSON.parse('{"title":"Spatial joins","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/spatial_joins.md","filePath":"tutorials/spatial_joins.md","lastUpdated":null}'),r={name:"tutorials/spatial_joins.md"},E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"6.307ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 2787.7 1000","aria-hidden":"true"};function o(g,s,y,F,c,u){return h(),t("div",null,[s[12]||(s[12]=i("h1",{id:"Spatial-joins",tabindex:"-1"},[a("Spatial joins "),i("a",{class:"header-anchor",href:"#Spatial-joins","aria-label":'Permalink to "Spatial joins {#Spatial-joins}"'},"​")],-1)),i("p",null,[s[2]||(s[2]=a("Spatial joins are ")),s[3]||(s[3]=i("a",{href:"https://www.geeksforgeeks.org/sql-join-set-1-inner-left-right-and-full-joins/",target:"_blank",rel:"noreferrer"},"table joins",-1)),s[4]||(s[4]=a(" which are based not on equality, but on some predicate ")),i("mjx-container",E,[(h(),t("svg",d,s[0]||(s[0]=[n('',1)]))),s[1]||(s[1]=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mi",null,"p"),i("mo",{stretchy:"false"},"("),i("mi",null,"x"),i("mo",null,","),i("mi",null,"y"),i("mo",{stretchy:"false"},")")])],-1))]),s[5]||(s[5]=a(", which takes two geometries, and returns a value of either ")),s[6]||(s[6]=i("code",null,"true",-1)),s[7]||(s[7]=a(" or ")),s[8]||(s[8]=i("code",null,"false",-1)),s[9]||(s[9]=a(". For geometries, the ")),s[10]||(s[10]=i("a",{href:"https://en.wikipedia.org/wiki/DE-9IM",target:"_blank",rel:"noreferrer"},[i("code",null,"DE-9IM")],-1)),s[11]||(s[11]=a(" spatial relationship model is used to determine the spatial relationship between two geometries."))]),s[13]||(s[13]=n(`

Spatial joins can be done between any geometry types (from geometrycollections to points), just as geometrical predicates can be evaluated on any geometries.

In this tutorial, we will show how to perform a spatial join on first a toy dataset and then two Natural Earth datasets, to show how this can be used in the real world.

In order to perform the spatial join, we use FlexiJoins.jl to perform the join, specifically using its by_pred joining method. This allows the user to specify a predicate in the following manner:

julia
[inner/left/right/outer/...]join((table1, table1),
+import{_ as l,c as t,j as i,a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const e="/GeometryOps.jl/dev/assets/rbqikhv.3UVIT8DR.png",p="/GeometryOps.jl/dev/assets/vnpjlew._p8xhozb.png",k="/GeometryOps.jl/dev/assets/rnaehas.CCwTMR41.png",C=JSON.parse('{"title":"Spatial joins","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/spatial_joins.md","filePath":"tutorials/spatial_joins.md","lastUpdated":null}'),r={name:"tutorials/spatial_joins.md"},E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"6.307ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 2787.7 1000","aria-hidden":"true"};function o(g,s,y,F,c,u){return h(),t("div",null,[s[12]||(s[12]=i("h1",{id:"Spatial-joins",tabindex:"-1"},[a("Spatial joins "),i("a",{class:"header-anchor",href:"#Spatial-joins","aria-label":'Permalink to "Spatial joins {#Spatial-joins}"'},"​")],-1)),i("p",null,[s[2]||(s[2]=a("Spatial joins are ")),s[3]||(s[3]=i("a",{href:"https://www.geeksforgeeks.org/sql-join-set-1-inner-left-right-and-full-joins/",target:"_blank",rel:"noreferrer"},"table joins",-1)),s[4]||(s[4]=a(" which are based not on equality, but on some predicate ")),i("mjx-container",E,[(h(),t("svg",d,s[0]||(s[0]=[n('',1)]))),s[1]||(s[1]=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mi",null,"p"),i("mo",{stretchy:"false"},"("),i("mi",null,"x"),i("mo",null,","),i("mi",null,"y"),i("mo",{stretchy:"false"},")")])],-1))]),s[5]||(s[5]=a(", which takes two geometries, and returns a value of either ")),s[6]||(s[6]=i("code",null,"true",-1)),s[7]||(s[7]=a(" or ")),s[8]||(s[8]=i("code",null,"false",-1)),s[9]||(s[9]=a(". For geometries, the ")),s[10]||(s[10]=i("a",{href:"https://en.wikipedia.org/wiki/DE-9IM",target:"_blank",rel:"noreferrer"},[i("code",null,"DE-9IM")],-1)),s[11]||(s[11]=a(" spatial relationship model is used to determine the spatial relationship between two geometries."))]),s[13]||(s[13]=n(`

Spatial joins can be done between any geometry types (from geometrycollections to points), just as geometrical predicates can be evaluated on any geometries.

In this tutorial, we will show how to perform a spatial join on first a toy dataset and then two Natural Earth datasets, to show how this can be used in the real world.

In order to perform the spatial join, we use FlexiJoins.jl to perform the join, specifically using its by_pred joining method. This allows the user to specify a predicate in the following manner:

julia
[inner/left/right/outer/...]join((table1, table1),
     by_pred(:table1_column, predicate_function, :table2_column) # & add other conditions here
 )

We have enabled the use of all of GeometryOps' boolean comparisons here. These are:

julia
GO.contains, GO.within, GO.intersects, GO.touches, GO.crosses, GO.disjoint, GO.overlaps, GO.covers, GO.coveredby, GO.equals

Tip

Always place the dataframe with more complex geometries second, as that is the one which will be sorted into a tree.

Simple example

This example demonstrates how to perform a spatial join between two datasets: a set of polygons and a set of randomly generated points.

The polygons are represented as a DataFrame with geometries and colors, while the points are stored in a separate DataFrame.

The spatial join is performed using the contains predicate from GeometryOps, which checks if each point is contained within any of the polygons. The resulting joined DataFrame is then used to plot the points, colored according to the containing polygon.

First, we generate our data. We create two triangle polygons which, together, span the rectangle (0, 0, 1, 1), and a set of points which are randomly distributed within this rectangle.

julia
import GeoInterface as GI, GeometryOps as GO
 using FlexiJoins, DataFrames
diff --git a/dev/assets/tutorials_spatial_joins.md.B7N3iyRl.lean.js b/dev/assets/tutorials_spatial_joins.md.3ItQXtC7.lean.js
similarity index 99%
rename from dev/assets/tutorials_spatial_joins.md.B7N3iyRl.lean.js
rename to dev/assets/tutorials_spatial_joins.md.3ItQXtC7.lean.js
index fcf381c0b..dfb7a2700 100644
--- a/dev/assets/tutorials_spatial_joins.md.B7N3iyRl.lean.js
+++ b/dev/assets/tutorials_spatial_joins.md.3ItQXtC7.lean.js
@@ -1,4 +1,4 @@
-import{_ as l,c as t,j as i,a,a5 as n,o as h}from"./chunks/framework.B9oBnxE7.js";const e="/GeometryOps.jl/dev/assets/dakcocu.3UVIT8DR.png",p="/GeometryOps.jl/dev/assets/hqsdgwp.sS_Fuefu.png",k="/GeometryOps.jl/dev/assets/itssczc.DsRRHTcy.png",C=JSON.parse('{"title":"Spatial joins","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/spatial_joins.md","filePath":"tutorials/spatial_joins.md","lastUpdated":null}'),r={name:"tutorials/spatial_joins.md"},E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"6.307ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 2787.7 1000","aria-hidden":"true"};function o(g,s,y,F,c,u){return h(),t("div",null,[s[12]||(s[12]=i("h1",{id:"Spatial-joins",tabindex:"-1"},[a("Spatial joins "),i("a",{class:"header-anchor",href:"#Spatial-joins","aria-label":'Permalink to "Spatial joins {#Spatial-joins}"'},"​")],-1)),i("p",null,[s[2]||(s[2]=a("Spatial joins are ")),s[3]||(s[3]=i("a",{href:"https://www.geeksforgeeks.org/sql-join-set-1-inner-left-right-and-full-joins/",target:"_blank",rel:"noreferrer"},"table joins",-1)),s[4]||(s[4]=a(" which are based not on equality, but on some predicate ")),i("mjx-container",E,[(h(),t("svg",d,s[0]||(s[0]=[n('',1)]))),s[1]||(s[1]=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mi",null,"p"),i("mo",{stretchy:"false"},"("),i("mi",null,"x"),i("mo",null,","),i("mi",null,"y"),i("mo",{stretchy:"false"},")")])],-1))]),s[5]||(s[5]=a(", which takes two geometries, and returns a value of either ")),s[6]||(s[6]=i("code",null,"true",-1)),s[7]||(s[7]=a(" or ")),s[8]||(s[8]=i("code",null,"false",-1)),s[9]||(s[9]=a(". For geometries, the ")),s[10]||(s[10]=i("a",{href:"https://en.wikipedia.org/wiki/DE-9IM",target:"_blank",rel:"noreferrer"},[i("code",null,"DE-9IM")],-1)),s[11]||(s[11]=a(" spatial relationship model is used to determine the spatial relationship between two geometries."))]),s[13]||(s[13]=n(`

Spatial joins can be done between any geometry types (from geometrycollections to points), just as geometrical predicates can be evaluated on any geometries.

In this tutorial, we will show how to perform a spatial join on first a toy dataset and then two Natural Earth datasets, to show how this can be used in the real world.

In order to perform the spatial join, we use FlexiJoins.jl to perform the join, specifically using its by_pred joining method. This allows the user to specify a predicate in the following manner:

julia
[inner/left/right/outer/...]join((table1, table1),
+import{_ as l,c as t,j as i,a,a5 as n,o as h}from"./chunks/framework.B0Ss3dHN.js";const e="/GeometryOps.jl/dev/assets/rbqikhv.3UVIT8DR.png",p="/GeometryOps.jl/dev/assets/vnpjlew._p8xhozb.png",k="/GeometryOps.jl/dev/assets/rnaehas.CCwTMR41.png",C=JSON.parse('{"title":"Spatial joins","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/spatial_joins.md","filePath":"tutorials/spatial_joins.md","lastUpdated":null}'),r={name:"tutorials/spatial_joins.md"},E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"6.307ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 2787.7 1000","aria-hidden":"true"};function o(g,s,y,F,c,u){return h(),t("div",null,[s[12]||(s[12]=i("h1",{id:"Spatial-joins",tabindex:"-1"},[a("Spatial joins "),i("a",{class:"header-anchor",href:"#Spatial-joins","aria-label":'Permalink to "Spatial joins {#Spatial-joins}"'},"​")],-1)),i("p",null,[s[2]||(s[2]=a("Spatial joins are ")),s[3]||(s[3]=i("a",{href:"https://www.geeksforgeeks.org/sql-join-set-1-inner-left-right-and-full-joins/",target:"_blank",rel:"noreferrer"},"table joins",-1)),s[4]||(s[4]=a(" which are based not on equality, but on some predicate ")),i("mjx-container",E,[(h(),t("svg",d,s[0]||(s[0]=[n('',1)]))),s[1]||(s[1]=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mi",null,"p"),i("mo",{stretchy:"false"},"("),i("mi",null,"x"),i("mo",null,","),i("mi",null,"y"),i("mo",{stretchy:"false"},")")])],-1))]),s[5]||(s[5]=a(", which takes two geometries, and returns a value of either ")),s[6]||(s[6]=i("code",null,"true",-1)),s[7]||(s[7]=a(" or ")),s[8]||(s[8]=i("code",null,"false",-1)),s[9]||(s[9]=a(". For geometries, the ")),s[10]||(s[10]=i("a",{href:"https://en.wikipedia.org/wiki/DE-9IM",target:"_blank",rel:"noreferrer"},[i("code",null,"DE-9IM")],-1)),s[11]||(s[11]=a(" spatial relationship model is used to determine the spatial relationship between two geometries."))]),s[13]||(s[13]=n(`

Spatial joins can be done between any geometry types (from geometrycollections to points), just as geometrical predicates can be evaluated on any geometries.

In this tutorial, we will show how to perform a spatial join on first a toy dataset and then two Natural Earth datasets, to show how this can be used in the real world.

In order to perform the spatial join, we use FlexiJoins.jl to perform the join, specifically using its by_pred joining method. This allows the user to specify a predicate in the following manner:

julia
[inner/left/right/outer/...]join((table1, table1),
     by_pred(:table1_column, predicate_function, :table2_column) # & add other conditions here
 )

We have enabled the use of all of GeometryOps' boolean comparisons here. These are:

julia
GO.contains, GO.within, GO.intersects, GO.touches, GO.crosses, GO.disjoint, GO.overlaps, GO.covers, GO.coveredby, GO.equals

Tip

Always place the dataframe with more complex geometries second, as that is the one which will be sorted into a tree.

Simple example

This example demonstrates how to perform a spatial join between two datasets: a set of polygons and a set of randomly generated points.

The polygons are represented as a DataFrame with geometries and colors, while the points are stored in a separate DataFrame.

The spatial join is performed using the contains predicate from GeometryOps, which checks if each point is contained within any of the polygons. The resulting joined DataFrame is then used to plot the points, colored according to the containing polygon.

First, we generate our data. We create two triangle polygons which, together, span the rectangle (0, 0, 1, 1), and a set of points which are randomly distributed within this rectangle.

julia
import GeoInterface as GI, GeometryOps as GO
 using FlexiJoins, DataFrames
diff --git a/dev/assets/xhjkqlp.CZy9YIUA.png b/dev/assets/ucnshtv.CZy9YIUA.png
similarity index 100%
rename from dev/assets/xhjkqlp.CZy9YIUA.png
rename to dev/assets/ucnshtv.CZy9YIUA.png
diff --git a/dev/assets/udsihcc.DaovVbE6.png b/dev/assets/vdymleu.DaovVbE6.png
similarity index 100%
rename from dev/assets/udsihcc.DaovVbE6.png
rename to dev/assets/vdymleu.DaovVbE6.png
diff --git a/dev/assets/vnpjlew._p8xhozb.png b/dev/assets/vnpjlew._p8xhozb.png
new file mode 100644
index 0000000000000000000000000000000000000000..f689c045634bd90b4ed8e0cd8b65c4193b2e3c7b
GIT binary patch
literal 210785
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
@aI?Gs$vpr9 zel=%_^-@!d-Mbzu$I{bNF1C0HgC#cb5<;^Z&dKw{n#YLEH*B=bpZC1YF*^{lYg4mM zlrAXhcvl=Bp%sWKvJhIN^rg6+rd= z_SSYL>xiCIrVVBGwZqZ}hq^8Ucd;Jrg;_(zxL-G1S`pI9r&im;V8Gz{YQq_ggkZ1A z@C@V}*8UVTJ`RFDJ5^-I*2eLl%SoW2cp*BgIZ#A}d1Msvy8I`dA2==iY;~QSndisJ zr$7q3zBF^QUez9q++dhivLCy1W+!aDq?pdKlVl0%-W{{r4lxD^?l=;^p=yN)sSl?DrDnLN^FwWLrG=FO||n4*T_HSU!X(uO;a zM{9K=+=n6LflW6>xB?G@*>kv1N&(=|r-A=ZYxsDl+BSIZsU3sMW@2kJr3}JOTEJ&C|wqsnsZCc#eD4OJL;O!9eLo_Hwx3h8jH0LSk{I^Ay zARnv5#v9@3d-1xAex}8i=$cc1L3YtL7+BnpfmA)IzUV-wHddjv?GNIaV$0#10<~cPnfKb`sGy! zE-$)U#~Dee+3yK;v*n75@yno_phPB1Y(Q;b2I?TN0!2{(4WL(SHn&(elMnM_5sG( z3MEwCE@FlK2;VBP`_5-9x8zS^_Q5%4pTH-0-;Q^_CYV0$wPKF`SdB}pFEoUVH?Im3pl%zd)RYbB?iu!btVE9Y zGETrk6k@dMhliujY{+v62kq1Z7c>XaUAJE>S4}+?7RfUF)0i|}p^avEr_`g0k5TG+ z0NP`~JC7W=HTddw6LV~?S?2Z?X!?qtY2u^Mzf%dToc40BiKD)ZSTzFkGoV0m`~4?x zrM9dRIm71H-chGLs$tx?ucq!-KvS13V-e7jCZfclC|9B<=}DpvVTEX<#6^nw4cCx_g2Zd`NFHA zwG?a2Z&D=`igc;nc$s^L_Fk<+i(u}LwD{v7ng-iygGG;P)H^FZIzEC7q_QBu-DhW*b% z!blyJR0vo?du|g8Y-HX8;Kfz?UT#{ldOPp@hwFErV%j}HBL`4mdI3=ffFsB3!3Ua% z%Zat};QAKwAaj*HZC5A_ey16&fk!=8-4%+i=R85VOx=(a69cC5RYb64?oyT$S8O;U zQhsib$`~Pt0+eN+8O&|YhYsoG3LCH(Dw`uF`&-#@n!*z-k4&p-KGNrL4b`_!j!VEO z_!UI*Yw$cbX-gx~u)Bws@KGM`Sst$~1hsGU!9$WDfO7`)N$g62H+lZ=7zYjF-7ruk z8};J?&3G^0LOmSKxiOp=7P@ME!R4%arSzf`ghQn2@U>j=OMSqN=Vd!Q()!Hrc_t-Z zCKgtxO({rIcU0Ou51nF+n8&5oIc)y-1(5rtseh(U&+4Y+K43#@0!)T-quW-t@K1~@ z2nN$!yO`^Y7H)Mll?Ex^Q*?j$ZNaco9;>`~D6wK!eNXodMtDB-cZ~OD9U=kG#scCp zqf;CR$m+na$Qq|=JuE!v`s7f_Qw7YA#EY<K21;w z-H*yzyhE0?@)Pw7KzLSBzGuoEkBH{+#}%FmGAg6Qaf4TY{HP7q>)3bNkQto^x_I62 zX$TMl8?-f?9$#aWc5JD(o#QpUR_=h81Nsp0tyqk4;HP4N-b$Nx!k z4MV_$0W=NR&!a|Rhet>?}R=>i#-xyrr!ZsC=03MYjVe6$vy_G4qlqdwYuC zJ8n8$S{E^3&7Gf2Jr+(b1%rde&-YnzU6EPHR_CmBnMQg&I3(410f$Z6#7_lYM z175gT5%5Xbx5gp}Rn7HO#dV5A=*BUnuD?I1P<{)}-Uc|c{-DZpGq+pk{ZM|QODG*( zNOG@r+x`3HdeVZfW(iMCZ529q2@Ff^Gs3}k!IPztFApaVSnzdIp5iPmw*)41rgM7r z!jCXHn}Q!wc$@6~2)FW{aW>z3>PLDra5TacT<$Q2W?Z&s*nS5Mo=|~T0WD%xe_hS| zWSrx{5`}cv*@Lu%R>BpS_?cS8$*vxIHvTikQQVG;6Q!E=U&fEQH(R#)CLshO z&d!^&{y1$pAvXS&gk_#$K*Fo$z4Ul%`6-eyEpX@omgDCCRD6HOd?pc=LFy5QOu`nQ z;H&S4&96+ZS2M$i#A&i-&Lyxo&vW=JA1`*l*(j-_X1>o>3C$Fc+rV%@C~$f`mSBQ{R+@T2mVro5`MSMd*Zth1I~d`O zTv!2V{!jZ?IsT@QNKjsemb;Fqq`G-KU{e9$wp!&gO~Lg0WO3SOxF=GaFp%-B_Xq!4 zlbZtn{3O$Xb9!mz>^R*wSkCKn_{YFN9$B7VDcmW0?*C)Uo9F9{qZh)-GQ zE<7lVItGksgKSkmPxsB`5qQ4Bs(#pQD<$3o!Fair!lqzaR?5D-i~gsVM*3*3j3 zizm0;JDV%U3%lK3R2H`0m^Q81V}SDLZsWU80{@o|EXssoKG_rut1qH6HG&Rgz_);2 zq%Z!%o82+of(#;{SAR&!_yHRyoBSh;@S&wF)?B|wigqE)^(-2mGe$i-#JPm}?@*jq zuh9(Xi-R*b`sz9yaGVLR{(;Mv8pQo^2CZN?YY>~RykX;bY5mHlE=&XcY8Z$E?ykcT z7yBvvpqEAXeb-=`f3!Kp!aS@{DeK|9xSG%J%RtdG_D7Pk;PPvFL{mO@QHN(sn(O8SYDp|A^1 z--0iVur=lar+iZKT@`yIxX>Jg4?TDjJbjlNc}n}7CZ=AzDrvT4P9Z-re-yta7noxW zeOx343=y{fr3=0m-aH@lP671=44(Z++Q(pT1SIX@^O^=a;%WFKl;WuOya4I%dZnDl=P*nD`6F@`(KSCI z;i^{|*q6JKfa>U;?Zb{JVz-e*a~Ynf`@a^W1;yieb0ApJA2K&hTL%?dxu`HeV;xUy zJ`M1?yk|h2H4fZlXchQbdVm8JQl*y|r(ngj+ydADb(6`QD4NS#*^j^j5-KJi@qax@@vr@9Hbt}#n=q%VusW_&o|H>YFEybVMnC{jI7Swbo+;Zb z{Myt*c4?A#5^9C-buu1>gCL1YqsR$K!|EB}zGUC`(U`HMch*IOE<=8QP%>&(zp`LfU@PIz1=I)1pSB$s zf5%6a1n$y8&l-{8%u7~E24Ghk7m8Tj&&dW8Alz6b5S6Khr%qDT$(}?}qHqzPwR~6y zWAwERo7y+v_7V{Fbo=NCL=q2*?y&QMjqHtPzH4ce%ZSl2eF_);LF9_@m+zbWq<&U* z&o1kV4JZGr5MG8Bnbr#Za({|3kZjf)y8S_bmtAiu3JXu!$leIgW$UV9uhcR-&9qfQ z0{76ID=~JWuk|D9RrH(TuSVYBhUq_PZcj?WI;Z=P9zF}!!JpRyJ!CgTPHET>pBTkL_5^5lc_B z!cw*a+7oA}B<~faBsZHN#OGI30U-;sX{FON0hlrTp`%uJ*xvVtAX680UM~i%>fhNnm zQcH4e=c|sTzl$VDiR6m4NeD1sv!MZ1AV^GV{FGN+Lc=PBvRCSnSg}GONMjRi7qCzw z$iu=f@(QypZP)g?(1Zos3l>v%8r2iWnnVlfJ)+=+*5@hCx$s<$leh4PP4AME=gbX5*&S_TEwHs~t7_!J-b{3D_hiup znkD{4zwJ142m?qGhG($lm6wmcsoI@!tYga^r`owns3HR~-dT*{3*IdX>7Z$LJNtl- zlZb8@L^Cy~SM$nN_42m%MrLx9O*M}8*)PfM?$~li!^vady2S&wEhqI!rg2yLUsQ9! z&i${tq1+7_j|=(WQisnG^!h?ra7rR!_Qpl+GgbEuDI+3dJ~u%)ULd-#kOcp^07D7B zER*>X4d)2%p;#fQC=ws z_?)&bejrVFD#{d5PvL5X*3lJcOs<1#PvhjDBeSxXBEkialbL7M4Y5aF9aVS)@QZkO z=TDk;cbs63=MH|O05^M-Tm4W9JY5QFC2TmtfjTxihqla(h&bBXDmKE>7;#NldcD57 zq;4YH`XGlyS+1=@Oq-Gl0TKb--tu=;u+q@04)TXbW!o2b=t@Q%fTD`9mL5()ryJ7c zH0h5XlT`LOuvA$1dr0Nlf6otN!0I{4dnXudMm;eveZR|rt-M@=9^gGNn( z%R8C_#u{U0?`+JdGbd7@sK$!EXRo2`{459b0(VgREVwU32hR18HXw8#k4K(~!6_d(^>rr;Y2prTTeg zOT~vxAHM22peBwHPqr?GY5+tbhG2omQNly%0O!+&HkaX&p z@$=`_+ZFN70Ufp1;=XstYV+n1M zcsM(TOqV$;t_;+n8}7sy5fy2NqCS3=1`GNUdDX*;lf}z;H(sY@PoLmGfI#v8J#rJL zx`+1!hdLWyG1~#)7~!wZm~ZWmgUI;3VM@+4so*MVI9@gn`;w2~li=&-I|z1owxp#s zj`P}BX)5mXKuEH6a?AG`0GGjE5@2`l{h{AWQ)*}NL&kMCStB~exs>jt0+?)myHZ`o zwlTZ)q`LXxXO+S|CQ_-8elz;ZLan9|cX0EK$my@=Oq9%i!`g?I`gO{M1jj5GM-~!b z-*s2IUPW`^u`0mdq`w9w_ScloN+Y>zcb^kOQIKUA4EjHOPg(s?X88k@85;xAb{myvM z;z}=X@h|z>9nASUm;nm*B+HHjcya%7e(G1`=(#LTmg$!ZknWdrMv;iQaT*ZH8t-j% z>=r*+JywxJ;v8q>XC~eDCiNrNtOqQ4a~_w*5lV&)(CPYpC-AE7HW^7H1(vj9AP~Iv z2+>j_b`prl`}+vM0jzt-H8vKuQW7t8=@S?W_;Oz}2mK4hv~@9YohedC7Q7Q(?$|T- zSVsOZiWEbG_2C84MDC3rcsW?}LED-c%)L}HdEW`O)k5_0bD?>7-f5?~?albL(b0r- z{T!{lo9aBgswcRqI6H;lBGn27v7QBE)2I)(UUR;GOD~~;rn_6l=LHYKkwy*s6Au$4 zRC2q?JV<8|&0xq*=*t?C7#z&30e?LB#V(HcFTh+3N@RvW^Pg0Gl; z2o)1x>m2O%9g%KkhJnsyM%9=|`;NU>xX9HBlRJD?!jD?Gj?I7K;V^&CorPpsCp~t8 zEq_d7X%2(nUX@`{todriZj0C;RL6j zAs#RSMoQ;(ZW#503Po0|5l#xu!Lvj&<5rl z5(0*{>i_m{EFUSl@1B22oxOQ$W5y1tpSSmFdkV6U6WL8%R5}MAu85qII-G6$4FM!y`hd`Q2nPZ`<1tX5dO)%vjsyQHLF@8=0M zj+=nixcKgFLmFixO-Mu$`7R!UG6X2x(Ovu;Douw<@fF0Nx0kGTAnqs?87tF@nWSQf zR^;g1m+pzkfXGpnvpq~IA>nx4xOne=<&r>WujffgHzAIOyuoYHv5?cr`KP z4xLvN@|k7s=OPCm&e$?}#1lAhcH&}_0!5Ps)v|Icw@Pi?QXl)iF`{w{XP9~@MzfAW z0rGubiuj38@fSYY0_%l%>KI^a{N=oG`^n zBIDD2^I?k!jc8bGx=}QoJr{J?jYskYS0A}m8&j5ZT8omg1PVO&T5Za?o0A21FME&- zc|2;!q>OJ&q~H~^uoT1`)Gf1lR~B}YC@ukMf)rvL&d>mEjk%r>g_kqEKv)GYJo z&yjHy*Nqp17hJDcVl|bz=MV0C6l^^@w1jWo9>?gvm{U04!glVS-l_HKm^o?{Z2O!h z31Ss>K0lG0W$(Vxryo&sMyRE)lJk10nLn@P{x!PA%p9A>l*}k6OI6@t*BYUiTVOtC;`!)L`R3&wajD)# zTR_A2Dl`$JCZSH3x|+r`gDp!<@{thf`4_4k@(J!>vB>ZylFu3!sEZ7Q$`;z}^yRAz zTE8MP8w2BAN0A`5HrrTKImgTzfM1(G{R0FlT(k@*sd$UB5x5G)r%j#+OxNq;VhSi) z8LtBvrf=%*$|T_fyz*ED-C-w1}O(Nicn(J?9K zulR;!zsob~O%C1jLQn-%Ksc>o-3Ve=t2`r?ln`Rr`n94Nb_2|h8qlv_)lsplhRzXA zb#9Rd{UZNWFbG-lHKGeC{a9!EP&c)47*?1u6s69K46cMX_;niNri7c1Gd9p@w? zKTQL7=KJVL$#IC;y|*mnesby(kb{cn0#d1oxe@tDT)ZsEA)-x~HY`~IrfOgk_wq@m zvE*y=15xpu+DHplqm>@jq!;jJ{d{RkHCe9HuaZ;yayCeB(y!xdZ_*DhYqo$(3&;ZYk4U&8Q{D`qJC@J9JVa7PiodJ%0={zgTMWk z!Jda1P%T9g7n!C26dIZ0WE~^j#t0(#D3olOSr%Xdx^c|QeYd)64*k?5W9{{-@LJZ! zS#i(VVW9aKB-HuMr-IwPZZ>D&l4@gT39Ij-C2HZ>e}6}9kqg@^65|nXxq^YEIN;8@ zdeGMX&|}WIzj%smYnaM4HinJ(?@{Kuxy5psn+I}pZJBWDb?;yb^@^427vyJYizE1E zx~5N``W7{L_c?af+Plao((W&8{D@m(v=Wzk*nG>QJiSIo{)?%Y`WxMV;~8bJ=l~%> zc~*eElQfN_!|^BlW9zR?&{;@m2)?2_D%`KU8%f7e?pxu|d@93*^7PA7c=e>Z1ept18CZ+Nh-IqZJ&8 zG?wH~ePICi5`SN)Nm-ofP=mUJ0auiP9DCRGA zpDo_jCW`MjY56?HpfB)k{3KkZthUb7`q>d*fv-g|Arl zqO;siKiRhRvf5MnXCNqjFW|zL1`#&)*KGoe>oougT}ls= z58|rA(8~i?Urm7C?a?`qjQl!{mklaapEcRAn^!Nst=ZGJ8vQGy^xyk^lsmx71*%8; zme~Kj{ftmGsZlnZtEz7=R0*dZBqxEYWWx>;frk;Q72VC=|IM~#EbRz>dSwDN>vC!H zrObkZF$fp880psA!q_;98@nK~>k1qM@VVibVQH>qQnV{cxUgp6TmeJ!L|d1R#4LcG_Lug6#6*$9_e$L2@~iSZ{EP|Jo`neR z&PS8!tpe_>aco(~>TmwV_s(O6yZGV1Vh*a`d~8K!nD@^P?_S1l*}+J)k(6!#*7CEQ z?N|bq;z=HUZqRIq@Nqv;d*wD1A4%!vZpBpq8xq@VD>jl*!@zWrqb8V%NtXsl|U#UX*5Dx|sY~eO~FWp9_ zRQ^Aj&N;5n|9$)KY};72jm2f#b}g-1UUtj2ZM&9j+t{*O-Pbpf`_!uEt@8{&jIIZ3_;bj zRc$54Ut2M@3FGcE33aHTpG{UjeY1VJSmLS}J-UtH-B8h%sY`4J=jGRe%}P&ubnvqj ze?)g_-7V*{s5u5c!YBiG4mTLi2Ru}=w78@h# zRv$_7*Q?s7FYW-0ry54P9SQ5cfrs*!>m{KD6w4rYF`rUY1?BuNFV`&=SEwM64RK~k z2>*?e0{EU3E-vm7$^U3_av+_=YkH%2#4Y3whQT;*7)KB z{A9|oD}dZsv$io?YpcgEX0=GWSYmn1jgKV8)WMA^g%fd>XkDSg&SPv)0U83-xKG~i zGw&F%eVj#{eQulta}97&Knak}Y5*9HV-p#&HvQh>Q~QfoqM7kIaY-N7N+{va_TA#m zY@B?%gmm5h3Wc1!Koq=+2+tSJmEZjX#Hh7OMLblJS;{3@k_c|03CZ#ZM9t|e>Q5v< zGYKPT?y6=h9G*w{hX7>MvwtLM7J@P>s)>;ikL3SeVP{^#@T6&-x-lUq_0L-moP#92 zpPJ}hK7$az+t6K{6Y?4*{u{P*+Uw6AvCJE?^_c?)fX(9@0i z`SHxH?S-CAe6AKt(s;b%iKp99h>coNlCiqKcCn=osBP*kDGUh5rP?}m=~K3rTbT>X zVl&5kx@>6qWsZ-WiEE_DOAL*X;U>pf6DD+!&_NlYR~UgaUUy*wgpfc;mrrnM`U?VS zoCizOw-Q?gY=wE;8x>(9FqVrS&S-;T*V?^_ka)Pb7GVGG@VFy9Cis9POyIl*fm;F9 z&sXFL_}7KUiR`5srG`%tEtb+2M_VOlh(snL8ckMg1c?H`n~5CSROr~I zK5~>bk2oxMy>VBa+RsYS_1@BZXrIx}R}=2G+q})1R3$P*%{6yE{919Q_QoQa+_3l7 z84r_zJn`~}@K=OYuG5muOyq7!^i`ViTC^`B$=NRbC*KPADH-`Ka1AOF-BLD_`X}Xe z;ZPYQgBMvmP)R6H2CsFYX1_yi5Du_IVvD zpn&v>kCK-CrSkT+Cr4-PN?C+4Zg-9#-Col=Uu7ks^I>6Z*!lY}PIo{EBnnJNj)7A@ zA*J8|;>}<^OmZc@3qOCQMaOnZ|9;5}EM6#qK2S|mET*$JAOPYTur}?2M)WOhl5Acu znq5vYyQ&C;*n_shBmE=O^PHfV(5ZIDrw&4iECfzOz_HcBjoUC+L^^nAp_=$;#Mee= zT~-*;RWxCt7-kr*e&PV`miT|iFXYbEE0;Tm14$Ma#KWwTVx5{VAebf7$XGzR^b%cd ztM^cwsqLh$e_xIhjAhVgPwDQPufLJph(UpF5B!krwb<6v#$mGhVGK^G_>&AXx-~Oy zOZnK@yMRD|k)9d5gKtP0BWw=xOUKL5a9O6b#W+yNL7}e#$F6FJAC%pcV*O2$cb`j^ zF(n}kkds*Gm1WLkqjcP-h>{R4hy#XlHxPNMdiPfTT>9J*DKSCx48R_6!iZ(iua->qEi@c$ql&``=Xf#6rmM+}2>S+=N9+q54hA z$aNZYM@P%jJO4%SI}LY*ph==m*#h1VccG>G%0wV?2FX5RUa3koW<4*6<;>ZaV*$e( zhdA<^sf0aPm*gRD`-r!LxDef!g;?4f%z~&@6l%hu`-ila$M)TPi;dl&jvK$XY8v!> zzr>ww*Pw^XIH#THG1&YqTC}=dK*M4DHCR`0g}R~2vs}aG1tKQsWj-^yf{8swC)3M< zTRtWw{yprgf#CkQr_3xzXG0udXftCvXcoc^eD$L!{}%1uKn1x*t$3w$lrh4_lX&PVI)*&4bJ2v*b>&!VxI(?$HpxbjH1`qU zD4HXfQ=5YRSxZG7P21O|sVPz8{M02^C2fNU>e$&?s=$B`nY8byQB!!qq+ZZ`Pp~F6 zzJ-G(9Nz^2*g}iWuxbhsuNa+{5W7O9x-ya8a>ExG^JQXw=Ji+KUSnQ-jXHMFATHh4 z$=AB|Ego+|(3o7W@Kp^_sP?HY6QgAM=spV-5OOXN#O`vJ)F-Zelbcr$xbHS_GI>sH z9;Vc9K2}G_UAWovdxF?c)yTA|>@v_H-w|%F&4KU95cx5Ina2v3z==07G6;9Tw#)wV z-hG#(dMd`hVcz21uJtmi^6g)KY>_vjLCTgGk>j!hr$kX*!nDP7o$N!`d$p#QuBF~o z%S$J4HRVi2^fPEQ5s8^_(yr{lse=6@SZo%vdxXeg-I!+hTYzm~={~qRc^rOxdV(oz z^Oi}oh*`4;@FBZ~Cnah0N%Q^QzEFPsnd|QV?3B5%lMAzjTeLD~8t8cA>g1zA$EOdq z&gj@1!RQM-l;M(GUibz_QpgXc&}iDL5fI_KNb3!1W^sTQ{LEgP&-e>#<|>OSl0yA9 zG!Ex}4Yq104#}BVX`eJc;nl0co62B+=iN}RBg21{d29Y-tK{Z_i(wVEX)URDSIh6s z_o<)f!UTUlfedxqY2bAsYdx(G@mAiA3o$ic!2W<#HIl&wgA!>yPERZ;PTFHjvTM_I{+OWnY{Cc2N}p_Q1s7F;$FM?Q9rM40g5G1Y>Rt33&heS zj=>jwu^ecQMG{`~4)gZOQXzVkk2Ah~c8js*x1$1vFdjM5nT-M08ZfWjH)7tu?975=KC0ya|8#bEzPe`M-b*pUMfhs57O|5khdGnj=@Doz+rqmb)f zuKBuT$O!*mmXNAXfy!t>Ha|#%hq=GgDip|=MYIVo6FR}XOV7EAnyG8}4Hu-2R`$cDB;`n-E8p$xxom9xEzDKML{7E;V*z-pn_fo8E+B^ttzLa~v9sdeH^Tpo z#Uv+dXF=M6-!2*je=>Dg(Bq@c<1Lli);0H?6)`PrNN|mwg4ku$^fMdj_-xomy7n(m z+PiW%L8FmUw3QY{KM4xKk>|(mivPb7-$`N;CxTZG=5&-C1WC>3x;l}FvSr>h;cKb- z*$uK zYfHnj!#!G1JTpx)okv_$Uh|COi#6Am3uw$w`4!OAD|+yg$O~2|*Q?^N*)$>M^-tlU z^6{iFf28hbIy8J zxAo>PyA9<(BG_MhUh;H$l>;Fk!xmlpR}Opz{BYEU1DSj^M_G+H0$1(BLJGENA0r`2>Y)qM% z%UFfO@v#$8A04!Yl zPXosXm_zomeRc#yFJ9+yc;=Rxy&rv_AJGclYnm!f5DVa~T|*+{jV#zCZ5+Yj2;P;! zA8~T^HE^9x!3Y?WKS#sv<$x#j|Il@w_3<&TFayWl$m;ogNZLC}>%p(?H#*9`FI(Iv z<`@Fs#V@I0k?4Zj#yHu(^W(kN#xbBIbT?UVBx+5O6+$f2=)cDxIf}E@{dy%nyD4wvHi7{8Dp{Vw2E z=`fPX)QH%kuS)SAG=3CR3F%=t$8OfQ6~s;LAIwUF@HnQUS5Jti z6c3O)fiLVpx*rcnoaW`|js$R5C|NfaKqZ7$G|-@f10stt{vd&iqR>xG?MtRyb&1SN zZw`gJ-Y+}Tw8d)xfg1PAFwe}02YM7|{Jrfhh_U@0K()w9HVH^M$d$9$egpoBn(s+- z2F6^&_UYwaFmo;GXKM2UarYdCAOLq%d1$3dj=UX5Cb;K$`#AyF*FhZRtX*yu{GVqr zaC@Js-ec$^DvqpJ3Laax&dygji!)AcB>ZK}BV3%}aiS_@q$bq3BtW07%`sKC2u{dr zj2%dbrm$qE$7%O|#$Z;55mm{_fJ42N;cATSi zP)1QhO&!GT80UzH(vbfybm)QplS1?zSCw|{n@)hKLJ4Kg>>kQ;kh;^^nP2E!7fWz> zlenFz@h?zD1*2NUat6^G;j|xpVmPo12JY!YA2QYeXLpyuLBG)UOY_8kLbI&HUjX2ZL0W; z_dc{#12KSk9kw%v_%q)fdtky>lo)uZB6L8G8gwts*wyyK?BHfYI7gaGh~NuH;vkTaN+>aO$U)G*4gEIc);Ut!A83WU z-M5xNB%bnjRF>7$(fg#*hO{9zfqrYxAUDFv&gQ!t!=gwjN0GzM&$|JCH zD8BXI&btVR@93Js2Di~r-p4MEqZhrHmO$%6dRz8SB3~JepyeXLk0=Ca^%!w@7fO#s z4<>Rt^VAa()eZ>JYrScWir5|i>d&gO7F7T@9Z;~;Ab8`}KY!ke;u8T4Fd+z;LEwN{ z3p5&lQTA)UV}(offx!`6sBNk6f&*CQgz!JYizSDLyTwZ1b4g>=t}IbO)?A_iU{6slFZoqr$>F&4jNWaW^s^T zQeNlx6B*A4bfH}QPXf=lEX&4P9{;Ro+`GE?wN|4^` zXElU(YUR6>8Bq;XbsF@N6fCFVEX(NZ&25GZ{z|n%m6#u5Nue)2OqkYT3J7J148wI3 z5Rjt9doxZ58$a!e?#KOzZkL!~Jf8 zaa+X+sbm3nXNT%aug1fjZlwZG0?syo$WGX3**1Qa;U%#AX+j_hlK-iokC8J zjZaL}AS-cl%CARF|4fRSZxDblF9@|@*%HSr#UO7nKrPl4Z4o$md`PNM6!me=;qE{c zta-rjG=T~n$8)dL+ zjs{a)q}>$pgZPIZqDXn73|@;@VA^mr%y@(Iazy-z!Fa2Jab%86wt!} za7j)*P}RC|UmnTP3NJzLer52)H0q_>U!|m9>oSSrRSLT}hZ29MG3s}VE zpB#;(fDOE3_d^S0^{w~FxYb%CuE<`&!x^<1_u8MJm7x@~Pg(|(ZPNi-%wZ@@m;rY{ z{r6Mw>A;`^_!dd%G}6<(%u|^s7xQMcK0A<$vv2SuE$E;hZgTcmkfmODg22~Gg*}m15}9vox;mzMybo*JS(>*?y@5c7tBq66~A%(@{?7zJRdQ-Qrb|{ zVHgrC=A|vwHoAQd$#m-)#&Z63*ttQ@RVG^XlYZPh?^yrkLW6u`0}&~?V$P-H3v+6x z*)b=)rnc2H#`7+%^_`$dGa?Nb2eo$0spg+j(w z*gm|~=L3`s)Q6KVooa`ZEs~Zl-a-|@gRfUEIvdB(;JsqK#{2?YpU?AxCfX!Di1AW^ zZUHB>t6OZVJO`s3=@tZGMVna8qd;nCQ{BA{xBQ!NU&KcNH3^r5BKX zlH&4Txc7oFVs|cSnJ~bBs+(cR2Y)>2<}Z|Aa;4Yl|r?~aifxj?dw}Z|m`qOz;9CCYKb{T5e z!VIo#z2u}at>ou0S3Hoty=KE2Gjjz4?!RNs3BTwQsR`AQ3fNTR2=u<{iG|&14&^nN zAV<^O`D0#b&_J}l$CCM1I06M}$={in-li|Jx|D=Dc;v}@SsXDhOgQ;i?R>fx%ct<4 z{{~Dzf$!v7yv63BCio&DYx(iq9mWqsTaT*Y!E9AX=0kaXi!mk}m;g>*3Pir5SmblN zu}{)aS?{ADB$U{;TRqEpU$GMhih|+4DKA|gI&C7qp09PCBy3)878>0m+lC#SV8CU% zb9M6M4psFYnc~Nw?3w}CS!KYyE}PduEOv73xYiRKtm(5>fl{#70q{Ubg0ErI+C#ki z-X!{W!6t4z`-uNaC1oxZ8jch+%H+K*k0HSz7DQ78jvk}cuS%c~+B8W{$!=)@`Sfc! zv`Gk=Qd5iW+E=}VI`JQwv4s<~&baNF3x=^%pc4U9<*1I7+}o;1xG0n3ljjaQ4@rap zvxJ~LYT0?y=W93UI0f?exwk>4j1$i>D^#-c-JZ`cA&e@QB0wLb&w!+5w1mc0wee(x(7*o5}BO5~>K} zMV;NMMLw~Sxmk^cp86VQ**R{WLNCJV10Qlm5C0Jh$pehMClf(F*AplwG~8SP6R?pM z1W6}bLJ{ta$UdEszm$3qi7!IAC5@xp&L82mD_zS&{r@hoH`fkCrO5bg1cq;^wK^qt z{RT?Y{|rKO$vW|FAJsN3!db5C2^)4-am8-kt3x=*M+5 zmMqm**6)IfP0N?_isu=Ju5}926Fr@!0o?k0ZtD#E!%aSJ6|tm%M+uk_?Triu8!k$2 z(YBU?UCDH)q@QsPQh?@7srrk6&iDgqLAX%>)R}hYRBZah<*@;9ivS_qUR3W;Mu!BF z`R-G+MP-zyNp~gvr5CN(^0}B$i^MpXCHhN+=u-__;a+boj2@)ftq5TXm$EL%E$zA# zr;t#KTqO9mO5CL$y$+P%K2eh#n2H41D@0FN|6?+C{@JREQ0h$C_ORCAM{~wNx2+wd z-$=|C?67ng#l+m!-sLKtVm6nJ2_K-Ql@(G)E&g>B?988&2$Mj3ohNE`2}D z#w)EtI|u}x+Uu{(;k%&j-3QRl=@TJ7A<9+rU?BWFE1=q{95_eK1r&CLv5{-^pv_|} zmsW2suNmtOhi!L?$2C4S4;hO;K_tbi=WV}ds&^jrg+;st7T7Nux0|d6#aBZ3ceXcX zTY-|{tR5h&fP;HeO}T?6X7R|a;&dSIkM?#K7bOx%VS3EACEenUH^EM7T8NR|Z%Gji z=Hc{9&Z!;ZcXFU+B(@W}I;j6fO^aBxRUA&BIX2TGd&Rt-`~5|i(Rg4J>I9`x$Ew5$ zJX%&diCk(Q{1UfuMd|x17zC{*(vhkY`GtAg= zCu;pYeCdG*%22a%p~VdP-e*|t-vlEGo)o7 zc*IbV$^Sb^dSCR1f4i+~TcQaVgc#evKgKEuAkLVWD?O?kXg30)(>Kaqj3<6~?q59? z%m?QH2|+DA2@>i%C-rHsM9l(DCcgF9v??Tq&3{&7ii>Hx3Sj%3)n67V7p=jS#bZNQ zJ2$rhJL7mEVASC62w>#)&{Ye3q8C2sQd6^F0p%VbPOK!a?YR(zL z`a6Sj?-9v(K2_{2OC%+kKn&)~k3K^@rx3X;;&TY$D5rER|QF7hce8s zc~Q7&57JFfO|4>3+*Ca*3xGp}ml(1(C`7LkE&>4KpTCkSYa9+(h^1=D=s7(mOs?yU ziP>`e!&S|_a@300y|iQDymjF{P6~df^F>zod9{B?OK5k?pVl^jKAFJ99Y|lql%{?* z?Ugz0da~o(-`}o=i9HM=OVs$uGEg3|^7pZn+PLk!0%u`xICfvK@_rk$eZTVMyz7`n zW+#5|Pep1{am_?T_gHB_`}WG(-wW@OWcf!gK8Bd0N~QRA=O9-k8qmmJ_frLWZ^Muj zz6OON>?UvUUdI0*`}4mGE6`L5?7duRNWS1MXpz&quq&0W-K}cXJgkEJhHO>8t%1U8 z`!2Urs_w(c2DqE~3asdU#Rum7=wWw!Cf7|#{%&Kz6pMA6M-r_>NO&O$H#B3;?Y<85 zN^i%81IN4+cF){qGo3nyovzL&MMl61FcDaR%}UZoJ>5b_5G>Fk0db^7Cu$-MZA>|} zoXe{Cseu6RFk>?0i6chGX8{TdEn^??%?g-|#GqRIQQSzyLmwZl6s)I>CjGr(*kaQX z7te_wED&(m$`qz?hMP#7eoD@C;)u0iB>%dxQS1h}E%hH()w;Y;!XgJ$uCuZMfL)Hgug71u>_96c&W9!D%K#2s4vl0$?p|Rkk}mdu1f!X08pxk@ zV<|92+E`4czHkHxk;%W*sIDJVqpGeXLqa*re<1Ke{WRQ+9Z&6mPS2QWn*D3g z&fkBL?`z<~0#2kmUz>1s8Hbn~ecTr(CX5xKV{nIa&h3a@=dMBkv56TC=tgh_G=ivg zw15n{GY9_8`8_22uP)}&_lRiOZ&JJqM;y*fBp^9r9T8{f*p6{Y{cm;+=_VAg_r%M_ z`%kIsgQ7IL6lnFl3H$ZCTE#NL!Zoe)7H&^};fZ@xsu7a|8hU|QfDK)~mv_^f06q;+ zH~X2g6kn+GB_RaDWYKW|ibM^DjYp<3T9U6;yDY z)7%f%i-x@_suO3hq1IWjB@p1W8xoXt2zPVE!SxsJQPZ`yW%REePSCioDvC{s08eo> zS`~&Zw%x8Q3^FU-E9v22*qt29f9*Q?QhsMMP=PxC)qObpz^FPC2L z)g*TFCgnvCsHCQ|9FBSRvMazW$~X>fH+z9D0J0DF8RMSwk!-(e9)l5u{F-3k*i&pK z%!`Ul712!<8eoWf8Z9~pP$fc+7mfoG6(@p0&Rn__w%6X%uE)0&FPMCXZL`I+L!Vc`Qc|gn-)6v;_n5w+WURJnmW86s@;d`2A*-`x+lm-zK1piT8~^$EG3{ zXzKz={|eS2?evCO{rdPV9y1OgNGnId{0ZxV zZe~3g++w66P@CBKvtTE~9G`qzNY*xwQ&%zNSC0VU{hReHiJ@0l2_uj%nLBO#SJChl zYfxR;Z_B70QwG^2&gXT5<#{-*!4B)7nK6`vu<{b?H z6j5p!%OW-jzNC!vu?1JSl#EaL*%I`Ll5H&yMSqfwIHf{!4zX0<_2c&7Ae&E~FpQwVc#F6n1d0J=df;v^@&hp*AXtB9B#%Rpx7|br z#fqH%3)gsW<4l7DfP47P&a?$FM%3zx(%s3~xInh6*p&wyNv_ECCbQn2uatHx&5*=2 zh{|9?pmn+08&Y3?lb^iCq@Fl5vzgV~fB*pcC&2&8@Wp3B^La?KwXw!C3VFxUDOWoV zD|8jGc4dN@Oe^AX{Drx69-k>1F3`>|Z2>f`b^@FD3TjxORtk2qVZ5Ij6ZvP&WVN_V za)i}PS%h)09dWwnyaPDwFN-mYyN~ur80b>qqK*y@v(vW)hBJTawKvpK>^8vsP@;{; zORxMSk|^kW65#)G(F+lTV=aFR!cqq0&8;ZvPdj{>E3%hruM;c7baEHJ4?aCjvYxmZ zCy?;zU!B2L3I^3U!0?&NfgGWCgfZo}7c%*$H{yPbi}s9)zp;E(1`T8hKJnVKMU)HR z7kO|6RN`v#;Nj*YtIk;f>!q4DCT#a=*FT4pM|B8RadhIZQSG{vF%tR@xTn#FkNm~uxjzJ8qSSI`2LtC|5N8X*fV#oD|Gs-Fp8IeaHNc)vB z%*@Y5EtR(ryGjlyQ!R%fv>z$mNxZ!+_A9)DyCsT&iF2d zc0nh&nnTDH)8|0Bl`?Ez$799Ch1Zk`&xNuu}LeSaWc z>flxj&>}R;*r!HmWuA9y59+iY84RA4Zu>OGZ#=HfUlp@?nw-}y@vS$EfRGj zi)0vyl|>xxf9p&JpVewH0@b!0tDHKy%B#4bZj>;ss6A>N%Abz6Da}1tPkMNn^$fsi z0Ug6V#+F(pR{*<0CokURJH-P_A1Ng8`1B?DREK|3CvRzWLxKc;fHHzb%N-~UuYm7C z-?Sa*hw}|xB!Vrx2?iu5#py9kD5(6PU%QXL=VKrED!FppdyF~E7QO($%IofC>|)hn zgS9%?(>0ymaadW_H`H9hYrB9Cph5*8&l3DyAbke-m04M;Qa7{ohxbXI8J}Uf%@pO+ z6suhhS7&ASZTzPKv%n}!#L8d+@Avj+7dHcBPn6HamaQ7=XUJZHf`tGjkxPb)Rh7Fg ztR61-1k+@A9oi|V$lz1!*0gkJ)shOt;wFxtH>Lwx9GTxx z_*6SvTfP<@wPG6or-|F4M8H7&G4xlpDJO*#8P6IC)dHSUh!6;>z+yWruI%Iq4Vktb zF~T4>%YNLc9XJ`;=l*QtWOcW^HyZQU`n2H&pM8ntHyi5~N$OB;>* z7!gNfXbA}fVmXK&WJF;K_(&@7bKAG%H!@o~_ofv{i(F#4d_;$>gJn%3L(NCRQTAg< z6H_f|;bQbcuCo48E>+LQ`*-3lGa-I%N@}`Tu}U0PgVGX^KwP~>3E{X)A&w&o8_mzI z_@Cz4cU%QLJ*I=me+*Pg$*tFV9A?OB^wjSBB0v}q$B%;AvMKZGYDkQ zy-`2hdfrs27%bVMZR++p)e$Le$V@Ea+P=E7j}t@TOsTLU>K2H;Bd#z}>lvUR{dhq4 zW8G6%=P}Z;MvU);Kt`xaA*^^w25%K4`o<^*gOfWwKD&%nY7e*8;$JG#&k+JE3T_Nf z6Gxwu+CZTWw9#ZJDyJM`ZYn7ay(`g@kG@=prh}D~SfFScn9G_ePU`b@2Xm+7PXWSP zfrrA~yo9jL*GA714OW_w%rVSzVa(~6i9*VSi# zeX`(crwZQHSiB5?!DFKqCI6AvgarCb4$$nDw?EmQW`i)LXj`sp(6uLI zY0U(WNT5z)RxPQm%fuTPT!q5D3jH0uHQNUhv@_ATVf%%-$z{*%qg2mnhDFJI<}?dg zD0D15fl3@+n6*_U$@Q0j)iYy6DpfKNMx>pQOf>!%qQhPc>8Ova zMR#mJWn^Dw=ziV)vXLt)MNSm?cuM~n-vJq_7uWz>c=MP$2=&=40L@ddxtOtlo>n)sfFQXoi)Ap`+qc6cq9 zFZ4^E7uy#>^26S&v@5ECEQt4tL1rv+W3z{@l+jr?3^B8>cpVSiZR9H)1o}#W>kvt* zeBM`OQ-0(}9{cO~Z_5G{smQv2TZ;4SCEGO{^``WGNRy)WL!kvh_9u#vHL{Rd8;h!( zgzDtzdzh%K6>m*>HuPP%4LUsss|=ncM){9hL0V<22rBa4FTPl`M9SA&g$um*MU44& zY#x0Zz70;$iusbD5&4`{e8!5M)v%A@K*yknF?|K4a1Z%A=Ixi$caWp8hDe&|y|g9J zUflb&i2m>zo07sXQJqEIS!Wc-AW73%-9Y*z6yKG1gF(mkiT_uxQvvi}JDLDV-JJ-2 zz^C2k7vIBq9ieQ$W<0BuYKLw831o)3LL)E& zWu#Prok}qntk?u_&i5G|iE?_!L0&>#O%DkxN|B3z{_j| z{-eCmwcR9QfqL3)6TCN05~xaCj)n?l&U!}kEEWk94-S|=NZBNR{l3$fk}oF)L9`V1 zF4bu4AoA>pniO;%73<2@6wPNgtfyZ17sxe0%1Sc58lm|2v@OD>&#s+iBElxfZ;U9! z<02iCGy9NmFc!li3Re}RKeDKl8%pmoI3CRcf&#pBjO8+%@o=)ILv2;4{0{uw6jhMG zd;JNjtA~ZBkftvuhrpgx*&Uimyn+I+Uc{fgz)Vynq)~ACOnFa|IaYW;i()H(#PGm7 z>4>vfOt~jvgI0opJ(5htil}+IL+A0d$p@L0WCy8T+d+nj=q7PFS#tmPb>Wg=aAQ7ENU|TOXl^GQ)61H? zodbBXt-}_7D;vyJzaHxs-5$|nlsG%r{o=)Iy9;mx7Js^jCxFV$usqq|d=T}F(;yq}v>_MkH5)!0x+-LG3JxfHmdC;-O_pLdVTikgxV-pt2qBp13BCqk( z@DkjBi{~Pgm+QWYH;l-WHY{g2B{yBf?GL2vz<1|r5&KCvT=!sCWfEzOWHYzxLX?Y0V$<&%jAlnsPCJbY!z-&?!7gs_v{Jk1j3u=?nk7E+hza&L zWFbCJ3M2P}VJ`_mf*b36{`XXUx2&pfA>A=upF6*DEd!AotW)w(Sj$H#F{jTVs0=bv z@8_L|^E3m=1A8%J62=|pCcT1Owt?Sk$N7F~h2jwf5l$IeFvD9Eds=u-eW9-Ov0P2> znbP%D*7%W#GYVewnIk+jWG#({tzZ~!Z8d*GL32^Wj zIrD$|YR4l8OqCiP(NBo~?x?iPYUcLpZIfr^*6G=97J-~Vj*aq~2uXwygA9*cbG#pO zbje9XwLE)Q&%^Xp-FfIGv%mFo*Fu4Ggw)L=6n*!p^+#Jz$EM8?t~jBCgm=I8DX*#l z!rG&*Dhxgld(~m@TqWO$>#m(P5J-;>h~{Q)T9XD*7?An%>VcGh)}%9;Bv@P8(%+9=buWXK(H5&c(OL~_8$De1PdxU`uUku9Gn~$E{J8`+FYTa&%dKm%o#ZK zhEZMG#usSE7sxzrX9Fnv=3 zw9@xxZk4!R)IwjWb>(RCjr2vOPU{6AF+l}}wf+wjI@|(F$d~uKecKV#&JvEY`0b2D zt@CVYDW6kEeB2ITbq!A;-rLbS-vj5!C>4Fmh@LzB z_-{VBB^HRWP5bqNPnY^0Jy2_eN~XaruSSO=o!!{$V(;&i*Sj6?iC8q+*|9sPdWHFu z5Uteo3)!f8kam1{N8y3+9cN?$mdu?iK5{_(LP7HaaxTE-^W#jSBjEUp7t6+qzdoz-D!y;_pP4VNBWV#SFsPr5LFcNodBG=t7@o?(%K{4x4N|~S%tC#AdA>|KR_u}U zu#XH19Rz<16#>iyp*NcVTQO$`a#Yw|>W~KqxH`#i-|pSFeU{hP=@Ukerm{NRe(MPN zfn$L@y9^3uA-yyx&<_uT*DmR~XcOrm31bqt6livDoD1jMCW29e#Pgnl$FNA;IX+nO zsf`5;9c^rupwgc6S_-#0dw<5mgZRJsRK&B33d}|YeNjHPIGBA6Ge}g&9ivrHoGfRX z`9?AtFC}|8c3KUDqR1l!URb;LDh4{1v+>P`6YDEH$r5bZe#pTXp6*8dY|t{-Yvo4R zBp3<&UWbURnP0-cBldfCLWL=y$l28rT8O^UY}WYCR8R}25n}d;vy09Q&0ddZZsbzx zsVU=DPWX|mSo*H3_<6|X-HgdF=qG)Usya>Df;zeh1hD47Sn#8l_1!m1a(wx2`tI)T z9=E){4n|-xpxkV@Obb3AB=lux33|DytE)>jM5#j(PL&@-ef3{ z(sc&lR|Ae+V+Mzo*G!kG)%I`npwh)NEP4$NE-npCO?P+q z9Je*=^=A7FVL(IL=iua&@F=buPihFo!6XtC*H7(~=T&wYt3+ZIX2k@;tyYAu_w|i-}$RwG-zc zGqxcM_{oxtM8Ng5xD(C2^>j1N{CfGK+v1?#U=h9P@bUN3&u^y}jBEHBp`X6Gb#IKm zhVY|OjV~cVf0S~5}-I{6nC*Q_#sCfr5QM2 z$KIbn1T@~JHGlhmG<{=uT@BOqiLJ(FW7}3^HMZ@>W*eumZ6}TG#!dS0Go%jc{H zbUlbBQf=6sd85Lf0i4%<`MdLuN((PBTBlLu4B^|o-O{psu`x`)6c#PM9y$5;{#qzI+X5&cyA5pm1V8v zT~A0WBGMvJ=-6nTsa+>tG7M>e3uR^bk1XH8%96+(_TT&pFa0_$(E=VykRVJ|ewhRKw z?%PtRlYPurg2fJ#R{X10QJCoS)DlEZH&*ZKSQIh91TMG|Zd0vqmdeHG0kQnjg0N;D z$@Q7nlcuK&b!Qp6w`z2_^X50y<1F-oV^Qcb3hpAs$TS78?WObZq_-*}$PoD8$3h>J z2hlQFlgQ|b!c<>?uk9@`+wb?7S?>2SbDCVQy`!nD$kEx^&CT<78C6wPFDuz}+DOEC;OJXf*-- zqDD(~OB@*%1Xj=*sK}afhE;^Zix1Ee5D$vTgv4)YVyx;6CwMJqL`5*d7Q+21UapWd z?X4@h>nrxD^I(OXx&g{ch z0NH_U^5H|EeF$!c3<8J+Hn7Bq)ln%Fb2Z1GMqP*%^fGR$P@PB~v=Tjc*c=?1hamW9 zjI&4P{0JUc2ieZX55nOtgGZ!fvE>Q%jn39!yAAN@AA)n6N7K?J0(CIp6M>d_fVQKf z14Nc?d@JJEvZ^mvtP55Egj z{Gz-=w*W%c)ys2Zw&9L3en!h|aRu*BFV)>kySs4wu-Gbx`ci(L7qg#Ea0}jUQ9yZ% zX%;R!v~%MJgB;|juT0GMdg)qIzJtmBtp%Rd1jUh|;A!MLbLNd3{`G6HlUeB@+Tq7< z2?H{%Tw;G_8&<&??&ocd(ILMfg^ahoL8Lau3wo~?I4=q_Ppz55yvag zqb^W~3|qMxob`xHRl)YjHl;y4(u$B5%2cA|{Wm7xF`41T$t zsjIF&aBYu7C4N3Bil4N+Rpi+^0Io!~AL2ZZ)vLz5MU8&l`{Tn!kYiYP4Wko3!pn^7 z5NQko^$F+gK!vi#ih@3VMS~Ou^(83saGGgh?wt6@w0y-=?j5{$kRMc&f_!!H3nI0v zIE7bJ?zGFldK&btQ!?w$E*myxJ#f?8FK`+OtQ&_IPXST-RcwZ$w`$Rz~Rj5fIvO7KS6j3^1Z)24L-6rxAUU?`NXaBIJnD= z8q#!7EAu@<%}e#wKw2C7n-aYRMZEpba#A8rTTT*G8pKj|=m9(c{KpJ9wn7DoqCe8u zKDuPZnw*}-qf^t+IIaJv=<4!&yy?8^`5VJAZSCaL3&6=4{<%=h!I-@DIy*8VmY-Y+ z{C}o7XM^vba;roht6DrCF{)P71c(r zBb1+^-v7@FpmN+Wqiz)&I1YBTpL6HYiQ%rJiJM?Z9nDKlXGU|SVLWIZl^_lJ?pHG~ z?MnC-MMvqL5k>ecQ1<|7=9-Vz$Eb>}*iv=5q~=vgy5M=xNiD&uUPs}A78JWnjN{zC z;!ejX_F@Aoc+x>Kyes$Bx+pO*n))yBwK;^ZTh6fnpR*qdA+DcYe zWcxQOC5Ms@!eQD+B_o5tk!sodv*y4W0rbPC$6d0cJbLD6HUmwhXf}w=OOXrv9>?SO zcgLEYf&~qH_g-6HBd5x4kCh`QU;Yua+_f*E>eD4-vXXyQDWSC*IG&0}Cu-FuFS5EY zWmC~FCrW|MUPFW79O}rBz&Y!T9e%`JL*2A#O72H>U4TwEwoe}8{kIP!XE^0rR*0Mi6U zUh+scr!`1AmQ=q@cy-C5wYHMFXv@Cb;I~&s1-n6|#;<&lNmF=bX?)Eyr-XztkNMp< z7pc!TsoY9+4~HXzMjoxPehKCMvPtAYG`~-9W_d~m)V%RDS5MD>pKyee=bRNVKDt?g zeV!IHPLdik?0Y=oGM}0oZcbh-vu7M=A3><7{b^9wgJjm(X3BYeq3=NH`%C9p=dXnqCi(#m7grf|a>!o_G0ng6d)M{k z1x)TiAN~C#Xk_fl;l)VzG?4gy@k3YG)~Oi(-9!F$FU-7I1zHkCI$B^J0<^UeGJ2Pn z4|+?7n3*4!y3ZzqLx8L9&pL$=tq7}eM1}<}l#%FXe>MCSY^11t9Kwsrn9zUqeNKly zy&nK{%XB6gL@jVE=*%e~BvQ>2XK+1Uw-+k_p9t{>H|}`l+lwNuo4QHBm#BgKFhQ$iGsGDoQ5lW=gN!c4h=+lx#{|~fPizB+d_yqu~IDArOSoI8d2x7 zzU?5u-e~elLp)_;I(9MaCU;O>t;nx!uF;5(>7hwo7P!3hfi+`6IYXSwXpB*vVGnb? z2KkTGVU%jgfQU7J_YeBD!&}GGvmV~gpz?leSD=3^mv*uR&d{H2k?j}C(dnlkf80Im zra0=mI6WCd?NELXSPxUapG+Dc97ad@JFX2&{#cA$!~gXRvVGA4VK>^<{m8`9A3N1Y zAQEl5I$~=7MIX4bI~4l3MA1flxLT%86#;0Y`EaPH!DA?6e(5wY5HN}!w41}ug?<>S zp<&u#|1b>>lWuZ$_U6jU!?K=JEJj!skJIJlC2SDDO{Be%F=$p>+t}QA3D$M}9tZj; z!J{>xM|f6OPGi*hu-uNBj^WB{5p`-6yI{`!R##=wYiRf20}}1WWmJ;wVPz1}COM~a z_Uc9>Szj_kBIDB+-ibzu1k6>xhZdc4n9sXb0uGAqOK;*IR;$r8E?y?ihwX(uJ0sVs zXWlU+@tF%r7>&FFmy~iSMa}9IzTI8UKiQkoSruCaZfuZL=aGY`;KSq>izs4IEGhR* z;?q%p;LUS~5KKnFz*a@G7$iYjw}-F(*FlrLAcra3`o|`UkAitNJ(H+0rsq6jF&`_Yi5&$Kqrse{X zN%?+I+j*(m8}R!4=S;D*r~tcJ_k#5HaX&ur?dg~j&S|6N;wZ}rHYkNbiycuO5(32S z(YpNwykgYcJ*YNx;u^5B;c}K+6Jry0{?t|VF`wWrl&x!7|14@rI$05CKTrU&Tug*H z@9OE9o;ykFI-_Z4HRc;MAnA$FD+|(4dYX6J2^!T4cV4$Y(bQ*uj*@kC2(YQQdcyj0 zT7o^orYaInYz^w?$U*3!Bv|3VTogkDwqkCSyFDp zw$4Qw$0*)$c;e)p4~7I~_nSi9#)KirS6d2X`@kPx4rwh8l4gM`DX$Gha?bCJy%>Xn zH9&@R;+0^CK5RsHyJzTQIWkEY$*Xf^UQ`!eqKPz?o!&r^_)$H8EF4c^AS58@dEAT6 z%_R}e>$R9jWuq&yu&`)uZU*JgS$|K8&+N3}%!EP0d7QFIWzypgeDkYY(NkByonYxT zjyZIF+V1v6LPQkLDC=DoM#QaOIdiZ(+v@S}Xvs-mKA*M8t=+;smpD?-KE}yT_?S_B z`WN1DwYem%MS>V4sL@cbhD`?JGw$8<22Sm9d}iap{hXakke@XmD|}|}-Bc16Fe#-2 zqji9zY#(4U90^c!#J}4t1OpmX*uPO!0m*tL(-zjCDA}-7(g$dqDb}<_w%=Qw^pe8K zW!t0?c4kNf&~lXEKpf2`q6%}ikq>`&`_NmwROv}s(gr_%qGhh`dDUb&XO)OX@xsFT zW|D{{Q!~@=5;q7};_GY|G#OL`WQN?QuN;ZWX1y?)pM%FZ8iqsDp-M5)(}usDax9&kyYb%2)?fkHUHVD-kF zF>$=aM+DMl!n&zo-P}=RUg367E?TpG@F^C2V{CWzHXTpC3y(&{yC$6a!YQK7ocEBk zOo^7P72!n@xiV1>3z6^elPD{seuTI7+JdN#XGxRx!~Br@M@^ct;=t88YouJ>@uG6| z(vH;c;4#h4$|acQVXS*;0yIrGsPFp?a0C3`!4e#>OiI6lm-KHVIwdMMnWf6Zfi z?Jf=m9_VcW?xA@P=>FCaOav0cpa6(MH`;>qlZNDD7?wSwOcknWjX+Iu=rgKNuZPH1?r@X3U%=9l8Vy#20YtjjDg$-adJMs zCxGEyZ?u?r*a_VEAL~7n7uXMj`}6SkP3Vr#8B^enc!_JW%kcSHljp^Hv-jb#(?5HTjz`z08?wE?Ae!)joU!b#_HmVsaD(AcT72Sk1GD^DI)KK*&r-f4KifyKo zlrzVvWpP_y8)Kr`p#az|Z$lis2`dd|VZ;hAjdI8pwTpGpUPFl%j+xE?fq#4F)oeVx zykK*d76CHm(LmIDl?b{*m{FF|cxk5u-rQ;pfQX1$Pux)j;tSb7&L4iGvr}sfE4awN zrL_g5#zN>Lk1q^K3%zF+Ke6pvp8P};A!AP5%%B1!Fu^wvJlRH}B1}kS)Km)C79Ywh z!~Sl7Ujy*&Q&OD4mF8ZIo&yFDBJ<*I*ItxD@J-DeC7|VsS$^zH5?J?D;q=V+P7RPo~e>HgQ>2f`mKz%h#q;S8K> z(iWbcm1Wj9m*|aG`>g=95x{Yx7%pd;ksvDkS#lMOgXf9EjOK&`I}EV z49oLCNsLvO=_oXm--l-!Gim-2>lnaC!EzMK)+v)lCW!CRw@_x;lU0geRV3kS$OVcHcxlTr-cOzi^ zTm=iqW+@eL)u2zNOuZUFfH7eXiJo~f4ywQS-k6)MOdVQUGB{Itk=SJ9KZ#oDp72K< z*9vqpj&O{TUF|1q`Bk7a6c5@yk$KT@#_Xny{A$0k28lZEO*>Q^+{D^HFza?+4gP(%gl zL*?l3(>JV#8;meqokikWF3Kf%0^kn2%L}I z{41-4EKP90&7I!3w_4yA_hfnBqGL2minV>QS55h)mL0tS^uz<7AyC(Bi8n&1?dnTlJKIIrza)}pNv>WbR)Y*Ex**4R}dmVx;w3f zsH?G$>eUv1rHY@?Q6p1_eg-!A00f(Mvs*C%5g;hNHSJ#OoUVxj1lvrse->vBM!Ipj zO%tn3U<`9v;;Wd{!ZfNDL+Q-l&_rP| zYRZh8evlhR*oEzgT)&gQ#UZ*P`R1!Q3IuSwiy4w+?R4IkAwj%qKRXlgd1oh~*sW(E zB$aYTcDRB=Rleza2UxyAVsAt#LPWa#$H%+1{&{H8n_{kG5u?q>APy>$<51oFth_57qAf#5W#zt45Kps>6+TN%+Ml2G(}bJ+htw9Pxz^poIz>9 z4WEI@WBaFf3El{GHg?A;7_He^hmkuiWBU=bePM>D?iAjQqmB1n43EQZZHPwCs|ME++ZnPM`e*9T6BH&8nPk?K zY*TY@BtW;+H}_g~k;Ux)&du#SUn>1o^V*FUcR_MX_pADDbHX+HMG*_g`gt`%tc|l1 z(Jry7MrMn7If()Va!tq$ck|g4_xnYlk!v^7LBjGctG9axf>EvumaD))hdJlhS|%y> z;fe|!3&hWlrT9wP{8VFp+W9TMch+; z-mhzmPgH+-ChvI3jVb%th=`)v073mtFG`b`;PW`ILMnO>eWV~pI|zQ1_`eUCl1GVp z|7PlPthnLntp9fjgy163622FfEI?t2GkiDgz%~(3xA_QihsNjzstn+TWS*cCww|>i z(qt~2A9lG-`8JqYFv@-BJ{6#q(A5)bQ1eOLB?eb}-t3+ir54<-**j;~bTl%C?_lN^ z#N|;n;`rL$YXyAjOySt-B=1DZ6(KqXfE#JA@B<#pL90lz@EvANsy2T7(f3+_-JCbS zvm|}t#N(W}z9Et&>28=cHdFd!pYFUT5{#c33yyVciG33nn~L1J-L1>9mO#6Fy*Sn# z3$0S0h0@6YGiH~3gX(U^w$fia4Tyu}dd5NHoQ9!A2} z7yB^4Wil8Bw?%f?N5Q9`6tYZ5t`ebWEQtlQjA#}`ngYl^qT|7SY-~$pL@WP1f?-K+ z^KN#qfBGlsPcd9W=~G3fG9Owypdh$**MFSb{kDqrgEl+)q2uGANeZSa;N?-0Zg|g$ zL3Yi}pK&ZAElSte@I<@6KwwUJ1#E>9p-?H6r@DAlW-AWL)B9=TDMk-Jluy7w7Ah;X z#FmZMJ!0?3kpmDo@yCvXOj zH6ri11F0A>ZRRiF!EY5JrW|bl=z6&1{n4zp;Us}N&ew8#zITa)Xh8`If}e})w&O+Z z*&(j3W5dv)a=1wA-QQya;3d$|eqCjArMaY;7ZcpM`O|k$;Byn^+rkU@(JF$f_6lf` z6_w$W;K+F;V64ht@~8)`I`~P1&7WPXHNQVMe04TJ++304F>V*Ek0BkqP%K&m%W|Xk zS$uhHa{YaS0iX0=R-AOE`}I3}4-ir-V|@ZCqcj>0URz+Fal)k=GxG+`;%cFFt6K&+gI)^{T>ZuG2NWg}iBLzvl`(eUpO>AX;Cv%eEr(%Wvv) z#ljMduYW_ZKZkaN!sbld9II-SN_J3@e^eB-UHb~5g%4W^`(-d#F-4Tq5C!!%x`l>8 z$wyTaVya@aN=$?TaatjWgXTnE`6~vqVu;K}0f(1ZZ8FqKnPgGS1@A!|^4$|?8}q8ZD;QX=NE*Z>J*z zqcOinzB3%Tl2)%DBF$TT3!Md=43NUZxc~z4;^IA8L$bl`Poz|2Y-ewMoJ#EonxTN^ z!A_l^Nnt0L!6g&zPkkFKe`Gr*-ZpC@Ay@?b?IcnbpUmA-5X6;c34hyE=m>ntln4!G zy8WoXT_c4(_#R+;IS&{-d(JM5_Ya{!01PdO80>#u_hozY_5a+XkxQKmxq=mDT&pIe zRe{P4+=mW$``OP{mwfa6vAF0dJ7&|^qNIP3jC`Ee|GI?4BeQ-CiXD|PwTJ^#6id7$ z?Q4jq9C%Rz4F5w+5~54>T$$lx7%4f-j%L1HJa}ewYXoul`i&9qPIT81Z>{PYiYXu; z+fhEW>=px9=J(py*6`p62&~Wp=42rWqF-ULqr&u}=?xvrNk~8Lt1s3_HCcscr#z_2 zP`(B!3+Msf#(l-al7sdPZ&T(6-~qAW(EV!x3xAjVN**KDoIJ!C$GUqeho7~#7&wR{ zML<>>orqoXz4NDhfZJ>9k_TqOWG4{th7QT@fDfD@mP_xsbL5=fT&~zNb#fwERtD8D zEw!7OY2)Zd(A^r>tg$v>@2&Ez1Rvbr6EBeYuFW3#)cgu?lTW2({*g++X-6+MO(e-% zjc-;Z$HfYp%i$5rMDxI9lYI|Js!A9D;&f*@=F-R`2hZiP7U=h)RK8Wer!^~d3TXn5bj>S zD#sr^{9O5+d6NETLKuPXoB(kRPK0y9(ta%uAw8Blb*z%&lx}W%he4SQCz`Gh34Xj0 zW3*AF5{9$*?{`5Kj;o4He@-X>0MMCHi}QlrU!MBvI$R8nA_XtCvTOk;PKY=T`BsoH z_-Zzmy)fUnZ6h>q%DwJK5+gQ!j5~qdFWHkmkwcucciyb$+quF0$754NyMg~>=xc#>UyxC`$k2Sq7s1y!5VMRV$_V_`!yxt-Fd@x( zvtwI1POl;KO0hz~oQN{wU!44IoK=&7SLWiqy>Rv)3StV>MMI|ejH&%jjVKU78TCd!8pvaLpVpaF04&>5@hHj6900&P$ShmPy-_&vh^^g_x?8Y#maT)y zj=}P6U0ie-c53W{UXwtKHQTK1K)b9=Cd<}MpfNU-hT+B&5!As(K2>%)hbS`i_q9*sxbJZ*5=&W7$zKs>H}&E0uv(F$(~#5AnM0?T!l5*^$9SqUEI#6pfyZ3qswG2* zHzN};g%67pk^7&AiCr}@{eE;`@(N_ z8&3u0xj)Frq0&U*)Lf$GTdh1f<+maM+u8Dd154Vq*qN&S_mhbD=Ep5zKP?XC)$l9Z z5k{d{c+5Qq6z+u)e+NT&ORi7pap$aTf$=SbH?DlQLMPC}lP|H9=oBb`dI--EELng@ zZmjSkpWV^oiUC8;%OPZ?V>(_Smb1NkXKeIcMNlsTT_B?{02Lpyb0DU8x%lDHZ_`C5 z|EiS>+HM>U1Y8=J;)?$8eZ=m~jolRn>v$@4o$ZxRlIZdaObPJLdrwNaLg7H55>dR# z5DO}jJg2PGS|SY4^LYzpY5%Mqpn{(#g(|CJ-;BDJoi2eZ>Fo*AB9Hp7TbWP3^!pZc zh+&NUMv88`(lk3b7W<0B&*K&-+le-<6x90zYRVEKUVMcb&YxQ{^ZZ&I_iY zU9V{?H45kx=u8y>M^Zk6^@%+m%ZO#X-Q*3uGxq2_@Dpob43JXOB}#(>0Xp4Emffi*CJrssV_l5QmFwe~+39J$t~hQO#pMC6 zsg>2iw}4ysk{PV-7U3WQqNCRUUZdC<^`v}B-nmAVXMg5B;t!obv8aLY$g1xTT@>t+ zM77%smVtTgGG|OJ)Q9Gyc(j7(_yv#Z(d5HOm?lf%`njthSdZ|gp05Ve7;sB*4^C`d zd&5-1mwm+RS3=j5?WP4aunr&GP>j!@!MWmQJP)YUbe zE+STIpy~A3h};y;)1}QO%xhz2(i7^x{!*$vE(i}Yu69i?(=f_ZKY8crj-H$eZHuem zeK6`i=|WdvLD>IhcEdz&l97JMLA*H+-McnOlH#Z%?p1@QgwRMnCasb(3<2Y8!46OB zE>F1}-$Oj&0?rV0cQfxOaU=@b;epmHa6sj4M%4OTNTt>(n|}1ap9>6f)cs@%XuXi_ z+o}0HhHq7RDDAIiQo3x-Ydrgl$b(tR;_JQ~_INMRwi)Vo*(XJ1-w;vW&o#JE?4?CM zq6dP(VFE2DE($GHtmoUGbRD-fw6}fcd&U3H3t-nu!Ul6qd8oRW({%JPddNPG^0tas0gMdv!^BgpnXStBeqL6huc4(d9J%o>UB}jB z_Sk(DhFOfM?T$$YhdiVRhecTG_jCn?-yWp;n6x1)yFm+RyYcdK?ZF<(%N6w@NYd+_ zD~G*@wEEfbXBsDFO!hn`p>PL8+O(n3n2GG{C3}X*tvoQXpCCo^kVx!CS#ZAVflPe< zWouTqHrgsOW%@t>XEz;cV=Do<$Hk++^5EL*RT&#Vy>5Tt05F({#$LND^2?f^iA%sk z!QzMxQ;LYW+g>jfFaKjv$c*i~PJdSMO<}^IKY)&u`7?V@90_YRB;k*Ss_MoW#$uD2 z1eFAh0Gxf+fTHLQiCXvY^c)J4@WATZq8U5Ik$MiaubD8B0_>Yd*_eV5vU%m|5& zgB@FQPoHg1?`9?vX7z2z7On0SQA8_R0_9e@OlRrG6;Ho0(O1JQ*@M(|S%`wW8 zUEV2j{(F7=PkeV52vQdF26DS}lf;D;CtF9hv%Hzg#lf(%0hD2ZXr;@886U1tQlyhL zywAaJUO;eacn5;%7gig8*fQn$n&SX5M0S_-O#zM}EeN%p3SlAR^rc7)D0FN_8N9$B z_=l%Xq+d`{_y=y)3Ot#!`YnIs&VH_Ys|=Us%R8Tk)4y8OWgI9m9{_Ci{d|B&?^g)Q z*Ztqj)2Qh4$+!RJqa3LVKI7D}cVzqidCk#`#x-kJ;p8#QA*M0o;9)LYw!#HW>$Cjk z%K{e^%sldpNlloAl)!A|A6@ke$#+DMAD)wSWp0^ZMhWia2GgGrut({jGo8D*>92G+ zoqNJ$mki11zDs*E2fb6l|t=c{v`95g-Tm7i)1OjyilLe8~%ATYy@M=*eLxe+d#&}8D3Kh z#(F)Dt!n{INa^L32&)#vJyJgv=9!*22jzmrnA|^h!|HdP7duHvs~3AcO14JtX)(|N zeP_z^!ui!Vo9w7Bo41V$=yf2s7qNTMp3;r5KC$KQ7fTPy&oc(X znoFLEW_gBx4V+|hJ~_E`N)b5*YXFFCKQT%w&$D?s^Df|~6boKiRzXOFLqymMWgBQo zfLQtaCwQM)t_Pj+kt#uYy=-N>IqgtLVIHN28^)x z3u{yFzNeyB)wL=ykam?hvqJ}?i|sixq5ZY7?`#SEh_f$dcI^;dh)o5;FwtWnkv~7E z?jB5RS??n@89c1k#*9*<)#UIE--4g$+Jp3*a~Fb#w!K~jR;wic1^#Nn1i4q_gD5c3 zJq%xWFRs0*>5&QUpbW?=G1D?=K{sR;FJpiJJ?j)}+v&TLZZooV>BF-fl2%!2Ig2V- zz%LL3_CRQH1$8q{Ry4$EEbhGPM?V&#if4esdc^2laa-keUgcG(RoOB!94q6cZcU2h zwP)wxgWu9>0Z$!u01a7J(S$oNj{Q_Q6xg~5_gAlGu%)2kXuA=npo{1po-Z4i(-vmo z2wVvo$?M9b#j^Uk57@qbKDKh>2$v|;wJs0+s+2{CSN=3c^mY}tNLEklkohrU1M;v} zDtN`WA!}LL>L=3GeNiX->BtZ}d_RnBn`kVk@6_xk-ktHPc~FjJ^%wGwxGc#9&6VZU z_`+KVXwAVJp6Ag|gJgnR->#-YWSS^X_6u z&%XM-e2G83UVxSg*YdFGypY7EagVzFyV~#Y*0f2~EA!Q+n%=aA5J$Vf87k;qFIa=> zkaE~#s#tI8exP`mDHyRDOLOtc*G?MGIU4rwBLT;V)E9;!*HrDY*=*}a5t=ofO@5+_ zdK1;_5T(k2QwmqrH0=rGX}ub_j_Wy2f&qf!#&#BMt4}Nx`_r%kiE%s>()qSp@_j5CBsk9TxoIPvqrQ&U%!75&$&3E z1gIm;A{n>*pf9e{x$v*-XtmX&zS5D0bU|lobGJ`@^G#(N2uvRD5ac<$v*@PC|2>X0 z>ZY6B!A_5(Msi<{9g#sWBDgLrfwdu(swVB9|f z?2iBnBf8WtA&{=>uaRzR#g3nBl*h>LWZ!N1ak?T=Ek2N)tHqqLi!tE&EUHXM(exM0 zg%ZF>6XG;rh-0+3btLPL?nX7K#v~6PHQVz{fU|pINJ9oqnl_-bR6m7h+;=MHRmEGW zRkRVwQW2{BrHJImU+`eS%M!>>AF-@rb-GLzx$~$XPoaJcl;bg3l&=AKT!|t7x!ncy zHXnf&=iHS`2#0o@--M~1nepY4`pO@<>%Gucc;L9*yy zFB$X_=%eJZhnZAql*jHM3*om#O~uVt`%20`{z@k0GT<~zhTLUbGZ&VN+1=Q_pXtzj zK9>pofhF#i@{7SW>K3w@!5*I-h4*5glyp$%w4J|fYJU(IHO^J*W+fjpYWMMSHttkf zFyZp`)BcFg@4p?C!_8{U0)iuV%J=^#Y0k_{5>~)^X5BEwqEDvW+6e`eqX^{?9-O9| zH-9k5AIXE(xq|GAwMnehizZ(E!}s-^Xw}@TlEPAKtY}sQ>AD?Q5qjZ=v6+Kic|iMN z@Ij%aXSg?o#tj`1L25ri#Ppw_aOr)S2lx?~4gm`7?rTYb044>o3Bb3j5E;MP7fLSw zRp~QHGtH|gA%FvJ-DxyrcfZqBR#Bl#|MM@fasl!NL6PBEy&Jk*+EB{RWI+#2{9V(u zIPM-02-FGpY$}Eh+4oP4iwcX~VuHKl&smrjqm^JZNKJ2KX3C=0@b5FCxy_o-_BP2$Nv2rkFdOFPhA%5mT;o{8zs)!kzbmZ@!b%}^z0m~_!MBbKu zoxH8_qo4ANV-`h5J;N6PwQqerWU)9F<0D$i3A6-w3 zZz;aLGI+dH!1^|9mjctnEgDU%4hlErRS%b=+U5HlXi08F{GyBt{$h|6Vn}QJ1-%I_ zfF0Pn!8+1T@q=Bs_)Z)xf+-Z(R4_%Nay_etFU&?Fb=fmgIU^P(UvMlx_t0N;^um}R z#fs>z3F%V>?PxpH;_|V>t@yf^edsrFd9!#Ylp84OqqV~3`GDkIyko?Q*KV6Lr?`44 zFeao2CE-8=cwRwu;eLhWEH4EZ?`2NK)T7E@`qcQIl@S8kQg&xZZHLn)?_`Dl|4_aI z;IZtik?A>g@brm)4PtlU@ZcV2OoS1%I+K zl%a7GUO!4X&?0-yHZMI+1goNLFGR6?3QI#0o1Xth!ApTC%oOT$cY=a)&TWjhYPhe5EKaam4Ypx20o|HR2X1a zVz}A9HGKGF?o^>gHQ1B`(eWKQ6kQ*GcQc$J$;3j?rvfg370gTnkDe?K9*}g$N21h^ z*^L$UY9wxreFPuL?lus)k2nc%PaHbu62NTwTsLXNF~>BpYBj|^Nppf>li(tME4rKT z?z5t%cXSPgr4fnpQ-5B!kK`wu%yiu1h3ELMfS2$6Z#jgczMezT#8chKFTj1lB&9kp z7(lQ?8%;w1^01D9q1X=~DqLaqT17>}mm z4?%6?LisE$?8zemQa&D7XvgeC_5*1x?R!3t3L9DkbD-_ZxPkl6i{M^75z+;(&GJ3` z0KBQg$I!YRq@e@u6gzP?MiouOo0b#Rq1;PyKwY(iErP4^wr)T!gJ10tMI$r5Aw2#a z{=?`x-mybmQ=03fY)J{2H2wvQl8An#zxqLp|Bqa*Z7tF-&}FMIo|gQC{?&R3aB0)5pm85>BN+rb@-@U(xD zSZPX(V5^md_=}=6)-tlM`zeW|9K2x`QO1A0kE!1inFxe%7XguF5=8E4-=JwwVgT;u zD(iB+6<#Zvkt&*EbOQV4*p~c(^Ct>FbioO)&w|-CkZ2K3e}Fa>#qsNYz8rpb3i`Ch z{HSY!h`jTpKoI(7ZroccZVP63POoRb7uVzan!r^b_xRsfk-8QxCMRzv0gvpVZ%wlB z7GcEqvU>NlRWH_SzFZdJ>_}lt5G5+K0x^&f;yWbY@XES@Gatl3y$`I2!A-(3u% zoMup|Pg>@xeqBE;0y|BleZH`Jv%|s3oW65`{|>rFBL;EopK`QkyGp8kJSX*SM{fwm zx9MHP56g;f-NYivbsj(xC&|5L+jI8YUK{9|@~w&8#R!Ww#mtLz`KmE-=}`TXtjUpv6-PX45>8QT7V=GL(&Q>u>Grq zrxex*)GHi`EFhH34?#p6`*8IAN};VWLdnj2DXLzW$2#Lrn6UwOJ1;`rmpKQCVyBpq zZw(3(wX%gD`|Tm&**$PAXzk-}jX9M5w*O%0BX7m4LJIY$#K7B~i}!MZ5NnAD-yE}a{VXkHH&!yt&dF=J06P}=J(#OPhfp9>rn}7dxUvv;WT@%Vs?YMZ{1trvb}4*D z3yRg&#YuBk(w+V>$F4bv`q$uZOS{Z1AKhzVQ}dQ-fY%$lQ;z^ZFK^pdUgVlv6`}(- z7Ay_YGiVSCN?>RtC7m_8m}w#IOh)vY&hDl*H4TnSkC)N#J$>+n1;x@l#OITLm9Opg zVwm?l&$?&waKV$w1??BoH7OQqiz>}N`(rJvu|X4BV2Hp9R8A^L=X2u*a2CufI4~EF z|74qs9ISrdjDpKLEpF#}4#fyO&2KH2x&tz*9Ff1^xb)6Ye_NS zgg)6w^<-OICZcaOio-dwUH;=CU1`gg|Uq<3Sf_QgqjN z?NX+666fl6n^H9jMB!qzz)T5Cykjo;Qa`|Dp0_A&U1a(4*Nx@*x;CPf(!C36527y` zS}X>x1~}_l*klKCt-O_$n5>KF65V_1{;G<7hC60Sf}ZJFI&zQWCq_)J3edR0{=Es>utu-#}l&y^(qn(fmxxi$=h6l=F;x|T8VZz=>o6lZcQ+i zXa1CX4ezHVm_VO|{);3$vjScoHkI_KN!p?bO>KF>C2)AOGwa00MSr4FhJ>l;oIO|V zhxRw-RU;XHkFGNzw(yj73_n&;?J@}?<~|4{+ip&N!PMB4w@FP>YFdNQ2XknR5+J5= z{ukL4j;~rKn1s=0m@6#0Pqq?E2MyBX&BTZ702va)8F;~EST3VA`mV9F*UHL z)@b2PRj2)3zHsA!W@e3bZ6kC0gx|iv`HMs%uah7BM=Zr?HWzlYf+#h*mSSl##im(LTihDk)J zsi<;i8Xv)K<)S)G%lhgES3{_P3Y! zySybxAJIBnVQz_3pb|5TFxj**n3szA>!R{|Ps3 zwr#h4v$ff7+iY*v<~G~5wb{09+umxk&-44AbFQm*y{UQTGq~@2X0G?Lsb%c#plzkd zB+o>15b0>-lhORE3-mrS22f_FD!nSv;(j39SRiu}%o-Lrg3BbD)WT0R3r0)9PDRl8 zo}2MTxhp?8gWOv)s(z;FTuatLJ(}&U9Z)=+?WMU~`^SdRcugq(q>sGW~+xmG(q%o*OhmwA7ATvI*m2%37 z?D4E)Pkr2eGd3ha4i+>`mtGJCH|Cd>l-ya=Tt2w>%#ZNJAM1uUVA9HUC5hZ2Pr_3~ z#Uos&R~ISTNd-|MoGhw<+aS+4u~4>F>9D&J0XSDk8|8RGVEPg)zye*HEqHSNey1%k zp_o0rXUJ-zQQD_hjkE@)L@5b=tT%SMf6BKtNl()RcPpoxlhp~a#3n(Mn5iA42wnVH z`U{bZb7v6rqE1G4$SI4*4ayzzw%BC~)mjzg;KPKcuI7N%i2vZIG)tb3FYiHVhV9! zqtjSmzNAcyM|+X2v1Eix{HId7h`Xk192edx47%U-?w9fG(k)ff%q^WF^awk8of>vq zkEZ5oAZ%{Xl33~c+?G(@t}@PU@$+Gd@b8vMFG}B33OPio&eY%6fV+JS$?VuZhe<`{ z&pz*`I42sisPl7$yy+_ha!%1(~1*fP~!_4Lo4Hx{cHjMvu;IZX6CFRi|52EHd^l$!jXInwFEcf zWPU=e$1j#FIsA}NS2D8svDAueuKkwZQ)ss#6h}<$S^z;QIGY02L-N{|%9V?${n}2h zkE#+b`N!v9vR`XaHG>RoTdjT9YYZhsZ_%pLlG(v>Dk3Cjxd!QoQYkCuS?(`hOR70Z znUpL1lg+j5O@4lpk}5Y%wK7hhMvyL5ww}zbHd1ukwE|NYNB%rCULKWL(&}XZI>XTVV7B+|J@U#5Nqr6K_-=%EBlh%Rf)Kl06TLuS>`oY=V;d9C zzrdaMR_;oOc77}xU#uvu2r~mBokFmcOxdH6RoS}4y=UaJ+=Ib41EMwONaW0#oWE&W z^^NT(p59L?F;TZCe@5!^7HQ={pr|qUu*fLO>hQm;{O6d zL;D&o|0J*O)5JRGG6+?X%(ideAS?d^uo69ViZU2N!_8RPWP^iBniQ#h4HAh0^O-Zh zzV^pa?;4?M8E$Ir`2hV-qaxD7o zFlzIDLv;$+MXkAdg}~U5G#^grpYgAf05)wYBsQCL-AXuLa-& zNs*pwX{_OnsU5HhlsI+eMd+mm7Uh*)>nQW-A}KIm46J@H)%AZuZLo!h`%n%1j?cfw zYuZ=&E!t)Epd;3M53YCKox1>H>w^~pB6wq_puoZLTEqxKlCdxAw1uq(6#@7NLH~UO zwx0Nw0V;s20|x&~adUi+HQ-jKlDA5>d+$D%F)pMT1Mh2%`rf{=KTb31St1QVBz` zg*gj?Uk2fIGW>D)I&EuI0wAV3BNF#W1T^sdr-udE1Wh_Z@GjiiAY)8mK8wIn{kKcv z&sCIcCF-$6{JnVkPzN2fzPh)fc2_@M$3>v znIRTQWmc+~)2h`gAVn7>)V|JK%+10EWE}+qFKGE2Ox)+pYxaZI&`rpnKk!-?fS%JPc9)06Q;Ns!(+d$fHPp^ev1}y z|7K;+stiFXZKi<~eJck7$^7%`ik^#&k%4t;d1iM-0sqz<75&=vPE6ro*mMz`jmV|Ht3~J&{Tw*f&`C zgBCWT@3JFB(zN;_Rq}pDbH9uuaeo!>m$1fT`Ww-qOfwO7iH!93?{i(8M^iI>WD@fT zr>K|C`pmdq(|BLCTv=qYTe*A9@tpEF=;d?6FRT&3A9ZT{*foJAdh9Fy8+|)>t8yS$ z=c?zt(Q8PpiU)RELd}49e@$Y9&K`Oo0T!iQJzF6C#gc=c?`d*qw2% zC_mc5+RSa;n>z7S2@U>cAd;2hbq1$*KD0RcaVeO(krCGH$#UT>_Lwb44n=I0Cio!< zYpXyJ6H*+_E{ldRlHqinA@F5_W~w%Wx!Dn?Cs3Hq%ipF~Pk9j6Gn3PwHO<*X_boEjn)q#HiU*_pvXwdS?*SP> z>KDTXG2Wh~Z9XLU7fti=oz%;zy*fO*8F(=yh!sntZe~}MUSabs1VQ=mn4>r+dPB!Y zPjHZQpLZH6ShqA~wTp2^*x6+$wqaSYP9B23jk&9X45C698Q29#jsY&2J`NPnE?y{! z=!#3dIjvREQUZ5%w|oA4&58LE5LZ<;FtZ?3v=uGXI1>fAq9)To-hx|v=rgpAeZFol ziIMfdUSW>d%szJoebc*fdc}pfqI<_jvC1YFLMRn)6ohX|2+dTaC)TL(4Lh*sHY_B> z9RGjTLmpyTzjZlmhc0%O>e{m3X(?Rz`R`a^TsBn~FkVD|6}GIYsXw`r^u=af) zc2JO*6|j277w#HGrkmRM`T5cMzUmeJyB0$heW>Mov^jTnDlE*+@K|e?U_8hE`p8X$ zGpdm_1*ow&U7CMIX@Q}}5+=PYBu-#BTkgA~II*w22Yd|%iO=@JfsXxUz6$E4d^`ql zRD5ZJ%OuRlR9qg7HPwwo4Ul8Zh495%A zcfPmP?M+JN|wxF4DR=(S)solyOYIh4jiz*{W*~{fWr>Hxn9RD)kimN>}E*} ze&d{MkF-ygOTP(YOeD*eb0l z5y7E;UDsyBk0kOd$+$937mA>;S?5|&_wIUX*=sl{3Vo+Y_4r1NAgr|;EoKMhntd`{MgS_NxG8na7~GjU1d9g zl0|~x7WNz&jrEi5SW)&kn8Uxgo_kp52%cv+DUGl@y30|<(K{LVeSKzOH=mA-89{H)i^K$#}@)mKJ86kpcX=n%u;*X_EIKVtPJx?27v08{2M`{BjYszbE8H0 zL6y+`3kcZAD|uK6RP}w+Q&yOqwb=JBjsNjvGDnmBB-+E zG+~=zA_Hy4)a-_Hv`;cRLyoO)^X*0H0n}jwDY=VX2_fWcyE)))!_AjCF>>|>p0cb? zNrnvUsO*}Ls7m2sm(<0v32yjGj$%a`Z(pJ6Ka3n5IpaI)giqOQ_;iQ z$Fb+U>PFt}xZ9zlhV}tm7+EQhq?mGvYNr;{l zLtlB&!KhA~O{nvFsg@WveP=Qfc;Of+<%M`3qQr1IBn7vF&}HTe(h_sH5IeBp;ANG+ z&*9^m#+F($tLvGN#Hc4)b?o%7bSpl{;FGzEWJtTyd7r|Zx;?YW4;%r z!~Rpyb}L=H#M+prBTDA0W^P^O89Xixi(IdiKAd07usbVoC-he6FCG7nuL+6Z~2FsgpnVu@OPD*LLeF9Avb zlm%q{8?Cy$2wQxyb}V=@8O#>uxJ-}HejNg*^w(m!Z5o6+E)>S<$V{tCF-`Lirv;O?j55ItJ2 zve;1c%bO)ko<_!v99cB@Ow2xydD(0*j7M)TZR-khGjp3op@-LfPyY@#3RgE09v*=n zUNyn!QEb-TjKqp{Hm}-Gb1zx~JuDr!r>J?L=+{Z62<|sus|r?1(tGT&W<(_-a(j5t zpiv0Dqk~Rt_0_G2Ks!q9>bFcND;8)u4hz4k+eg0h7;4a=3HL^X=HuxW1A2K{0s87; zcX=_B-`;bm#xgb=o1iQH9*g&%27@VXl`QK19OYTno~;5+wXzqXSBRdX#?LeH~eamW(6fECT>%J{PXjioj-| zpIA8ZSCAP~GxRp;>34$qAFTRKI-$HS@yu)}uU(u44qmzROj%fxAr7hTzIRBblZ#Cp zH;_~`ZwywxyK2?&S6itTxogfM8UoZXWiep_?pRuhfxVZ?T4?`G^AO};fvPW7mzz%G z1G_SEaE~I5AE}WhL0@L7rB)NRsGDG3)Qe4 zI^VpDr|eMq)=?CqsASmd+SD+P!&^EjzI9pjonqi`J};eS-VhEn3A!>pBVgt!ZJ0=z zP+zRLdHT{}Vc{|`yJ;$X#fUOBx-EKg9JN^%MJ+l$_)mKHlb-0Xp#+|TrGV^unyFBV zM|0Nqmyq`h^uGn*i4HXHP!!^&V~}}~ z^0qAtpH5X^X=(fkcO~UWQPnC?AY|f->Rp&LoPz!QzU&*OK1V9=f9a5 z+zRg~OHr9_fMxm-ga=xx%R!d= zJR@>7@+RnFnYoh5+qE%wbL0Nc@rZ>^>!TNt@EDQXRVYCV7N6WDch7B(8BQLau`*v< z3*40PLz?DB4CSqsj&<UYYufrFpq`fHFfcl`jZS-2e3mmfv1)OaPu|tiKE}h73*- z%Yn7Mtf7>WbX8Ng%*_vI9F{JO?1$E4mRC`+PLU;m)RmB-(FD@MsXm{fl&3z9zU+6);_ zs9k%N!?#~4o73l}>m1l|@mh}FSw((n^mAS*1!!#PshE-c}+LB98U8NzL?i3gsR z3k^;uUPq~fv^aZ%5RSG*%dB=4u%8)MG0gRj++cQB#yNP)O9{=84E_JE-$ee)x-rwv zk*WH&rE7NFZyFh>Ul*u1^y^H1`aTkS>sPx3{w^E=R^uj2$xTKhyE0NO42(@dm#EQpG+K~3QNE+eMVOw1oe3Cc4}Hx_>{`>nVu}E$Sj-Pd1T-cNHLuxK-b)f9 z&@!MExfdN8#wNycW4gOg2>=U(0$ySHgGwjOJH0qfITtUbt7w&xO6n zQQ^YT09`;ArZG%gPfs5~uPgEjgRwmN!VZjKxrUI(ZCr}knn>mE*w zO|!m;th;@5)?rnipMLNNY9AdQ!I6X4^Fk8}nYz*fT2Ejnc>S&4owtpqR}tw{j0`Y> z%2=!H9xAxs+EaCOB||omi{-?-(okCUw{dyt%FOEBOm~F5@ABlT<5Ph)65_vV_(>va z)ZX_w+OpO&(I_Ub+H9o8_T%6AKiSMgcvw#`HA*LckUT}4b!l~aa!E=_cvr2x5BBlF zBSj1s@{)&Iz`jy=HwUo>eg@`NYOoUElqvsp7K5yJTE_SCenr0~csaNg;s`y*Mxv0M z3w*-MCCkve6$UP0G<`bfgM*c!x)g{UjN}KMIk<)2VL_$&+A=(J(*k;tgeA89D!tmd z2PPnNSlPuwcHDRDtGhV@0)D|bxZrG!ocy43324RS)M-66Zf11CR0eznvIFG zmHv}Y5R=sK62*MKs`WT6B6Q#;F5h~en=_{Jr|5O?aj@R&GlfeEfJEvaLMx%rBF`#_ z9z_w3fBo9GS93*Rg6DQd+(^it;b?x$yvr_VZLZ9j(Z&aw%-;Wn8IziMp=BFeNpVMuR97&A zS@$+*fu_eGwxg&$L~AQ3#h+0N2F7a*tk+jOf_f3jJ928`M+D0`J^cbltguQlHxdlu z-P?p}l!{jMc6N%w+HZ1x+dw9Q!gDocb?=B8ZB9;7C#Z&YcUyT5;`F|`ei~lhyo4s0 ze<`2leet$4Ux}t!fQ8dU#qjl!*a9$q;OTq>0do?Y1r*50X@psX{)7}H5&c`t6DLo| zN;B~LzkOeG76GCJ5f3Co-dwyZLv+LdZf_H%3cX)8O9Od?g&g2!cocm9EaDuW6~$q4ljpx01!EgKycX z+LBuub>A+CJ(eL{>_a~;ga+b&k00fNN(8`@v*dW*+mySL9K zpL?S5eD?H=7sGQL(B3A#(HWH|rWZIwA-k0y)M)xC@kU%x-ZF@;Deg~?c)OWy{}v%o zoPLWt+Mk|IMy6XTkN2|?>}X54yLlP(jCFmSH3wJdhnpAgt`Oi+Ao+QVt?c3o(LQJy zU-yLegB$pD>`Q$Q0K+a-A~mla7m}7O2vGKNa8SAc*@{@(@OO5@nO!OJ!}enFDzv}2 zK&V@eAY?s_eOtGVMVET5Pl_0|WphQDC4+HRsS^=(B9{{*!ih>RGPxz)|JO%p9@dvR{L zJww|kXee1zy32aZJk1QO$j zDntovINqv(G*x#O{e@(HOFH@2i^!+MVKYR~N*#0VlqJN|I62s4Eq89F`kQ7>7OE7w zQ4++MU<44khI6w7LRpcms!uvM;IT@Ls(aQ4~%7Z$OX= zkFTe0q7k2569=Kd0F;bJV_v#p0EWw{9}SBb1iGJrgLU7MPchB4Ok9iDc-_`pUi0nh z+P~4hI$y-klU_dWyG00{ME3FIpPV?h0--6qyKg*IU_J9h4N}p*SR|}H{2bVdg{fD6 zRoY;9EW{4B#bL)t34f~^-9V0~(kMh7wl)8ZCj65q;M+;at z?%i;D%_t6g;wOnzMEBZQ9yEu!l`r2`4~O4$KNo(B7KVYo3{81L%|Bt#@nXWE4`4gS zH|~9QJmz`_<@d<*1Tm zy_75}bP^`!<~8yu&Fip2shwO{Ej1;Uj^o+(Mp!u%!g?XoO0~l!>jao^2r+%niy0nO zZXVU%A*0shVzwo(Z1Qh?`v9euQQzdnK*+mBYYH}ly&`m>?W@)wY9SEi7e}y}@K_=& z5kLx(4Z*N_L{_Z`w+jySCG7WmeZ33@eM}B4@Sf|8$$03@#_sW$dfTl3+0ZGAH5DH3 zh7qP(r?|V3r`=doGVAmxl+?Gj{ybNAx3;cGn9J~4+pxMxUr8#TBudUj%}|&aOGvqm`(;A)`no8aSPjC1Jrs6LA;#e~iqrv1B!e zkJQfI?SrdW=20jVj@x%|T4>&Glo9oYcP{KuNg2x%3ew-0^14!MbcOsi$QbQlO5o4L zN-jvVguW=P>$wp714T8KmeMN$)5ST{hPDUATIB5VRod+Q+tT?x1%o=JxhY%_8BU#{ zw(!jawwv$>n|2zSFl?^5^Fj9e`U^kLFaUGJB!XfRp!)@4+0;vJ*RvmVU$&~y5WsX3 zJHB!{G=k)*5lhK{%g!mfm4I|*O%l0Gzfl7)+}ZP~JHE6D%2FUg!e*1?_BM}^t5OO` zrk0snP?!^;EvWmit!G|U-|1<9lbq4mq?61hj47Yw*H6o`ZI&6fGiNYVbXG|WCjh|9 z$5nJ#PQb0vtX}!xI5%&w>xhflUM$9(qTn3dzBk=4uKYTEWU z;B9tRjsdYdZJ2d}Fm#TNBzBO=-b}vqpH|G=x}mVr$VV$DXX86#)K2(0%~?xxwBZb zeN67=wp_?^!oezS{J2~?a;_?WvFz>@h4742dzg7EN`s#|La$E)&$$0BZHG^g5Fyt3 z=LB)ELSJJM12Dk7iPP|uQEoxo6}yw}YA={`vz%!f zo%s1pJlDNo-j`}YIZx3dnU3#bM^NkRzLDf-p4C8>=T8gJo|ESOvdf*td4ccW>n8@6 zTqbH8^K2+IRrc@pp}mzom8zFfqGLw78F$tuL`w?$kG(WHNCpar0bk}O3QeEDqCH9q zmQgw0X)l&&$=u_^*frk`$L7}7yOT4nLl<)h5*}J193TfC$Z&~fLV*Yoy*%aB8pEd$ zj!=I3O5DW{ZV(55?gZ3aS`}*a-|`5}2je1hNJ4G^b3*URo4UDqNzkF|XZ`RJw^eR8 zbz3o94y7t{q{4xm+nE!vYVG!Vt=SZvp8sug=l3tmSF?dt{I8hF#uo&Oui^R zPvN8x6JTk4VeP}KiLx!NUMspvdvi%EpL+w@{muMMBt~~q<+pYDE}&b04WCY%z!WX7 zgI0|YAan_^dbkUuzaO;-rlls6-L;}&;iT_sp?F)1lED#5>?NDCR4dAIGXymMT(B80 z3bxsxjUt?l`Sc)zu1c0=ag0gH^(%Ud4!^e;j|^n?H( zu26tglED$omfc&0FAOwj#4c~#|8=!W!3PE=L&llBQwTq2b9>#afhDiU$o=bp8IzGVeR4eb2_VzOE>)H&3XYsdxE1cc#Zbm(&$y14}{m zWi1CVR5B`h!7i0gKbWYG$eaqUU)45Z9ZMy6&-wx;-O3V>NdzzNPAn>>dsSSZva(QK z9ef&L+KY>oGdprV%t1WUDaS;dI3MdV@&OIw&}m?|NdTaT8PrwwnQgXBoXAc4u_jC) zIa)$R#!F62tZ=PJ39zG7W+C1wTM^!`(-$mvQNvx&1JNJEOQ3kbhr0f9iqy30ye}yS zOv-ewG`7=v=X=Do;}Z@`pQ>`az6i+2I`*=2x=wdpCM@niWlBW`fffQw~dCw)LZXf=u2g(6D(j_cuvdym4d5? z7~YPZx5fy?JKv@b9|~ArRk0EA%Y)+Z4fmqu&r|^L*M8Aa7WL%cP7Nv&lwRr*4*#6 z(%Nv=r_Hp^a#$VJ$iuqGhW;0z>^`Fre4h5gFSm8tF3-0=o)-1b$2NzVex1K+eU+n` zJaYEgTHM=a=~z@5N3{~NCNWmvMnpX_n}y4)BCSBXrDA+G{tg6SvLw^-?Gp4yR0wsC zVWq2kG2)}tcXm%c0ap?M4<`9FnID$`|2LMkU1vH*8CuIr?f(aqM=`74jt`D}9}(R) zV=dl1In7i2`JnumI&9go`55t}4TcKFqim7~-&SVyn%;I=#e>033n~{6$Wd(epV;=; znY?kyG^F|Hz2rHFq0ZD%Sl`SJQVIXjZg1!UdwleP*OM@3zD^;YdHcq?3m_lU6()Vt z!FctL*(!G2++Nyit&_px$e-LAPQHWD?*Z=^RCR{0E1zv^wr`fVU1js}o=Dymp6lh0 zf)sm1?c?{}iZr*J?f2fnELX&6erOCy4sc@9q3{irRys)0pO2e(CP9xq&8Aix8N1W6 zi1zJOp45!+bc5Iw(d&|*YrCI)=S}Q=7u^4xiNjt@y{fAgp2`|QOL1AE8jUf3d~;XV zE&p*++7@sv%qx(z<bkJO5c54+f2cEnhJ2SvkT_d2Ol#uw zxnu1yG*pAm^M?*$hz)tjG@mvANZyq?NfJf_!nO2`QXT{2Wn)NAU*bQ_F^Dn4oXp>Z z34$TY4c#R{=vd$g8Xq@Vft#p z5yxH?(uet_m0T_2deIBh(+WNbl|Ln98_N8JHQzyne<}D!`#VoakYfw2KzY0^OW(~c z^2_kG5zW!(fp%fuYOfDizc9Xfro);Iw-1SKSI9?MP}gdN@7+#SK!XKNXM>ps(}{`T za(zzzG!mM!*ri$J1H`8BMM&G~NL7O9a^@(hSnJFPXvQKb9lM_wv?cL&);^XLYB|fzNR6mcj5h_zE+7uz$vEpDm;m zIqm`TDy&K5pSSSEWxWoVB0!XvA0Hk6(n6KBkr|BiPpA5JvB@P>%%D{_fDrm>g zOvo4Kn*!#lu7uviFw1Nxnke~al)@!qo85rCpz-IO>L7&DE6?mUl)fq-hM@&@9uIQkIrZ-jI6 zD}r2R(3WH7eQSnHf&+FLwt@zy^>Y^a7ZrqzYX68ABUWSQs)={a%&(!X=!^h6?u|>; z0~;>ox-FayblJRXf6rq%I(wFwDbsUEH}_f1+BU#Sd2DjaBUK?lJ({xB6tDF~jIM?i-Xg zO*x#nF>Z!BSjtz4O3_mlvG*31hKE_iBy*0g@jL*u%>l+C(5cBob*sVl>qA-WL374k z+a|EW(PPK?Rf=x_pC7#^-d0NIE8Hs8z{&Qhh>$D|<+F5=x@bV#A{0USdj4~-P>#Wx z*p8bn+uD4UT0Qcm=pYamkZp=fo9J?C=Ezpb3oBqg_x(m|BA!}q%R6qO6=cJnF!TuA zSu;^+hvy*T^b!bVLM*-U9;%p*{;Zq)+P$*7N=p?Wid>?=-*0P5*li0g3~qlvB1oy;l&B5t`5$;{;XOyu9zX+VW0spMZ*XJpyM) z>Miq5HjW`jtHDat`_NYO>cB-JT*uwT_9lM?syl|~&Hk<%&xuH@6x*r+5Hq+UySYR} zq=;w5$DapsHx>?oi}3+$dw9% z!5Miq{?7c)!!xu7(}A~f%M8q>y<0P8dGJ|DT7=E@uQmAu1{h)urX@Mc(ivWECL`Q5 z^BmkcR_hh~Dm2ujO)!c=?pTUqx^Gy7M-%SK%*2rN%@U(-M)DB|^+cY_2}b#pEk^uh z7Q21glgC2@)`Y)Wy;#M>RnF{y2A z6hKjC^kobuVY%&Q+egdTZ!xHX7SP=a8I+fz`roY{L}1c6uW*l^xDwFaG=Q3wA()~DHBq6yoM0qS4vGu2hu^KJXUgA_>Zp@v_q|J zKf!^v<|0!LXQ#7#bdIW=+1YH({79!6j)h_|6|}?&nR`CHu_niwk<>03cZ2IabpTGs zKOW=o(mmUQu4Km@mp3@h?q=kP zQ2H3nhR3X>1D7(=m@&Ttrjn6+c2Vz=m{=(ul8RJovhDpRS?=1b8C>#CtB36(d6Uon zCFFR0>lDAyYi+h;dq&8BAPF|`6n+slNkH-?4+K)|1OhS~93 zS-l^`JorqOfeZW0JF;I29WePq_z6SQem93pEkz3A0b${%6$>3(ECebBH#kmEY_3{Z zd4fX_u%zMPK!iU_67=WBqo8jdsD5Z40|rbz6<6=EUUvN5X#{?WIHSSgTeiWYjfL;1>Gga1J*9Q zzywB@mZz4CL@{gbM-!lu*S9Qnw2PBhrM+U*j3-bZGYVDeSON9B!sNp0-0uG6Nx|Y3`U0g{B+Be^HA+TOPYqLrM=*Iuf@{LXym@jeocHL9s8 z;+vt=g3*M9Ic@C+xM+Qn6hei0yKMq0-)32g~1TGEGU17D<1zgmYls zF)-aq{W6Ii7TJk^)q%0Ky7u6sk2SVS%gKuntX&Mef}Z7(Foj^%596r)ICgTQw1XL+ zF$;@V`}*)QuR2cGpSc3{#c=_Y_58hE5;-#0jpp?cIpyyP)6wpM#zQmDFPus<=K{?P zsV$JvYFL2LC-WsC1w43GHRTQ4JIA6>@LSfxi9p(SGO^wBQp;iUAm}tvm%^@C>VrI0UO? z^p`(M;*2&6#-R=_2s@X=9_AjU>i&z^6>D7L@6pB%dqAnZ7@qPk;CAkqCKl%F-L5){ zQ)}SP?AOex70n#-K>@s$lCZF#8-Wc9G9TJaih;N< zRJTL>p=odsOB$h7iC`KP3<=43&b2A0Y>Rofx%AS0>~YoRR4~|=9kgLb)X06|_bX}& zo`c&@?YD8hgPik-P+*eTga3>l8aJKDY^?-cRq1^$G|kEk@a8ggUR$pXuz6$xLbOj@ z=kvgs!R?*diAM%%3H^7f70DEvRfEACico)0OaAp{Q|}vPNJ78^c;?$>IE^am>4tqL z0h?MhGK)M2^WnJd68n3KQt`ykw#_Es*JW7F zkA-%+G=o)S7x;bMo~M#jVxz6gDt5zs-Yb^*5;R5wCaw5CF-n6Aej!mTFS{!RVDPUC zD~6IyOv}5u^`ZR7M!lJ6`^I>J?U?+DeAx`%8m!H0X!-aeD*RfhUOu0fB=x<%1igKF zMpB@f8YKhjFXvq=?crZTwzC7Z`WkLRaQME}BIy3G)lm>SA!Y%{UcbiC{1tU`@Ih{; z71@J6#DOC^6E^_EIJ7rMw7VE zS~LiCSnRdNyBKl$U^h*)Zt|GTNfdGeXc`oM?F6Rg3b5|@i;R54r5)9rK}=Pp=R?!f zTcSSmor+LNC(L3r9z=2%hcGcY??neBFjU>;Y_{x^x`R+sC>?xIvMp-&yqi`sXx2|o zdtaFW5$l)#k@urbAGVJ1`#AJV6S^^T5Kpk?P?G%}xPc zL9Y|nlJmdb>$XgK15{#YU@4S{BDrvKoVQl7eo!o)qf%suVfaurtD+{wAvUy!_`y>^ zk(m5+AGq6~QD+JMuA5~ZreZiWiF8+s4FJ80pJSRmQHLdn8U|-JcxOH%a(wWbUSW*GiGTYnzNdG>~mJS1;2sl9+-sg+zFDCe9 zv$ZnIp9c-zpb-pcmGyr#jte-G&F!?zlyc(z-R$n)+rgC4EetcwdR-TG??!sO?pqm zMmqNf#*o;Pe85-D3NRn`UV#!a=L&g)Zi{7Vh1H`?L6Qf3l~&HuNtfmq1Feug-%TG0&0 zEaW{eJd3*hxOzhuva_1QgX>!)B6`8W1pzqNnq=_j{9KRexOGwSx5>Re2dnVUaYa3( zI!8J7@Kt}}YFVBRL?V|wbHoa>48mO%3vx=Yd)jE&-<8x>*IQTCF1s&nQVoMliTmwA zJ`x91GS?|O|8{luh(&RDH?X4lqOboX0y9;_#(h(xwI*5!KPw-Tf5hMtwG3UpxL0PZ z>B`|G4Tf=fqI_0Q25qa&V?4|^zs_)n3&Q}hD~6b`F-1>b$Z*;Tmu}a2@ZX_uwp74> ziSs5wqiiChVB)~0&xx5WV#{okV`iPjsHr{E6$c9;Opa7VmU1vXRm4ROwS7U*){Zrr zh0zAk%?mIvYUB8$J{SOuj<8f{g7(Wimw-*m(F9sumavFDP>t|C*xsuv>kwwR`GY2p zjlcAi3)_ameh7vTwoeD39B}_Q8A<2nrqw&|W6*8bK*ae5d&J;iie4oxLHf@iI`iFe zEKV5Ra5Dw8GfA9m^N?2Si_4ag^EXa~N-#BIo?(^2ExYe_@wjzeDJ#M5LGLTB(5B$__)O zG4q_9Vm&#`c_gY_kPJojyOrbQOo~Q!{~Va#3ssStjJzLejN=;Lusu|ZUo(yt6NcSc z(D)|@vb8PTa2ZoH+i;2f;E+Ni-55=(=W7v*Kpl4b0!(%uW4{>DK>LEu;Ng}A<|Lh@ z$dVfqgcqAvCD}wXgd$FiDL&Aj3WN24mSW?+CAD>Yc053fZ z_VZaU6$2(-|HOnZQ@v_49WLfp12xnlx>wn7vjjWRYCfzkHjMz6AEhkVPTv_FFu}$b zZ102hZswO0wy1?hJTXw2?ZrAIov^1a#4tb>Xq-zTnmH7C>stnlTB0=X5%lNnxT){n zJL3Eu&E>V!_|hB3q6FXjHu8Hl*=fda|8dq^)vih*JO=vup7gyXknn05DI2vyp7JLK zIBG(Gm6$#m*@# zOcYs9vVVblBAvu=Tx$Gpq06l;1g-Yl^-f38^wPy=Q*(feaU;`GE|iIbwUJV!jXTE) z2?XGJnfMVOA7o%RHz9)Y`gqquij@u+UOxvU1eOM#pWB)X69oB|npGc>hc0Nncw;Qc zuhz4T#o5*6-la5Q3C1~|jEE-`=8S?8=CC|>D{b5eVFq!aftjx58*nf+k&P6%n5Fc6 z+Ccl5-#HUl9P>c##-^F76xmdvga*!Hta$@Fd7fqYWT`fYE*BVlv*Ry_&7O(VN_d?q zUwIB9{*q+-cyGmrCo6Z%oEjQOg?4b^XvW=Jq=dli{6{rH7%I#485c>KmKPtZ9G2w+ zcngo>`Sf1ZTxoZ=*RTm-C!oP9Z~c21Ec){fNCC?iPk)yLgt|2JZ#<0eU(PyHY~Ib@ z{W`Z0e~9$bY`hSI-)Tv@BGm}|G!^|8s@|7f&1_NMxu)cOo6Xq#_qjI8X2hu&71hyD zUGUtDHILR3;IP~|aGkf#jrBDhSA+eAovuaccxbXq#ewO^Bl_!O>kECk@VB!Q1dcNF z!aCpFS~-kXD|?6{R3|LpR5kD=6(U@qw`KvMi53$Q13lSRj%-~)2e7z?O%UH;t@S^h zBeCOa4kjHZ=97+i4p(FEUcOlJJ|$H5`*YkHY6yALEX(_E*k1kH(URMdKNhTHj*a9x zMWW9}703-gfLwdD!d_gA6I!Y{57Cgo5#0e#bI`a9xQ zVa~56Lagea&4}G|8XT3F--LZnE-P5@vNc-B70%w<1*C9+?EZgfx~Ay5x@a9Xwr!`e z+1R#i+i4oxW@9$CZQHgQCrz57{$znwzS|T`oxFA*1=jwpRLLp{!1Dvh>wG|r-O4s zr6QunucWX+yOpoe(DJlnp?TL58ID*h#XRUztyPE{I;+EWN<_pf2$oD`ayz`cndJJ< z2ngnNe)^M*`g-~Kv3==F>Fv&PC~V<&R+CKNC3T^6qzH{5660hMkSWOoaIW2AW(AtT zP%yAvC^Ems6kFV)Cn-E@v4?haX9sf#?w65>eB}DZXt2@vsnwX%Nv>=hiBQ0(L@FK5 zM$@{9ktMO_&^D#67|FD0tPmqMz*298%o{e#D!z05$P-OV{$kS|R{G^TV{j5`9ONH5 zH&6RSn^Ps+C-TXZ=o!2t;X?^izufNK*b14d%P9ohx5n~Mt;c4yaQ>kXbw|*&T2T1fWsb3@9Xol9x7uLSUjbMQ_CrSDUi4V5Yc*t$3`7` zq7dA)Q_K-GR1_A$J$J|Q)zU5iGq!Dc)Y?g2Bi9Y7#ZMq(COh<2ilLFY#a*$^Q!Sz5w5F+2aG$-QjhB7K14&?{f z?jd&Pj3pL(_tazos&OpiuhZn(tmIHMls+kDE}AbOe@t+vs~?cR)gbSufH_BQloLAd zPU&+|e@z}R94UiC4@WzoMgS(x&jyd}TRSxmyzjA3wO<*%#_sf;0Kz!C3mURNH~(9H zNUg+L(Ihg*ksVG*svM1(2sXvHRpilJ{o8Gy4ejM+uTRH)PswNfiA4H=_m94?QHlAv zE)9(n?w;E!SRyi_8cE`rWFf`WGE2z}BNb4eFGq8c6X8)<`FzZ0O_Aa|e8}SX=(8+bP2!bSl z_C29d7RpWS465P*e5aAqA+v)TB%-NmGA6v+<>@a{rgfIAcf$e+Y2ab}EPGvq&3+?j zYE@s!7bpVHs)+9GANstZScSMW)l$6#Qskbb!kgRziN4z-^+iwB3J0=-039v#c~D)Y zDOsx+IPhzcyiYJ zKK3ndON6jI51NBr(_#3p--E-{fb|Wuo%-fZKrxgh64ZUW;XyqYW>O0i3PTJMrrLo6 zp;fRBJ9Mv<(`>*2S-5O~J};rY@%N@*@2ll-sV_^N$er;=PF78_V!6}ln_Abk^A4}K zJ^Gg`tRWSD$7z%_Bg!`|mk+MY_H5#>YMMr_7>b8@!hZP3uWyL2K zJ)C~+s;RLV?VF#n(^*L%+{X19b$mTVx8lIbtzoEhj&*#+&)M=`>C1tlYDH0w%H^1?M+Ex^W#*rEoA0BjTrLm0(VEWr$!O#b@=koWeyDg;lG z<$;)oKJjQ%@Jzdx>OB9IIIQ&>D*+$KU7Wd>>Hu98vC3ipc6e_6$*1|14RI$s48N{} zRkFuk0dT)&$mf!HD3ubbsJM)p*Hh%I$+yO|ZfU8uh|0V2XCLXoLoNnHtf+tuI;eL=T(M*f#2Jj({`-OGex zwF89Hk{Hj2(SRT}2X1t2+w=Mr5^5-;_|T;08p-Dodi)|Bn8a>SfB?#$z+Unf8O|tS z#fajpJ1jV8|5Iz`)h#t(EsVUpWNZp#^_*L)XuANvho5)#){(O^EgGyHL+RR?BJ5Cs zQbuL6@bB7nJynX-=m|@;h_&Zb;Kq>kJoKj^K4fgb@?F$@Q*y}}+q>m*Jjn??hg4$D z$p5e#V9k_%4+yGyBs#aA9;xv;N@6mMWAM%$69xcO67MY z23Z!3XYW2G0uHWULzGpoNz6l{X3@l&MU!3_6yEJZZ$f->ykSVBz3i=iIg8;z^Ko-4 z@&tDn2aRRF%E5~U9*38ul(Il@(@>FRK3-h>2yS`K?bFR~L|a)QWy81Y3em$ntrwfu z+8uD=;B=zMT^M-8duiTxui1$cZ9Pq=aQzyR@8K}Rvph&~2LEsX1;yH)o-8*9){cu2!l^kr(QDWA}``0m2mbHhg2YeP?IAkFA zp3(`W*<=h?eI*}nHvb=oW?Jh9LCE0jylgLVW9u_RgJS>P%4YL-az7La5uuhww#`)D znG20{`XGE=98mc6Du2{qp~^3yaX%8~9MLhljb(`7ZRaXlIvk@oh#R=a@$~4;K{z5k z+H09Zj@)vs@>^D7&&u|SRyo4+qRvEU4h5P^6)vCzd1gR7RIlWiA z%=%npP^w#$D6|-wjK44&)UF}51=PHrEx|0@l#2ulZ6Q9VJkjv`l_K)GJ>)RhPG==- zMSFR6hW2cGc?JeDu=-$ygJ#*S4*I6j-nEHUDnu(J!o^*kS*DP1nx5?B^-wbrm~kny z%=#Q`+Zi;o$7)`!=~V~4^W#N%yq8uRza(()&1qA}aOSA6)1VP0!-&BZ8h@r|-k;AO zFv?F6<}{BN^UqjHL-|m#`$vwpu^%Wwzt>w}O#>ymPubN4f)6D)chkCgD z?a|xIvRf(Ot&{Wi5t(dk0=_j#66B$rjXfrC#l8mwcufp2=MDIeDr3k)>$-kN^_`Q@ zOmf({BK#Z;7${tLwZsjqvSq=pRYLcwn#hGPc-o7E74S+vX@Mjn0pb;5A@EsLq5CAc zeHvB$Ri-!b>hF0cDJvInC{jXX0_i=VPMhKRmD^|RB8ZD$%G%VwCgqh#p`bdu$oF-L zb?`kd{ng8MS8}Bvz#9uGfK#bwkR4;;zN8Ejp-6>>`E%c$w;tMBjrhe@T^c-%a**Ph ziZl>n$aJ%?4du`pxmPM-bvX6GP1(={y=qSgL>;RNy&h!P))n7$ARx$0_<6D6bk*nl zl&6VNP^~>XyR>BT`l`hS1_bnGn7;mw*bG@xn`V20qAz1tV|edLg&U$HDiU%;0AwT% zwJ6U^8>jZoR^@ohezU4LYTzYk@?M7|oD_zSug7c=Uv{31yxz(DNLUyZgXAo~;$Jb` zwkk8X$G%thJ93<4<)z=B3oOord6f`_=uw#NWVT=!@lcH%WM*korACK=XqnEW!f?JC zq{4s&Z|k0?7G@Dvn>2wfG)^WJzi1yr`wRTOCK&R_TbI%?Cn4K!Sk~4sZyO;I!_ONx zoJ#o8m!a7YCqn1tdvb-4VbSz8iYCY8wwlabw`xRwzrY>b_d+2OkJ={x0O1AD_cw2_22)nW78naB#;2NBOpuKlcUi zenpz8!4?2QgwW8@#fQ4pJ<`2A8kkrp6&G$n<)uBIy>HxjBIk@42~YK~G2n=SpZrJ6 z=IPNb1@Yl=jb1sQ=_|Qy8&97N)$3(#_y}AozlzqPt+7lNI4V_!F^^mInqIB!f)e(S}F1JNqeE^MkPq(zqPpg;tMjQqm-n=pX(-7K^-Hrq5P8?^a||4S#k4 z|JtQq8}0$3Ib;;=poJev+AQPK16qkhA}s1Km)MasELs4v=p@5i#ZKk`TX#-Eb#2!> zaW!C%CLwPf3N|9Kd(y{DQ3!*|ml`TF(u_Qffy5}_Kf2D@`<08(}{cX4ww3H=Y?LqoSj zA75h5%xmZ4z)gXMxJYCL<1VIQv21X*0$sOeL4*^=XP>;uw-7hid=bR@wY|Lbr0RuY zb}3&coWpeY2|$70zk9S*8#uJk1Q$%!-cZarIUA(iPa(#2l6icvVu+=}2&txsI-gwj zkEIH+uwGf$PDR2YE)cYv#3g6cHW9_K&vUxOi3Nvpb4OmLD>#((ZPy9VQ;8;iHwz?b zJ*1Kk7cI#iV%*b~`)TfyJaI5KL69sHyBPqUg?l;^^g>EBucVz>*by8PR2WL-ir9V} zpT%W*g=`&G%M96&Tr?zH3^oZvLZ^Cz9;KJx54$wF6Q~UpTT7e${!*>n24lUIBrI@g z#o?hqPsRl(6_K5RBTaDeuoqK85n>J9P1%_Ch- zSePv`UQDSj!$|*$vz39aXUn!?xq~JT6{XLv?Or0YWD+{mMTi?dtKT>Y9OAHbb4nx>(-ecRvJO#RPwY1_E*OpS6mIrABq8H70eSg{Y>>1pyRTum8E{} zsC0cS7%Z!3mG6PUyE_e|5n_uAq<43o&f2|X98vv_QC}2VoC!YPL9Q!HzfW+vXSY54 z?pxG;*;E}!PI;9?bDta#V-{+>YgYQp6%h2r+A)y}M!j5d*RF5}W6#tc`m4F@co)gs zl*Nq7{*tY(($V&_vlF&_R6kh^Q#&$M37snSq0Cn7-HGU(J?G=1jFjY!GY2<2?9P)3 zl8!?Cv!z5}HX5=jBxZyZR$(6zS@zcPOX%Gf$uFcLGo*vwrv$jq^aIT&hCgRmm z+G}bq=H~s-u6E@R-&|6L#5>+Mi(Gf)WxpmFWN^Ppzs%8?t^;a{Pn%F3cCP595SvOV zr~E8Msa#aA@t>NP)rxx?V9r*MzliXtl94wPLZBQ-Cv&&>qhoj8EF|6b! z_qlVj0=;>quYVST-uXUM)w!+6$JvT-@udXFlFBV>YuhwhpsVAQYi#6l;hee%zL?HUe$9Ai=~G<;D_<@M?;oB zqvYf38*z+l0{PEam7ni7f+(iCScm+rXUcix$JN2UBw0}i5NztuHn~AALRIYcMXzUy z6a!jCr2p?C)3B6P)EEGMhDH=ijUy)zP117UZ|axh84?1Q{Law$-|qOejg3dgGyPD| zH6s+HW5zb~86=(=|4?D!T%AVk%9}KmPC@7|?2^k zq{33hA=9zMr!~mtwy+vYOQ8a^etYSMmUO&3;t*pzVFtgtqH3MV3#eT5@eU85}300gPkWMR!p zVx1~#j{be&0`v~ohi2{P0pXArE5g0~`CFX;W#75D=ME*?;2|kAv%_F$Z#6z8qODT9 zI#P=nM~pojnB4g3taX_gQH#I1q4j z{sIEb?mFwZ=}@X?P#l~qOu$EZ>6T`8y_}4bh4L5)ixzu3oAsTQEjt|CX%T&(7?8+M zbeWt(_x=0=>bkxP9O8HHb|yAxQ&2KvP;QMFmnG;5mS#3?j^cQ%4X$5TnZHc>{Z?#7 z8F_qHuRhvJ#S(ZMw;6GCxU)T?;I=q$8FP*gw2b<%+#m>9a9t6-mAE6}n5*fKu#Q81 zdZPSkCfY%o<)A|cn?&eqVPRF)g#vl2E%F12+S87Xx5;h5YyCQ^xe!Z_F)B^BrHr9?Q%- zgISyP#^_i6$rb6~8KzXw&W>f=z z^zNCOcW4?9De!CyTq~Wsc7}nzb#0^>+UpZoUL!oW@YrQIxZzPTGB8+CISPv|%)EWj z{yGHS1yt7_sv0H=^5{1iNPwVcI=yL)B#;x#G9g3)M`A08>Iy*viQdpaM(xas>R05O zi~dlmL8k1#(sov05mjl8fPpDhA%e#}K2x{0ptq=I+PeUCZr4aD05h~BUlx}?GZ9#T z?T9)vR7c#K@Q>pz<2z_2B}^c7HbF3x&-h~Kw3q0t-IPxKPS|p=m%;Jh&0q+)sQM1vv81_QmSk(9< z=GztXqw+!f#H;LN|Lx@)FB_54Kay)1fQyZwvW=R;M)%1!YV1WyX6whtwSOh#w@%$Q zRRRxnW9>uDQrN-)`;*!B;oaK0Se#lX;K9g*RDa&qzuT9t8*ywIbiQTus|^rM9Xm^5 ztM~>6P$_|N5ghl5Eb9kemV)vZDPytU`tHmn;34fqYUn?w8nmV`#+YLbPh#}ORGBnYwd)F5;58wv>XxXvyd zwwgQ4^5@$Y^*B!#Z`QgM;#?kKjoI7FnETJBGJkq?ISv{SyHWeCzOuAodAB6$4BAd) zn21+L;X#jA4$L{0!_UswdG4D+(%7zJ+ak-K&2UQv0+p}wBj6N1h)A(kOD4{%J+?NR zYYVrAABl~#WVmk|vBy{yG7=M|hz(~4$L$Wh+SlVc@kIW%TI6W3FrYTp@uI!{f~qg; zzQ$~fOUca8D}d8)Z{AP-+?oYPH#szd0y5#86-}jKfOI$po)%aDpdP4-gG*08fC;&B zJSJ-_LJ-D;5Auz2&}r}bKovG0sX+69iyI7ee_O#hc%cwkQ)P@Y)bf4CP{ zx&R$2+Os1n6-VfYEu?%TIh90g-Ro}ur?-w8TY<>|R+R)7MMRL~g0t=C+}>@0C$phkeS4X>v7g8hspSWZ z(qpeC+S6k&WAGn1GwPUeDnVqx;EI%T&CE*x^7QN`sG+s5E`W2{947PBgg_7#7zr83 zh2uk5r9QUJB3${P;qb#eDSx`RRRUoV_X}RMH&!vogZsveo*f?IrDv&;>`JVmO3;Ar zaC3YnR$yR;X$7jNDxzF}#M}5wKuK3QMXT6^>v=KQW*$pU)aA)WpArI?A`@Zz6_4pv zKHT$yh4#%BNH{wKm$t&)6<7VaF{Art{!geRsxlb_`+*d7>nm0oW;!?Ls>SyP{*nPSVQKay`;!8dW->P5#hy)1OhNe} zLuW4zenY1c>cixoxO~yV_Q$;kbW(7uM^F~d*8p50--Nq zn16D65MW94$4UA$9Pqf{<MNRM3uPtW*?~I_edA;kM7^^;LpwMiXuGZ{dmW+ z1$FRCNdW%uYB_^I2!q2JkO3G$0AFnyV!OlAu8m_@RVehBrGTmp@f$hA#+*LiTZ0b= z`^aL%j90iDh0`L}^OptW-_zm4+rrNJ#Jb#k^*V9((+0etj@9d3o9Fd=^RSp09xezz z%WMI0-m?dGR^0@26VOz@YSv9_SxyhBg+$3DqJd^po;iV~%pIyN#=p z4`V!a!lIpr0jGypVVbAYvy5U_k*^vVBXhNT&vl29!Dlc;D1kQYK(ul@h3N+0rGCIi z%3%X{Fo`8T_BlTfRNGz!#Gz+A!c3DgSyo}rP)M4lwhB15iHM+9wRCUQnLrV1^1aDw z5AKCA7!wL%t`*rSDK;OUko+Iws0E$?ZWJZ^rjbTgLE(27EE!;R`l!`Lqs7%0Y_CxH z(oml~HZ}nX#80(Qz7EGnEV~#%k0y3p1avl4`dqwx0XpWd5^hC|QIf>1cFUbhb(z35 ziiGr(h3{Ujn2v+%FP!Zzr%T%KIE0>29Ct?nRZf!+!Hm>ht0FvN$i4`v@nzKUzaS3~Ml zdDi~u-ib*-mM+QOuA*46^1pzg1%huX`U=4vweW*&snltEn{fY5b*-JCTuW0{)eIyk z_&9kG5a_jHll1@6-b_J9cMnVwraLiBdWn)<@BNhQQ{XZq6v@+~ao zdd_8C+nYFq{uaNRizIQgBxmxF@7@w^nx^<*eHEU|@jJLY%@4PdoY^BIXp@eOBN`_a zQkfAln3j}e_IpPH@K07cpA-1;Zs+yYi(N?A;PWe{XCDta2;tbz&+4#I-GBs7wu(u94I z(XE8T?%X<78K3a-drjTzpYz1;D=D9=Yu1^<7g*~1hmj*EU-6i=v(aq=Yv5~EVp*lj zOPe!x9u7(}i4lsR0=~etmX-3rl}2fj47NZXW(MCf^OS?MP$hhIX)SSOxz`iys@XoE zdGiN>|BfJE1ZHdKIt1cK1f>z}YHzl}BCPB&*KvO9Mf7xj>n2EO*I&i|!06^$L^Ab< zIo_*-!9`K`H#dw|$*kGH+t!N@T&~^FGdSp$Sv-uR4=Rn0Xmq9I1>+m^)*ynbTk4 zj1x}Ke`M3Z;E)5+-=anrWd#(}`hJIF2muoDl2(W5e*em1X~D7voq@r`s#?cm%IqIM z0ycAbKY@d^d3=N#kJoU5=!4B7F+VS?W?`vZ%9SBr_>nPQ;Ith8n{bLmvt~j0`pvFg ztP$oXeE(OSa28-e#vs!b~;~L=Z3eX61*F3#NWP6W40U=4tjot60+QXhRN~>gnOw9+s-}QDPPGrli=sF4O|Kl z#o=ZKqY{_@O#NPvtn#Rx2=5IQ8NIkG+K7EG4C7LzKsI!A>(8D0g{t{Nb68XF#VEl0 z&Kz1^6e901flB9eCv$|&RVsC_4_$Zs%1|FA?tA0U&^n9qc&0zfowKn~CUMYhK8Z|+ zv=v%rz%eGY3bET1fsl~lU#mSrR&!-!ySN*>fTr@9oO%#9_P0I%C%^^xtt+p1 zEz$`?C!*qVP?6Fq5hkMG=3*A$&hZ&E)^UA@U#0)f-}(J8kHB1I&2We6tJ{jjNlk>? zZ(3$ttYQTXbUD=^GT(XS7HS?2M!v`as(S>^qsf>QIu6dI_2JZ72AF~G=5nP?EmYKE zT_Jk+z-Auvd)z3vmX-OmbqU77v!tnXyucP`sqIGlb@H+JLc`l+4d6`T$zK(dm7tRd zdz*oIF@<#9O`SAqakmw7Y6aOZO-IJ>GD;m{etkNfHT(g>Ch@~7Kgn`{3~l$`_pXC< z{XD-zwg5f%gAKme^VdOmJQ+k>$(}E}S3W_{sbwjK5h*=1MNiaEPSpkl^VtJGI>|o; zak)C~lU_q#6`FQmpuM$KYjyR^u|8DgIiK-;OlN0Iv5=womax0`VwsAXgB7@oq88>=bJY<99s4R1YR*YGIH(QY3butzJ zS!bd=>bP&iVzP5hqD^sqb@b51WcbxS z#KI#E8UxC#=etAsGLrwi^0T<#P)E#?k57j!Lr;t6!rCt#ZCvaxtGd0~y8iJN42Km?o91@0af6SzC8*I&f_>RyxqlOuBr!m7{E*~5k`!czaxHcCj!ZJFwqM9y*NiYBe0lsbd38NHc+^<%M2ufYNB-kX=-7}or!WE8Dhha zelQruauBxB3p*U)G`R5CIi5}6Y3j30Ll1!i4-u5>lj+@+==(2@sUj7~`!C@j&{th_pXup5%aG4L48PTN~e}eNQ(t z5B`rKm&5nj$^qoISLSN!z<)-~zsyM?g|lw+*!@zq{8I;iYEe#NxGzFU6rvx*zHEvM zh-3*$?OcKkO`nIwNDW2lh`L@(GA5gpuShUfwM@-1Bq###C^mdJznj!B*oP_O*q#B^o?>f?KXG;p4<#+HOHiSjo zDEG2rWYMoKhEHuRy0R&8sD);s-kylcySe%$m3t&f&UsdLaiR^ z2rcB$@Ijft8l_UKMO@cs{BRrWUD0bCE8X$P@BT1I!+x2wRSj{6&U-|iw9jY zTB~vG2{0R#|I$VAtw?_^2dZDxp@7Z0F?%vZ4KjU^^~e9osov3YSBS1qi$e~-a0I6! zC4FlMUTWDJb@fmr$%z%C8gS6>r2A4Q$jtT?HF2+H5$A2kqKt38fkzeV7e@$eNi)P1(#{A=)ApvhjHRR;M9F}fj^D~N90x-@ zKwmD-Eyyr2J$V%N1?t$`Y7q(KfvXEXJ5Ikrk_Zn%N_Z9h2nt`S+rao25cj|J&dX(g zCY_+;sP^rS0|XE%Afh-)KET*#CkyB~Sr*{p?+LnL{6U$+$+yQ%*UX-t@7qRfh)^CJ z!*J;@#31GLNb%1)atK38jj8CM!@GRzE(F@WF@%$3_EY>~+SsTiTRVrUMXwB2tl`w7 z4lbVSluVXm*R>R8+~3=N^^=M~O=gFYOib9YK0S5M6b}50jGdF-G1K*R18Qrvuyo@j zNp!|M>6yck#oZ#*=x8d31)w9cKG+pw1eoSi2^Iv8vH6tsE2ixQ6EYw6C6OHbxyW1q_M zX3?n13-RvkXrG=*x<0S&ChT*P>8UAQn)LB`Id|w3f6>Y`n~wCYGoBuyxP48rLQAYy z=c1%cjAYtDlrJiS@DVaSLy@GDJ&swrT?@hU%7TWA?@zVsYL}WX60MbpCt^^AR8#>S zNfANwPF^UQe};p5-1$TFl=T-;}7e1TL5W`he~R( z#8|sOlE>s{4d^xIa%^+6`?7l{2M$s*>I{$eG8oWN_p-1sd>!SFZ;ekUF&ttZ=jZt(Aifn>vf!A zfjQww7$v|l!Zm~EW3veUI4v@X?v89VE6pH2+s(VcXRK5yn2*b&&J{Msj_Zz2F=zlf zASAz)=f`Hr&@o|cMW2yB_JbyrriFW6C=bnkv1tq=&rc>D<5)`7!#X|({8Hx|9p0fz zf4&Z`hnv-Ms_%A$gENkI{vmbtL7nqN^aHPLceG>Ac*VGO5HNe&`iY+RSnnI{i1IP*JQJ!M{%ir2uyKxY z8_bQ3M+$835^DPj#82Y)P&@XQJcO zd;tZS!c5LEbR$s;^&&Bp>-}p45DRj~Id67?IVaVWkx@1{0g@=M{FfZafu*dz3x%Xw z!|cN8ME&fK?8vEG&s%N~<3HnDvg{h9lMyp`?;Jl6t+}%JScQ<;#-<#9DTk}#8T4Y$Tlqk%< z){Yy**A;jRS4`T`I*o^n+9kpzaoAHGl=IeZpURV zaffvIDFq=xY3oCEx;1&!%p5brXT{jgE19HHq0bg*zZt|a!ghSiK_<%sKm<;K?gJVG zoYPIDzm{@~KGULaQbuNJnIlhE-}3cwr{pzlw& zn{=s#!C>vR$?D$OoU)DFX9fN1KJ@E5N*DG`wT^8stl|8HxYqBt?$b?TI013`vaM#} zfWFP_Q5h*bqWrRwh4p;^yOPD?1nHT7o4N2L;4xlsgU1<4@rR2%W5nCDs4|KPp-Z`U5?zrzDBmK}UTO!AKBtkJMdA(=0SeSn}sFM^gFo zs${%#yC*8eNOcA$&#BuIQ(Ppk8`6HM(5o(;K#oYd&BosmV$Q-4e+fm`#fM;!@U+_B zL6&V-TOg7td!O@E{`xyapdC>krDzVW#(9Jsk%}bhWsZKN+&Nu|hVY!0jz;iaJ$M~% zuDw4jnN!Ohh2UWh(w6vG(LTljYiT0ousHny8@AuvTmKBb%E)I+_xwi&9b*4;#TpY$$l6k~o^%j8yg>42_nZxg zuyzb4f;u%gA9X?Vg$u27hP#W7CwYD;?MT#QTeVv!^ZDeY*e?i%rh0>aNV&}^ zjjhuSi92zuH^ZBvr|8a>;j!Z~{P_i{UEZbjC?pc$r=p(;i;-nwpN#)hrRnRRb>~?xA*6l?r*GqiA^k(O(Ya-HlI~%G46zfUni?|fSkGQ%u zFi)&Q0|Oz3HTJ+R741;`OWrQ`b62KzEC}#h=Oe33^iWXTkULemyHUX*Vfkl-x^EzW zisukj-v*Cm%gqsx<)#yr3(yEy$>|zL&ik;Bh5)S8QD*(d)2H*&^=}8kn+ZDhFuYQo zE(I|J9-8whYUcb6tZi?2zWKrVv)dt#^&=8mzVde5x`1rLt6SJsmRzPryMK6Y5^Ad& zE{P|1R%dEZa$SyK$WK7OkR#JPWm2bRN-Q6^P%s)&cNi@BY&{EUdp2a2qUj#bu&yw} z2;j!O`+L=eDaK?62>@C(!IfMc0-KKx79bv}vQ~jpv*4Mr%Y!RiD>T7!d@Ra>pX06! zsD%!z=d6bcV-^;gDdYoH5eba3-ljX}Y`zejHv8~Jdr+bs({5tW(j%0xNMbpv;}HD% zB607IWnYeP6Ag@O|80))lxhw3Ti_KX&qX;#ODjF8j+SzKD}`utR{1awE5Lz_1U~~ zG2X@*^YB%_vJa82s~h+H3UDOkbfgX2mwNe}O9CR?@%0}V zL8PhWJyLv2k2UyL5nVQq*tUMR-5R$gNc^v`Nz1}b-q{~B*PYZ1pxYyFND4fIcW-ZN8t-9_M?u?ucC{A+#&@nb zGq~^dt{Wq&re6I?N^ihR)|x$E`vf)<7qJ$+`0Y4&U7%7#a z@&oyhE}@1T#M`@MQz9fr2+ChWl*)Yybk?*_O3Zb{cQRwP1jr6d6rYaky9Y%6lDxKx z5w*nVX~PK%h2NmngOech>Gcyhtz*?%i^ps22-}J_W6WELzc8AkF}}KAvhF^cxjuxb z3Iu=cViSqIVE1f53ssWPpzM9b1-?~0Qlsrb;HoiyW0>6RedNnmfot&ysH=SB{o<-# zc}sLacU<6HL6q`g>q zdCH%Y4*r<|>l};wC%c)5`&OS*2B!k-h7AQ{%c`b);G#e$;TXs zvB#DW*KbCnke)V}S~{})<#)gFmsPuglOIfxv@~mlJeL(c&Wv`xsZn)Lbg}MkC>7Wrm2Csm6R?b zn>}ExOCp*&qFb3ME1CHhebtaf%h44i=RZf24_?A=mjb@n8|$8=6AG0f?`MHIJ8{4J z8~)8>Q|?USwF^ZHlhf2V{p|4f%}qyWXn| zl}{{57dapCrm7@19GbM4o}B>_<-C&hPQRR=uMPtN^pA@6wDM#6@J2*rybY^`pkjU6 zy|t_IHM!0BX34#sB!a2YJcHgEMhUuHhcS4L zd?Nks)qR?3MRlRe1Pzz*H1M$c&$Z&fVdM$dl)f-6Hu;b-H1r?k-A+XGI6FWI z_~}dmKi%L^ohY*($@SYgzx^_NLw;;^6iyzcG&F2U>cP7GK!wPn-E}Y2mSy8C5uC51 zrlx}~NObki{xT{O(tolg4D&Dv0o~e%jK~5fC*itpj{eTakYj|IUq5KM_?g*R>Hl^O zpBMbt-a}U*ApzhCM#(YPENZ;r{6kcbk?JBeCq<2hv7aq#{S-jMrg}=!JD7duZ5o~H z7p;(PtT3nGt@))j0N`Q6G%$4SQBbO4OucsYnBmcbjc34|N5ct%8dqYWnK8o>hVpeq z0{I3Ob!G>Q?oE68Wa479q%XC;xu2gRffr4QV}PLtC$bjoCTSvoZ@Jq(DhBcNk93*N z_OT@$(YnV)u1Sl^KEql9`Yl45s+^C?ol{f6yD7}eJU(hWHEpU4FFu25n3(OjfvppdPnAfr@Yf_(HuR-Y5kR_<^XtSq z(s{lulc(eH*J}k)hqeSCdb=E_b57Bq43@V9colXwU#XX9dtQ!)E4!}M&^MKm^=vCQ zF6p&MnYb)3eK9`1?tf`#d@5p+qlu@jfC~Il1YD-Y>=ZZ@^L@bSq5$h#TYnHNGWUth zm&43ZEK{qsfTIyD7@Bk1=-|(40&P%DaJm}{VFfUew@8o2xGPOSp(SWly|K0M=cUt3 z$t1c+_!=$K zcXYZjT@hw5PD+P3=Z`etkM-li^R2Z`liEiUBVg?8fWJhK=jm&JJ+JlT=q>Fsf4>`U z=jyQQhHU(9XZkl?3~?&NtgY%+Nmvz(r_^TLDY*Gke4MQk1!0EClCL=}2D49f(8MI0V560Ue zg+j6KY7%K&iJDzJr~rALRi%#^rf`BhH@Om&T(BtF^00p|pz3AMIEcdVj0OVJJ;ul# zTH366aC2xso}&v%sPOE$4D7&urAOUA0h@+Jo2C;vbf@PIU=Oo=BCObw%Cjxeb$|Y6 zcl>9V`QvssGmfet4bwZbWfxUoqA_9(cmufF_J6cReQLY^T;UN|V^*ba^IPtWo*gSD z_1jtN-#luP7OZV)vAHeVy@I)2|7==TxC~(plqA+fyXdIsfO!!`Ky)!C*Z*yZ0kbMM$>b`A>pX6OWlxXBkjTf6%b}3IZn#0^n1h+OC@`1ackT zJR4!M=xp-U)X|ar>?C3o8LkD#x!dx~%m)xgi7XF)52FEzFkeg$HHA#!P0r(zrf=C7 zP}|wWmiF}2X&E)cvW83^ZJI`je#pPd=D4fr(O)@S%{MtQS>lu-bZ#k9dBH?+lFXhHaWfD7_$oH+*cXl=pZkX?mu{2T zs`(i@zJLO4M&&RQ?!6Pj{wViOrm1&&$SxS%#h+dFdJ4@+j(R7^K|1AUjGw5|lu6v7-O5L<+|6M8#ar+M3Hm>eXUfq$ve=GZ8i8fbE0!F-tK#j<@{ZiN3w& z-tG^=)KQE-i~e3{u@rvA(*3QyXTVNx^DwsEmhVrs0W0Q-eH3QWh_tEguncRcZx#HO zJy@BCMJaTGa#QgBD#61!$g!%$69oMHmVuK1(@Hxm?c9)&=XiMG-?OCPakg+H1gIE> z9K}JocVaVt*MIB%Zjo{btWQl3YqMV0j&JAQXM+}TZ?y~`2F?9cBF^|xlwg>PbFuOn zt8#{SAL{i8ks_E>}(9S z^xmog!4KK`N8K2l7#FvUZIyy{FDcq$D`Rt7m>`d+#J1sPGD;M|Bg`k5<3hC5Cyzll zmFP($b&E;c4C(?aRSbn9(~AFWyordV%yU50dwC+GB4a>q4Amc?uAwF)41U24OEmTc z^)0(yCMw_xT#c6Z-s`e^(PBF1GbB*ue&THj{#eN8e?Ce@JeX1G^7-afjmp@z{2hXe z`af=_CVu<@IzeIC*{MG-PbVx*nL8&{v;uEv8vi~O&p9!m&qyTb-wN0KyhwWLj`!t4 zV~kfF`Zv^&SPX>|q*#nBvVWfo;?Z~GnqXxdTv?($oaPkoDw%rEH6AjBa*zfwv#fr% z-N<}=0w<|kEbTyq6NewgcEJS98`+0sv2(hG^8B2+&CgFpNg5)TlV1QPP(a=eB8T8p zth{H;vc;E=6EGkSOezhMiXP{dZz*q8^IUbcIKcn#&k3=&W(YFUSRo34&78t5C+5{| zQDdJ&^OQyUP3s#UVEf??17diwAmKCmukxfJs1+*e$Ri06M|xOV?+1JyjB<8pZh!NwdWAZ#0p|LqgWA(JIXAxJNvyzTVjBreafYa6R zQ@r~%?VioaR#&?T=v-1Ee97d}oD;U-q_O!piJFj6^V@SzocG!oc~y0n@o?vVrhvcZ zci#{|GnCGjskuS~(mg$@{lej<5V8JAO)t4`pNT=9%Ae35!rjK9nt@O7vJ&*;AIW%& z5)oj-arZ@~`(WquZ@AQl*7bw*%EFdmeJ(E!fW!W}cw`$;j#WVzSQb|!E)qgW0zZw0 z?Ko)U?brG?R@l$7dj>2WJ9u~p5K)bCn>~+;`k!p;b#!tp$j(&VLF6Qx#OL+>Auc$l zq+{@1nRSMtk>eUER6dq78u*D0dFLHY$$omGEK&fqVr;F9rQG~m^Mv|9@7qBO63s~T zrW`}rx^=^tpnp{#xxIC7++5rk9X8M%Wpe!IVSotB-dkoD+coU%Ql*(eP=!O^Xnh|n z{++*9JvswQMPvvNie*XSOfs+yyL+?8+@S1uwUqaR@m^{BDF zO&5Oe#K~*Y0G>@J%saOeM9t5#p%H>4RBCpw03?A+?7eO?JjT|=3lygC;L*UkV z{HE6E(XFY!2i~(6%Y6x-;VZ!hiD++5)2nUo9h;aPw8~xXTBs6LuG84~lYoA(2t?nu z*a@X433b80S&yUVZ1Zp)wf`x;IG561jtmn1zMo*J_D0T}nRtcwwqF2m!DK?bSWFXJ z!PjQ`8s9?vC|*VIaBJAVJGT^cq!a)+UnRV> zWF$x9T(+C=>g)~a^SYl#uK#v%@HjY-&~}sKTL@C(OA(oic>D|g@iR*_#hYda9ML60 z$Qk=cR3U=sreRXeJPdRTEpnL~w9FdLGl0~uWO4Q=mm^0{MleTyj=RbcA^R2}{@p=p z)uo`!X&V({FHof`;^i;{ult| z9N$KGk5y4lYsQoMSvJ+Ub&JH`*G=SMInN%Dz;@si@dkC0DHnCnuYx;SnJSeC+CwMt zcUPNbYRB3z+pDLIW*R+(-C6OPkQBtii9ljZHWfNpSfvMQL`2sAWEM`tPwc&@tNT!; z!E&*nTIoLJ)=4{QkMfN5s|24dX1+mY(+LNW!;my?-!;tV^3t@tQCBq{nrZc*P6<0EQ&&oxp?JEXh?T+>eCIVSy&pxOkek-eFH-E2-u%9I~sL~J!agjMY#hdWwje@&3umebfcj7fj!efoFi2Y(d zXAk~7htjr2NgkP)&_dVxyc~>JU2y04+#179;(zaB2ia4%w;cxu4%OvLtDHE}9v3u*Feff9F;Cwl?n7uN`%ekj_6UfRrrGFp%9GQQpPHK=|N+ERc(Y8?vw6 z_8!<=l)x2=_Kdl$)fd9gVS7E;z0*+%;hvst(>)l}N**%Eo5%Yrm!KJaBPFOPlx)5~ zuSpImh@1Gh#xe(awhjUj`>wzO79O~q_+yCgT<(6uQ3cse2id~;P!av!rfnx@kAme} z-ki{f%3ntsY)G72Lmh4v3w5P0YC5>4-v6hn6;B zeA5&&z6UygtCN9pDPM~j~3Y+ZkLpZLS0 zPL{r(6*q94vM{c}K;2mLufca=AZirOsXv<%Vuaz!@^R*J04GoN9UAcQw(N&qARYe| zGCzb)al>HoBC;ZkYpl4R(zl%yjt&pl=W^Aq7VIr<{VKU3CSs;C)mO`btVZRRa`VtI zsSo@ip4?a7RZhFg7{5p1b&$vsIdaJqCO}F?CwK4@ounK%{q_u!g);<$$MXOw-8k{W z(vz!)B-g%IZt}zXZ*oSH%^@;XVK!o8TcI<9oW$3hsm3Vp>&`s8XGzo*->AbZk34W&gg~i#yeLt#*JDj-%GQ$S!#u2 z8?ns5k9skKO2AgjZ1&rPy^p}yUJf+zdpd*aq>6x0KpZu?y6a?K@lQZGDB#T|e$*&s zp>I9S|Lnhic6{duuA?>{{$;O{>Pfs^?w=hDoqF&Q*+CmBuwKxCX&%-B(#E%hzFgcr zbtjg(yliLeZI2sk$t=uNJkR_Mg)b*AmE4^ZDrLWrIVp%Kh60(qHC8eW>;jG>?U$rV z!BNlx1P`o$HOB5`9}G}2nOi1iu=j3x6Nj-CR5T0JM6T&jB*3VGOO7Z{>*JN_uvatX z`#ILGZ!E8va6n6&psN~28>J@)K^1D#EsoP%+tOXP@~{M{nOFUu)YgFzaxpnIr+=%@ z9h)&jb`8j)9Vh*Z@}g6iE)zw2FdAw12nJPL60tu&nw=?VbFdw8=^S!mGZno(|8>V4AY6btCt2o$bQ z1Lza4_7k{CM|%!^JlA`)#^|yavu3$bfP3L^j3qceZWuc9kcFoYrGC};%~j24h#|Fk z)oBw~4(id*IiFs14LnmqL~T(^&gLe4--U<^l+#gL;OfUpi>2X*-6fwq-eDF_3Nl9J zCgT-oHZrmLK_=?MF_<<+9A(wU&DQX)f)NW3Db7FYoqy>s`oHaM>jKUP7|bo446SsRYEjE!uS=#)x7HVnnD1qT zCWVQUR}x{~SX9XDs|NjN-~!x>IxsQ9*vL=9NhaW@iCIO5Fv^@Za#Qg`4m%0@5^~LJ z=!^(C5Dg^q2*VI5U~q>)ELjh_j33XSAXmVR?gzkZdCW{@BRV#5~A%r4HURQbAq@&$gMM^U8fk;0crtmf0GrtWJ>)G#- zkNz?-hx(j#_bD;CmMfJtVK(a?aF|mw8mB|dZ`Y@_zE_e-z+!q`yt4mm{=JUc*%iSo zB-o|W;O^wzXxrG8Y1D<<$F?rrI~5*Zvq@(q*53u?lXXI~y0x{{;$SG`-nBB~mm%lf zIaCxY25@%^FAkVxkzQu3k~RFi1~$vh)B^wZy>pvL!GjVFy;N#3qTRSP%z|5K^=Sm} zm@m_kzg<=egY>hlF+@q{U{f2y6(vn$it*l4I-w{6U$6|lGsQm~OhA1}mG<-A*LMrf z4r8h~j7Ig^Hm{Az>aqPx&;N#?z15fHAmyJ=ADx+0 zmo+Yv?TbH~1lQ^lIvfhKpTd8pg}`3H9%m;_9MRLxuWhIY`(+9SIcNUa@4f{ zczzOVEq1c5{nn0<)PdpjkX%>F1zNFo#2lU)+wakUh#UI!sib9O7_VP<+V;f#`dq%&0 z99>*$dupw9|H2p7i_%XQT~W~#?qyPbvPH`7DMe!P&KW`Qpe-^*wB&19a#m_{=u>;9 zORQ|!nM*&o9?6-@{fq-fu*3{y@(bfrTtNkL*7g$-*?uN73l-;6*-ZK$kjAjg_Q9<- z10vh2(R*d2)0MW7luFQd$AX_balnYasVf$RTJvd7LP#o=(B290=wbXhXg7glT#wuV z%r#Y?n)b{WE`^I#Xm7oH13zEnf+da)kY0{KoT%gKBueY;%pr(HBUWc!BLQ%HC3sz1 z?}oz#PntzSSr(Zb^RdpCKb;|FaH4IpM#wftA)Ro9Fjv$b1p8o&%$qM*(c$}m$&brx zXIw!C=7XN^mmiTWUKG7MfgZSZelXEUc^p(SAy6)m#1oU%aU=EE`&dn0{m1p6T! zgo(Yg|9m`ET7socKn>|Zs*lO2hO0n!uELV5N2iV6%n$bNmGNGna)qxQXj8~R1_${! zBt>t6k6?$}1WH`yv`FD2zQK2Sh2r@8#Q+sGImHlhJRmoHV>c4hdNT}x4XZH8*c*x= zZn(73adyv=OpJ>ar+%Gxi$W?2^-8Dz1k7k#?tM*Iu%&Pe1e{nfBo|wp+CRCFr3>wm z>#vS69B0aYh@)un{75jg)HBZ{!v}(0H|j0~roa z{LgLmM@RC{RN;2SEWs75J9|_PcOesFBbKaE#W6=o z1T~*Ad*#iE))dQ2yE7GjE$!LkUsIXHi+Q~O$57rJg(nU+#A)ow$V%^6IpquP6BdBa zq5u*IR2sBkfm&bEp@}&BBPsceno(JLGATRB&{SAsF)U;kBq-d-NbWaF4uUm9m?1lA zSBFm0UblE$@Hu0O2XOh99o@s|yO;N+o!_24-iE{#J23`4x3ZA>wc}mXbOHmcS+{*` zuN|3gTj|{%adyGpN?}pnzGkL zjt4YP+!KxARk??W9Q%{&&Lq$ z;@5ypPx6;R!t#0J_b$pFbDy24f6tcv_VJ@aP7h|lj4Lyw8P?=CO-^u&tM*r*;U>h0R$XSw0I zJqJ>iROTN2cz0Al+Wm-c({Pwb!)LG^fXV_Ay>dSSHuLXZtU@M=@n6L#FdTG@7OrE0 zunwQtzuXZBfFVfI>He3qxT!fM7*aFn;&`G?#Kz(ZCxqjR+cOO4cDoC$q;NOuV_R?1 zF>AB<_zkYS!R68?J1RGgys$y`pSf_0v*T%GKQ*+B@mHRmE2@vSyQY3aQwPk>C3ANc zO|KSwUrK>W6fxCO6TAxkThk1ROeI{ew5`8ez`}%Wq({K7HJeu_yj=i3_6+iBfm0V9 z&PzBMYUC+@+J}l}i*Tt32Ay_@!UW;bNL4qUSQqu7=P7l5ZY&>ZSFwut2Y?G8}>$_B)SI)m5_Yg>F{&Ods&$;V?T!D zsC*@M_>QZwDlj`v+NI&A2nn~~Y_FFBqhXWwlSj+vlIEL^s$QqU1yS3ed`%30Q@}VA z`-Wt;@|WQtAtcY1?(R!iS(knD0FSJ$;lj{qh>_rX$KQo>fL*U0NFY3~#xJ*t38@wy zry}R#9Xk`2J1(f4AgYXY+GZ*XH#}VEBccZ05ViI||I9E>mpgR^yDZ@!|27_=?SW3i zLW0n}z7Z0+j?jM@-l7m!)_2~VWHEdW?}BZ}`hA!}vCkw5rT$OS3075>VyH{ShvpVb zaJ4X|5!?+&!x^vU%*h~yihKTxb-Tv5wrx(Z>p$D-MuMrFIJ$yij5;BySGe#T3PZ8v z94m%|=3%smO(cb<;_FCOjkpux$2p7tD}HgFm&cLf@?8$mS(1HZ=~C+QS&3N3KOr6& zlJCmHvVz>@vlo$w63ZZ}F-9pA;61#(W`{PmszeP|QZ8n`Ur^lr9853yLl^bnE3>W$ zzv{CkAr?tEXxZAQqasZK!slP7i@IjZy zg|K-&&dmk|BLuo<5uDl8p!0`KV|QjqL4uH=>jEA{@t67FkwSw{SA%Fc2WqtHLJ*TF zLhJp;Iz69Jiz20A(GjQ$C}*$}YI3TcW`v?0U+|TFO%IYsy-9Y2^Qk$qVz8a|x`NBl-v59SST&K463pZe%-?&*tJ7aBPz8Bz=5oYL(*^jyUtIKWLog{n1OPi4mY z_TG#NYHP>5_7TcNnv0F-au9RUZ+z#6%w~t5$3%BUOmZB}y%OY5n~#gpW4H2dkh2Xg znzZ(_ym{om8kU5F@7+;EzpgsJ?qVZd|0u?vd3pfF4s7M``i@`wGDoWeqMhvck?bBa zdKxyy!;1R6rnjd_DuLw8PK5$WB0d6r-z+6R{I_N~<(VOWZgXA&CoOF9G&jlQJE@>M)G!f=)us2(xt; zTO2tRA2-%ckr^l6P~J~+e2D!JsGbadBw>cK9c7Eq&_O>;q&SPt>R)9zEzw{dOk;X> zjOMY4M86`ozeWtkbhNl&LSBpnDz$A1|%|6|a@i?i4dN*G2K5^S`C(+mtsG%dMgm}|Zb)({>^K~y7=OLR>x6w-f;QLF8 z=GN9t0hNk!z{>ZRCdJ(i>QmjS{FXx(K1$4CG!nc<(>3=;M2c;e^bGXqC-=P!zs`D4 z@D3BJDa1huR2TCkEks~YO@!DBpKn#+9*<@-G7a{uN+Tddbz(m=oP%DbHSBF>ZgD$B zVpIwWC{eLu%&CQk!`;{;=D~oEih1bc~Xi98JOhFooll4@8{h8uz zn0F=jVGdVlA`~jZICw{+!1rHPKLbaA7OIBkffea7jCgc}@V9hnk$OG_OF{+uxEPH8 z3W#weB3vBez3EUQ5POxL`SL*4D{Q+8f2~4~v<>ZT2Mq~e$t>js^OG3w>T60b+Hb~fW8{>a$ zVP|7J?#Hn_`lI>@uF{kLG95t|cdyoOHFv-E=V5{r%OEGo5Gx^v7*F@zfk|G4X7_aC z%bUF)cmu>vm>2tomGUy0$ik4JGKm%y4Taw+(S-y>NPnC<{ndZeuha7=#U`=eN{r+! zw)sjUj9E=ST@vAFGE0Z@pg21BZ1J}6OBzQ0eq;FCQ6hH7E(=4n{>aYXz5=F--0x|Y7%1Ag8i7nE~2jL&Tk;jvArgNyo6wo?(c?S*`I&<{?-kf8s(U-QF>VFIDUA1xV?`!?NlEA;B*!lZnp&cb>Tcbbk%ztgj2(8 z_=8%&?)pa8RE&!~=`(kd0xa&|jptayUgqyX+QYL%8nlN2W3x&by7-b&1_;r(AHX~f zae&AVa(Ov)PO%Pe?vHkGv+ZemGUT*;1s|z-o}OMQ6K~C5GSU=Gb$&V>^wF!gVh;Hy z$;PM<;aL$w8j5iR-eEEsq`h>Z7&`$3vE-o6x!Z?}5u%nN<`SC#7(VJ(j}qZ<8AGRU zkhj`i$YE zaF`)@a}|s9ML&N{X|`{YRUAs`@@J2HnnOgJN$R+GrMGR{!e~&HSCCSMigT?M0vE1# zsd-NggC{_KuQ;w>9Xm|St!K|>+d=od-&XKa&f~rO6K{+pRL8)jbH|j8Y@pk9XKIGE zb`0Q5yEGquSHl`kr@w4Rc(uYYkEXK2>Bh=zaL^a*9PFsIov^&Tvu-1b+0EwqOmz|5 zYv*3PZ*9xeJFzA*${mdTJxWSN-ocCRQU1EK`cja{uO2!?np=(1Aa2c?ZLVsNBPv0}5MAtHH>!MJNJO}E#UjGf zzVZ7R`@bAi9G3Aa0iB3dytpwyG-yXAwm2n}&G@mR^r5ghI9CW>ie0tP|65@is*!hs zhn@PUy{ro+*ACVZR4+fZJfTBBogrQ7I*a8ZK5gvgyb8g+?IC0Kn~If!<#SWV@u*WI z2fHHx1^tbQtjBMvzEF^sn}=>~6gdsTVPnZ@b?Cskl(aFoxDs8|g(2ui9r%V4GAU(K zuX+Vl$TBjeY-&UA6rD!D6igZK zqYTRdK9{r!6ql#Llk?31qxRmnCvMNEsj2&lu@C+P%t75!QT4zJ9gs@wW{3SVK3(+& z&@&8FHI*5agQ(}>u3q5{37iKA$-D|$)J8FRR*#L-sf+Ro$aM6k01IVj5RjgP&_jFN zNHh@B5DyCFxLZu>a8`i>pg3Z)H;IJOHa4kQ4|*$usIDXqvUDDikN4S0eEQ0-7Cuee zq3xx3xb1e@{Od29ZLcft~RqJA*4DfG(Bw0O?7=1_$%c@n+ zg!1yTR^j>PkdBU1D;frkQq-(Mp_^q->NDKhHyED{zU65R@7euxhpXU3apx$TXnVT0 zuqYLKusJqs>~X<`iaG0BuWg%!K5`H(jGl3m2I%juc6JqQ>^hv$r&+*w^mAD>{)$6^ z)d1rYFd4*6Rn!08P9>uGLn?j7&P0YY3yuB@o$70_YrEx3w6%Y{M9!!%4tmTXLq8vls+R!;EIvZ}7ho{J1yH*z~7$~7Gw!y>v3|gCTh7YLU z@8rX-(7m_GI-Er2V#X8?y=Nqx8@3g*A>h^DtAR^Drr_801B}bQ?qbEFPVp5(NB!l7 zbEnifK$$oj?Bk0hWozP*nGkg=EZ3IJ-f2*a15 z@KkDKfmzK;q$Hy%DnYp&Hhf3>AFd+--znxSs_;4N)2?%Q->Il9nTN!<7WOrh5>s_O zXMke^3On_0l?k&l6dKv zEe+{JL#WRu0Ct0GQz7G^&;7uy&JUlSB;LsOzJc9`KT1|_~)oW(BG&5CaC-kM( z(wG^vHC*LBcgFJnh_wo6x`@tYlKabi2cw){IijrXYyr29(U@r6K$uAB-UfpSW3^@3 z>GE`rGy9xha^$G{znQLh=KZvz=k_STzG8EGcggw^K4D@>L@nAFrMyCqc>oB|m*?kW z3O_|vhximS>A^uGXUU@=_hLtzfNUc?|In^{f&97=irQO_BLeD!LDyFsP@U>Rex5Zu z;pA_)yo*OOp4$BWwH{%2)(Ah&HqFC55Rmn!3fZ3Q^J;`HGv(ven>?}$xR;#E5(Z9h zyO0JQnuTiQ)GA97CKo{n*&AgMw zH(l+VqTUUC6Co=X&J3_lavb&W`r5e+szSWZl;DS<02;=M?UKp!zcugJ!gZx2_a+H$wuvX*B7h z2ZxI`M7A8<$Zgz7U-D&@fZK=4kWOcdDI%)FB<=)nDHop3f2f~l^cKNRu+Nv}B|ek; zg3e4p3)|=7lBc%H7<*>2csrzbqKPpI9;^uUBB&s1j1wgAI?RUb@U&!V<^-8n7_!PL z$voS_(C^Mx+5K1N;8 z_S}&8Fxmkq0iAn6@!toOm_D=4Uy)5?Z zylTUU8#|QH0;eUGi%6qCj-K{}%;@hL)4LL3gz^7PXZnTXwtfAE*}YPcj5gD&Friqu zatRtWORuEQIWxHv|1YbKl2BIVVJg-RP#>pV3Pu zgHN>}8|Y5Jw#*O#3u{`@$X_VRG&9}c#^I(fL(a78#w*NMJ6eT}VUF2?#BZ+Nv@ouh z8%#ACM%}sNt5?)qdahUE*_)}MHJIlctu%m;W_hzu&-EgA_W=0io0Zzj`>BHFL{|kmtH+HkQ?+}7@Jgy?X z))~er;=#HkUWVttAYncmDxuRy$n`S0C!ZvL!;e%9+U08M2hJ7Np+V5~xD4UHWINRR`!aa!CzNw1 zSW=;R>X{5*jxZ*#Y9aph((U-rtum_**N%aD3+i{r&>g9QMI*)b3u`8kINfyhThox{ zA}ejEzh9<1kJFNbQk2=h3GfiY0TOtmw=ujr~Z|J=@e+iVd&;J8Jg!>g5yoX7%T9Y3I3)cCWo7y5)vM(Xh^mP9Fp z?UCYOhbPQ(z?{OKam(K{pftO&uP8z$BxW-farrb%G~gfaJkh%aeje&(B{hM9^Q1g7 zkxZ$P7?_a`PYpSWLi@Na1UIbHOgSAtc)JJCJkV2OJQ+?Bu)(?QF>8GzlKA<9IznS% zM2JK0x2w$_T&m0V6Dyf*E-R=-^cbXzIG(9J9~KMf-6k5(Q{dJ3GcX{_7G3cEaUA3P zFaPI_PigAKH{4|gi^vle0|q#9d5-3P!C0Hm>C+4=f64Mw<^M?U)$m_%9&rre2JOSC2esUf z!zoYgRDekBk7+2=GW_0)4wUo@l$>sin1ct1$9kC+JPa#1p(>Q8a-)pwFMyf(VW>UB z;RdmSl~5FtcyRAmGpN9#(2PvTwp6E;(0Sj&!wS2;{z^KZJKV&%n zO2bb8Bx8>a4j3F!rm#c(gJ$1`aVr3)VeanhFn}j0lZmg6cJ#X&C@=28oR7-DZ;*_J z1`)6wGCaymyj*TB!EAY=}DBO zA6I$+rOA`sGO-$Vm9%bHjL_4gI(H%&Od7@xxJ3tEr+-wXOG1@3>m-Kh7Ma1G=+8>bC|Lie%Y$q0X+5#6eT^ zzWi?b;rdV${Yndm?f8D5+Pqol((0pc`>61&on0zmL?Q?v2CYyIFR5XASVxCuT@(Zm zw6!$&_8sRLCaWe7b+_>UL_;ap?G+0VSZS}wxf^qc0Qm_)fU^wrBtpMo?SPHjvm!k$ z56c-62_VC|pJ)4uJv?^ofdtTrIE@L|_+PtA$DX)f(xms_c(<}#&6AJpIM`Obl#qC` zIZr>SZayH|Tz%m&w&g%y)v9a}QO&r*ZgdoR=0RHiy z3#^L-VV6VZSIsCU!swU)zE3~2#tWarsNv`zoX74oK&q6|fK8Kw8T$-Ut|%D@cEDl; z`Q>SW164af`U7;EPj|8|ij;&a6IQMo+uFAt!8`4!NYhO@Yc*d=esG^Du|Kbib3I~V=YV;B z+4Ao}wRHR^fgE($+@bg5fOungbW~6$Kio z(8>ela!QL0A9gW{ez!x{zgNenrzDy}uz^3%#BC`eV1Y|qlZn^*aR@)r7aGG0K#(Fc zjT&wUO}Je4kl4900IiBup+~oujM)8pYJ}$FJ<(o!Q}WXm*8v1AFpbuR=LisUQbOA@ z@q>-?sFrI`Uz?xO_PTS2u!?i<(;apk*CTS8$bRYtZ%>J(u1ieaEs}MST~m2mcF*Xb zo;gT!lrb5jYo>=M`{wb!+JDam4CyynlyEPfz1uTy)zBTNj`8&VUnf{iDc8s2;+$an z%;O6HJISnZ($Ma!55Bf26h%fV#ED?iJGrTD^6;P?0^jPiZl6&3ugz1?^Kd^9^q)Rz z#EJY3^Z8*WFh%wY~ayU6i@==c1infQUp3`O~Dt z7Ed5mzFgcu7sL=fjN7Tk5&tXS!zE3SXOn%DiN{N@4t22~m|G}4C#k}Z=p!5@oW~3f zliSEXYi8abzLny2aT zArBHgO40S&nxO<>rjQ5sR9(c#i6qB1X%PvQ+=FDULuhOzdUml9QM0W$+Q;nS1k7HM zk#io`oimuVL(z?l>%4vsYXRJ&89k%Mzr^zzi_E{RoSfaRTP)Ka2W zHQ2Ka$>X_FWq1w~bq27_GU_CHLc|b1ZnEmwkUS%#dn_Tj7am)qA@yhh-o)uLIbLgj z6kH?p&I&K7kgK6!7>+H@&!nx@l(ckJgTALDY>r&EH%xUCn%RjSHE|F_{~z$sBikU? zN5)_U4Kgsa@t9V|DTCO8bN>y+DvahnBO?TARQbS?LmWR7uf!Rz*HcBLir3*F4(HOu zp6V(umRIJ^3zkkY3<(B>y_=3)7yXYtZ}Rv{7kWCHaRb4|YN(#xWhqZhW{kK9%%diI z(Q!B{$fc7nn7xQTuREhIO2#!||RQ@))!(W|R@0ocv)VM%X;#lDvT4uKTr zvkNHsvo8#Of4JKQ4Ox7`Q8TqY_wp94w!1rS+|B0VObX2!5rj+ph%U z5Cm3^mTs28aVQJ`vXVsoue%XAENHvhgY@8hM2K-&=RCYx3jR}KuAh-c4;bX;?-7x| zZjV$xU2a-8B=>ph+8zd3uFLcN0^~L&w2kgCZW)cT0P}f>mVp*>DX3Yk6tLf0IRSfD zAN?#z$!pPnh3u7#Tz)y4-<)vd2(KjktO4=Sx^W#LBkXAm>W4G~s7Jd|L5EB=e@sz; zElDRzX^1##K?ucjit^0Ij(s5ThlrGDW*&D}S0XR^ZPAe&Em9P+=wb!Kn(UYLkq-r* zxxNTX4qt?`K?NbqO31ZWPv=)7r^ zHH&MYd@eWKAYz}!=58cA4%&G}o^nzUeRRP;6W^@4!~7cip;YlbZ^XM@Z#RIpyq1W`jzHcd`mWBxhSndS1&vrWZ@$}sDV3=|H92z7$CU%_;q5} z4!#?)Hv6k-E!nT^Ww5%bAA3&j!K1~ceBM_ z27%{#busqj-gAO|+drHZEGN^!hQSQOLzY5?RDXL2nyV5748mqUn(g$P)ZcbzO2M9R zWO7N=!~*m)2wf`xDr<+wyKd~UwVO1Q0dLF9Lkcfz*WXEU%yUNQ6a5QcTH!T;cnIcjj{RT+Jt z*Vs|0oo;TK=irR0D;`EAux25-^tEIS-$A~fEc-fs*P%;`ih7;R4kjTb)!Pov)YABD zG|GU%84FhZGaC`%Zueyp-Pg4VAZN7@et~LP1SnlhJj4>%r+*Rn>mcm@3W57nOojdM zY5^)MU1lT&@0{G6*?DS~tbf0~x{Q9x-Tf?a>gDN>V;!ov8{fM(ex4Q5? zT@bM(7)>Z>6_{I>qqf@A_Q;cFj~+)|#%*pDy|W{RJqhyH zzGCTBjs9H*aMxuy)g)q>`+`%9E>z?8P#h_(B#&0M;j-J)B?-c5U z0oEEW0d)y9L)X~k)CwHNwPMXAHq3A1)KUWmI_8n`#^jhPPtrO+r2*}6gj!hBLg<9!WMln)R#zAOMsoNAhF`{8NJt@}dlRu(JoX#+HkhxOe>TG} zYhEnchF;X}|8%I(-?%v7sOR$Wm{GwErE2Bcs-I(!oBi32)}DI=0slJF6ohO5d-2|vBd1Epzjim(s4MXx zi^SdW+OrPdjw#|?h~Wk}b`OB?vWQVT{V}&^Xgu^&t4GcASrp#@V`#f>@yZq@A6_=@6iGjAxt{D zeLLhCknN>PELd|lR%zWdy)2)DoW@cAPYVzgjSfiI+N>I_%64=^j85qst;KDaQoY|7 z!j^jrEZ)JQxk`UIkS*JYyCdbI4fdhtrGg_1WWlAc8fr1>EXRQ2yJE;d8OpA5(T2U= zyzuY19(NBgy!pIjN`QTUH7)^J$M>Q@7v!yV+v0pxkEr z|7d#0@V>g{{X4d8HnwfMv2EKn8Z@>W+eu@mF&pC>G;%Cs>Bmd@f(TMh>!-6D=mv^w%lY^`$`ekV=t^F9KX7aBiF+O@-u9o>yqjs`|2aIWOdy1Nuv(n{a#xd-F$K4-MM)5lM zqef`fm*hvu%xsZc@y#v8V`VSLCt zP;}$Mg@oNW;N)MbQT8W;X4wG{ut6I?Wc55*ZFVPDcDxF_NIhcH_M2~fz%1VZI-n1T z8d3=ud-hWaF4Q>JRAWVI1`Q26=Q0Q`N`J*np^%W^>V+br?r|g}s1D6JI)IoR3QW!U zR0U1hf6`|39yBIjZ$LFLZa~GJ2g4_`<1gIB2up~tlxruETSYEzn!m{1xL_C5wY@La zGuP6ZY+5Ii)?=2_-tLLgmN1MzDI&W&*mP-rOVFb(2h(J7uc@n9=jFGp1;EFDFB997G4`=IFXuqIVu5z7TA?-js_P2S+q9>qR#Asw zj7bA^bez9dsz0Vs_e-e>wd?efj-W5bt8{))v-NduYyBH{Ms}_!^X&}>`kmnaJ3rZk z*cE9c^ZG=QMofwK&87Qm#kC6hTkAXK+_1kax{A^9tH~iPg0;fI3aXp7aaZTGnA$ze zO!0Oc8|z?RE4fT8;rnL2&rJ#@ekACnt;73dl@A5l8sYO=!NMz!Jtd!Smdhu0RPpRL z(aUJ}ibk)VgIv24lb7*sTsgcv+4Hg4+!*02T1r7Hvp-3tG`@T+CrVLl*$-Q!p-%wp ze@AO9-jYd@dnGOn?gNhsM96GdgZ`~2gOjYqoV72z#dU!OxR{R=Q9W&QF43mNNINj( zr?>k#apCpv&6?m*HFaAXSB8FusUiC=$ z(2ov{5!dj!9B5!eS%6LO$ptzi(o;qY{H6<_;*2@^>;`j@JAZt)bigcIHyB3XjG;}f zXN&0tvA7S5(i$I~Cuw#-)8MQH>h$VFM^_8Jcqt5>f;_r|4|={@K&j;qE|3H{TK5yh zKDYpD<9)h}OmNG3b#@coOVP>e8(yoBE&t~Gfi8K8l7{|+?GR^WXFJK5ave19EUK4L z74xSE;k?^yuhzP{Y83=7j;ZpAJFd4{J9d(x>W5=Ud*9w^>*_C#5K^kuxP-`u0G)jO}Ab9^&4oam<P+<%b8Wbf9<;Qcj53YM2|(<@GUxS#qspFxYz1-GiMov?uDW> zSq{KOV4R9MRw+d;(Tl5+Be#HV%hIZS6*pe%ydUwiN6hkZz@wfg8QnsXx>)a*D16Sy zdVP$CHM)fu9uqGS_em)xFHf45iiI}T`d2M^c%vCUht_$OUUZ=3JC*N#j4Kfy`d&%{3;>iiAhiXG#&CWse-9szR;OmvHL2XlQ>N`0vFQ zqe2k5mawXgo#a)S^8A6rU2L3&ku){ynM~2pF0BwWGJCTcXV)al`nT5vkACl>&ysN% z+T%-(zv|;R82;LDiBU;ep?v|)xMrD8ce0|^Z|8jiicx^YSE09vFy35;hIJ6YAvqg0 zMricMF?*lGUUEi{HwQ;6y~zNMqFesJ*Y4jT4f?J|@yEOWrftB*XhYrq6v~0G2}0WE zHfc$`cIzfV16&m1I3HVUbA%(2ssI_~8v`*z;75c7l9afLAQ-H_ptC0>xK*V?#6!Fe zNqgwTGlCcd6&j~I3=DPgY>b)Nznbm@3VEgf{{#)=2R^nUYTvvqk2%RcoMVfF9ZMdd zM^R&Wp&jcH{TEjL(I}-gf1j

;n*(kB}m!57pXY?rwyIca5%6XW_Qhxq}f%GrJ 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�~t#L0SNP(m6J;M=^&V7pEhuWZl0bb(~h)rUh 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 LG=$^T?VtP)#i7jT literal 0 HcmV?d00001 diff --git a/dev/assets/wlivhzq.DuBHk1fh.png b/dev/assets/vudteoq.DuBHk1fh.png similarity index 100% rename from dev/assets/wlivhzq.DuBHk1fh.png rename to dev/assets/vudteoq.DuBHk1fh.png diff --git a/dev/assets/vzynugw.C2qyL0pp.png b/dev/assets/vzynugw.C2qyL0pp.png new file mode 100644 index 0000000000000000000000000000000000000000..6b3f2af6abc44f3eb24b5f09007e4169dec50630 GIT binary patch literal 59581 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

opZgPxhP1>o;IR z4=|x*@Rn~?3*9#KXW=gg?Hg)d zLvrU#m9DE>IlIz%0F5D(*SwMfYT4G3_(R*DuHnl$%1!n3&muER)xDver6=)R>u{N8 z=s10*;M_SZwdjsUHj@)CHj~~78!12dewZ=zBPaQwvFQs6I-aBI?L7shQ_mczrff~l zQ(@C)Hhdp0_x1>VOTP)VPHk%0A%6UuWEz+rqDW4R%e}BnWqJ_x_k)3;boLb^8F5Q( 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

5&VIg-E*KQkHCS74UsLK14mGKbzsIY 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 RG)SUQv^Dn7GS!Y={2x>1w1NNt literal 0 HcmV?d00001 diff --git a/dev/assets/wiiqzty.B1-COp2s.png b/dev/assets/wiiqzty.B1-COp2s.png new file mode 100644 index 0000000000000000000000000000000000000000..0e445b5c56a468d61e7cf65a972ae298f438b2a9 GIT binary patch literal 63143 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

ns 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%0DLZ{NwYuS2lROl8(5YxgwD$jzGw9&y^7 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 literal 0 HcmV?d00001 diff --git a/dev/assets/uozbjwy.0f3Lq4Lw.png b/dev/assets/ydfaqmc.0f3Lq4Lw.png similarity index 100% rename from dev/assets/uozbjwy.0f3Lq4Lw.png rename to dev/assets/ydfaqmc.0f3Lq4Lw.png diff --git a/dev/assets/ydfkdpp.Bj1uXsmn.png b/dev/assets/ydfkdpp.Bj1uXsmn.png deleted file mode 100644 index 7fbc46b5ee612a369a8729f4c95e1dc0ff667799..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62950 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 YO?8XXh6#m+^<_D8@|;4Bobm1d2B}jM6#xJL diff --git a/dev/assets/xadzjhs.Cx40vhB3.png b/dev/assets/zbdndpn.Cx40vhB3.png similarity index 100% rename from dev/assets/xadzjhs.Cx40vhB3.png rename to dev/assets/zbdndpn.Cx40vhB3.png diff --git a/dev/assets/kknjmky.0OJvb21A.png b/dev/assets/zcclcqv.0OJvb21A.png similarity index 100% rename from dev/assets/kknjmky.0OJvb21A.png rename to dev/assets/zcclcqv.0OJvb21A.png diff --git a/dev/call_notes.html b/dev/call_notes.html index 05cdfa2d1..1ccac7ac1 100644 --- a/dev/call_notes.html +++ b/dev/call_notes.html @@ -8,18 +8,18 @@ - + - - - + + +

Skip to content

20th April, 2024

See GeometryOps#114.

  • [ ] Exact predicates can be defined for lower-level, more atomic predicates within GeometryOps.

  • [ ] Add Shewchuck's adaptive math as a stage for exact predicates.

  • [x] @skygering to write docstrings for the predicates

29th Feb, 2024

To do

  • [ ] Finish clipping degeneracies

  • [ ] Fix cross & overlap functions

  • [x] Benchmarks to show why things you couldn't concieve of in R are doable in Julia

  • [x] profile functions for exponential improvements

  • [ ] A list of projects people can work on...the beauty here is that each function is kind of self-contained so it's an undergrad level project

  • [ ] Doc improvements

    • more

    • benchmarks page

  • Methods to validate and fix geometry

    • [ ] Polygons and LinearRings:

      • [ ] self-intersection

      • [ ] holes are actually within the polygon

      • [ ] Polygon exteriors must be counterclockwise, holes clockwise.

      • [ ] length of all rings > 4

      • [ ] repeated last point

    • [ ] LineStrings: NaN/Inf points

    • [x] Fix linear rings at some point to make sure the ring is closed, i.e., points[end] == points[begin]

  • Tests

    • [x] Simplify functions

    • [x] Polygonize

    • Barycentric tests for n_vertices > 4

Done

  • Rename bools.jl to something more relevant to the actual code -> orientation.jl

  • Doc improvements:

    • organise sections
- + \ No newline at end of file diff --git a/dev/experiments/accurate_accumulators.html b/dev/experiments/accurate_accumulators.html index 0af094e77..a51f4ca6e 100644 --- a/dev/experiments/accurate_accumulators.html +++ b/dev/experiments/accurate_accumulators.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -24,7 +24,7 @@ using NaturalEarth all_adm0 = naturalearth("admin_0_countries", 10)
FeatureCollection with 258 Features
julia
GO.area(all_adm0)
21427.909318372607
julia
AccurateArithmetic.sum_oro(GO.area.(all_adm0.geometry))
21427.909318372607
julia
AccurateArithmetic.sum_kbn(GO.area.(all_adm0.geometry))
21427.909318372607
julia
GI.Polygon.(GO.flatten(Union{GI.LineStringTrait, GI.LinearRingTrait}, all_adm0) |> collect .|> x -> [x]) .|> GO.signed_area |> sum
-21427.90063612163
julia
GI.Polygon.(GO.flatten(Union{GI.LineStringTrait, GI.LinearRingTrait}, all_adm0) |> collect .|> x -> [x]) .|> GO.signed_area |> sum_oro
-21427.90063612163

@example accurate GI.Polygon.(GO.flatten(Union{GI.LineStringTrait, GI.LinearRingTrait}, all_adm0) |> collect .|> x -> [x]) .|> GO.signed_area |> sum_kbn ```

- + \ No newline at end of file diff --git a/dev/experiments/predicates.html b/dev/experiments/predicates.html index e2bbc0a67..34d8fde41 100644 --- a/dev/experiments/predicates.html +++ b/dev/experiments/predicates.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -59,7 +59,7 @@ display(fig) end resize!(fig, 1000, 450) -fig

Dashboard

julia
using WGLMakie
+fig

Dashboard

julia
using WGLMakie
 import GeometryOps as GO, GeoInterface as GI, LibGEOS as LG
 import ExactPredicates
 using MultiFloats
@@ -116,7 +116,7 @@
 
 GO.intersection(p1_m, p2_m; target = GI.PolygonTrait(), fix_multipoly = nothing)
 LG.intersection(p1_m, p2_m)

Incircle

Creating Geometry

- + \ No newline at end of file diff --git a/dev/explanations/crs.html b/dev/explanations/crs.html index beaac79f0..33fd48434 100644 --- a/dev/explanations/crs.html +++ b/dev/explanations/crs.html @@ -8,18 +8,18 @@ - + - - - + + +
Skip to content
- + \ No newline at end of file diff --git a/dev/explanations/paradigms.html b/dev/explanations/paradigms.html index 2bdd08992..e9e761dad 100644 --- a/dev/explanations/paradigms.html +++ b/dev/explanations/paradigms.html @@ -8,18 +8,18 @@ - + - - - + + +
Skip to content

Paradigms

GeometryOps exposes functions like apply and applyreduce, as well as the fix and prepare APIs, that represent paradigms of programming, by which we mean the ability to program in a certain way, and in so doing, fit neatly into the tools we've built without needing to re-implement the wheel.

Below, we'll describe some of the foundational paradigms of GeometryOps, and why you should care!

apply

The apply function allows you to decompose a given collection of geometries down to a certain level, operate on it, and reconstruct it back to the same nested form as the original. In general, its invocation is:

julia
apply(f, trait::Trait, geom)

Functionally, it's similar to map in the way you apply it to geometries - except that you tell it at which level it should stop, by passing a trait to it.

apply will start by decomposing the geometry, feature, featurecollection, iterable, or table that you pass to it, and stop when it encounters a geometry for which GI.trait(geom) isa Trait. This encompasses unions of traits especially, but beware that any geometry which is not explicitly handled, and hits GI.PointTrait, will cause an error.

apply is unlike map in that it returns reconstructed geometries, instead of the raw output of the function. If you want a purely map-like behaviour, like calculating the length of each linestring in your feature collection, then call GO.flatten(f, trait, geom), which will decompose each geometry to the given trait and apply f to it, returning the decomposition as a flattened vector.

applyreduce

applyreduce is like the previous map-based approach that we mentioned, except that it reduces the result of f by op. Note that applyreduce does not guarantee associativity, so it's best to have typeof(init) == returntype(op).

fix and prepare

The fix and prepare paradigms are different from apply, though they are built on top of it. They involve the use of structs as "actions", where a constructed object indicates an action that should be taken. A trait like interface prescribes the level (polygon, linestring, point, etc) at which each action should be applied.

In general, the idea here is to be able to invoke several actions efficiently and simultaneously, for example when correcting invalid geometries, or instantiating a Prepared geometry with several preparations (sorted edge lists, rtrees, monotone chains, etc.)

- + \ No newline at end of file diff --git a/dev/explanations/peculiarities.html b/dev/explanations/peculiarities.html index 70a83f326..d24f7c8df 100644 --- a/dev/explanations/peculiarities.html +++ b/dev/explanations/peculiarities.html @@ -8,18 +8,18 @@ - + - - - + + +
Skip to content

Peculiarities

What does apply return and why?

apply returns the target geometries returned by f, whatever type/package they are from, but geometries, features or feature collections that wrapped the target are replaced with GeoInterace.jl wrappers with matching GeoInterface.trait to the originals. All non-geointerface iterables become Arrays. Tables.jl compatible tables are converted either back to the original type if a Tables.materializer is defined, and if not then returned as generic NamedTuple column tables (i.e., a NamedTuple of vectors).

It is recommended for consistency that f returns GeoInterface geometries unless there is a performance/conversion overhead to doing that.

Why do you want me to provide a target in set operations?

In polygon set operations like intersection, difference, and union, many different geometry types may be obtained - depending on the relationship between the polygons. For example, when performing an union on two nonintersecting polygons, one would technically have two disjoint polygons as an output.

We use the target keyword to allow the user to control which kinds of geometry they want back. For example, setting target to PolygonTrait will cause a vector of polygons to be returned (this is the only currently supported behaviour). In future, we may implement MultiPolygonTrait or GeometryCollectionTrait targets which will return a single geometry, as LibGEOS and ArchGDAL do.

This also allows for a lot more type stability - when you ask for polygons, we won't return a geometrycollection with line segments. Especially in simulation workflows, this is excellent for simplified data processing.

_True and _False (or BoolsAsTypes)

Warning

These are internals and explicitly not public API, meaning they may change at any time!

When dispatch can be controlled by the value of a boolean variable, this introduces type instability. Instead of introducing type instability, we chose to encode our boolean decision variables, like threaded and calc_extent in apply, as types. This allows the compiler to reason about what will happen, and call the correct compiled method, in a stable way without worrying about

- + \ No newline at end of file diff --git a/dev/explanations/winding_order.html b/dev/explanations/winding_order.html index d97f5a1c7..3764c7cff 100644 --- a/dev/explanations/winding_order.html +++ b/dev/explanations/winding_order.html @@ -8,18 +8,18 @@ - + - - - + + +
Skip to content
- + \ No newline at end of file diff --git a/dev/hashmap.json b/dev/hashmap.json index e57bc6ca0..25cde6a30 100644 --- a/dev/hashmap.json +++ b/dev/hashmap.json @@ -1 +1 @@ -{"api.md":"2ouECU0_","call_notes.md":"CwmDWxxT","experiments_accurate_accumulators.md":"zt5Wx885","experiments_predicates.md":"DADaA-mw","explanations_crs.md":"olo7NCMO","explanations_paradigms.md":"D8UL_RQZ","explanations_peculiarities.md":"BPTJUSzz","explanations_winding_order.md":"CwOzGM5W","index.md":"BxTfxUBa","introduction.md":"DMSw2cvK","source_geometryops.md":"DNnOkAK4","source_methods_angles.md":"DJQFUrD6","source_methods_area.md":"WQrOX1wx","source_methods_barycentric.md":"Bposdlxu","source_methods_buffer.md":"CueWHjge","source_methods_centroid.md":"BQUmMSwV","source_methods_clipping_clipping_processor.md":"BOh5dOOA","source_methods_clipping_coverage.md":"DZJIW-uD","source_methods_clipping_cut.md":"CZH3PQSC","source_methods_clipping_difference.md":"r4ONkeOe","source_methods_clipping_intersection.md":"CCcO6qWd","source_methods_clipping_predicates.md":"CODrYlJF","source_methods_clipping_union.md":"BdEMEvRX","source_methods_convex_hull.md":"CedUcdWz","source_methods_distance.md":"CUPw5La4","source_methods_equals.md":"CkYarU2j","source_methods_geom_relations_contains.md":"rZ9SU5W6","source_methods_geom_relations_coveredby.md":"DY5ZSx3z","source_methods_geom_relations_covers.md":"CPJ3Bl2j","source_methods_geom_relations_crosses.md":"D7R-Fl5Y","source_methods_geom_relations_disjoint.md":"BDF7Z8l1","source_methods_geom_relations_geom_geom_processors.md":"BZCoUBOQ","source_methods_geom_relations_intersects.md":"DCCZpt4n","source_methods_geom_relations_overlaps.md":"CvcH8LNG","source_methods_geom_relations_touches.md":"DsnREoFX","source_methods_geom_relations_within.md":"D7xZ4SZL","source_methods_orientation.md":"CJ5sSCzc","source_methods_polygonize.md":"CtlVBLXz","source_not_implemented_yet.md":"MCIqLYiF","source_primitives.md":"DgVD9ya5","source_transformations_correction_closed_ring.md":"Ctg_GWEB","source_transformations_correction_geometry_correction.md":"CWM5TiYs","source_transformations_correction_intersecting_polygons.md":"BkfNriZS","source_transformations_extent.md":"C2PAEcJR","source_transformations_flip.md":"CQd98wvw","source_transformations_reproject.md":"B3dLlAHy","source_transformations_segmentize.md":"FzoXEUxb","source_transformations_simplify.md":"LsrfUdCs","source_transformations_transform.md":"CTodlzuV","source_transformations_tuples.md":"CQtVCMR5","source_types.md":"Blt3PWgm","source_utils.md":"on7iMB6f","tutorials_creating_geometry.md":"CXM5034I","tutorials_geodesic_paths.md":"BCOcCatY","tutorials_spatial_joins.md":"B7N3iyRl"} +{"api.md":"DA3cj-wA","call_notes.md":"bQDaS4ka","experiments_accurate_accumulators.md":"DqCWQDFY","experiments_predicates.md":"CftgDXAy","explanations_crs.md":"_RGEVBFG","explanations_paradigms.md":"CNrPdHXR","explanations_peculiarities.md":"D1LUoEKV","explanations_winding_order.md":"CDqCuuUs","index.md":"DekoSsoW","introduction.md":"CDdh5Sjo","source_geometryops.md":"CISTZdtA","source_methods_angles.md":"ukA9IUfs","source_methods_area.md":"Do01enJt","source_methods_barycentric.md":"warUpGU6","source_methods_buffer.md":"BLI5va4z","source_methods_centroid.md":"CvPZjUoH","source_methods_clipping_clipping_processor.md":"D1cLUmXv","source_methods_clipping_coverage.md":"TKsPhvkZ","source_methods_clipping_cut.md":"Dgrhm9R2","source_methods_clipping_difference.md":"BHC8HbPw","source_methods_clipping_intersection.md":"YOXybPsc","source_methods_clipping_predicates.md":"_lB4tLPb","source_methods_clipping_union.md":"D-TbsSpY","source_methods_convex_hull.md":"NFIi0ZD0","source_methods_distance.md":"B3RCvmDv","source_methods_equals.md":"D7YcKc5y","source_methods_geom_relations_contains.md":"BBRCw1_f","source_methods_geom_relations_coveredby.md":"DCGcwlqC","source_methods_geom_relations_covers.md":"DcOwRjYX","source_methods_geom_relations_crosses.md":"CjXmPRlk","source_methods_geom_relations_disjoint.md":"BYLRIf7-","source_methods_geom_relations_geom_geom_processors.md":"DoSX0nd_","source_methods_geom_relations_intersects.md":"C7r9I1BI","source_methods_geom_relations_overlaps.md":"O3O0qXk8","source_methods_geom_relations_touches.md":"BEMKQZS2","source_methods_geom_relations_within.md":"CladBRqO","source_methods_orientation.md":"CWpaqwvx","source_methods_polygonize.md":"uB4iwmdu","source_not_implemented_yet.md":"Bsubdj8P","source_primitives.md":"B63LzEac","source_transformations_correction_closed_ring.md":"DqulCeOT","source_transformations_correction_geometry_correction.md":"WX6iVPd4","source_transformations_correction_intersecting_polygons.md":"BoAkYnvk","source_transformations_extent.md":"B3JOS_Vt","source_transformations_flip.md":"CzCsDiZ2","source_transformations_reproject.md":"CQSHmG_K","source_transformations_segmentize.md":"DCSzM58m","source_transformations_simplify.md":"BtEM-RYN","source_transformations_transform.md":"D50yl898","source_transformations_tuples.md":"BSO5jndR","source_types.md":"D23Fcnpy","source_utils.md":"BAUiaq8M","tutorials_creating_geometry.md":"CWhgTWcM","tutorials_geodesic_paths.md":"_RhqTYOW","tutorials_spatial_joins.md":"3ItQXtC7"} diff --git a/dev/index.html b/dev/index.html index bc10d1160..48272e7c2 100644 --- a/dev/index.html +++ b/dev/index.html @@ -8,18 +8,18 @@ - + - - - + + +
Skip to content

GeometryOps.jl

Blazing fast geometry operations in pure Julia

GeometryOps

What is GeometryOps.jl?

GeometryOps.jl is a package for geometric calculations on (primarily 2D) geometries.

The driving idea behind this package is to unify all the disparate packages for geometric calculations in Julia, and make them GeoInterface.jl-compatible. We seem to be focusing primarily on 2/2.5D geometries for now.

Most of the usecases are driven by GIS and similar Earth data workflows, so this might be a bit specialized towards that, but methods should always be general to any coordinate space.

We welcome contributions, either as pull requests or discussion on issues!

How to navigate the docs

GeometryOps' docs are divided into three main sections: tutorials, explanations and source code.
Documentation and examples for many functions can be found in the source code section, since we use literate programming in GeometryOps.

  • Tutorials are meant to teach the fundamental concepts behind GeometryOps, and how to perform certain operations.
  • Explanations usually contain little code, and explain in more detail how GeometryOps works.
  • Source code usually contains explanations and examples at the top of the page, followed by annotated source code from that file.
- + \ No newline at end of file diff --git a/dev/introduction.html b/dev/introduction.html index 48caa911b..96cc46a27 100644 --- a/dev/introduction.html +++ b/dev/introduction.html @@ -8,18 +8,18 @@ - + - - - + + +
Skip to content

Introduction

GeometryOps.jl is a package for geometric calculations on (primarily 2D) geometries.

The driving idea behind this package is to unify all the disparate packages for geometric calculations in Julia, and make them GeoInterface.jl-compatible. We seem to be focusing primarily on 2/2.5D geometries for now.

Most of the usecases are driven by GIS and similar Earth data workflows, so this might be a bit specialized towards that, but methods should always be general to any coordinate space.

We welcome contributions, either as pull requests or discussion on issues!

Main concepts

The apply paradigm

Note

See the Primitive Functions page for more information on this.

The apply function allows you to decompose a given collection of geometries down to a certain level, and then operate on it.

Functionally, it's similar to map in the way you apply it to geometries.

apply and applyreduce take any geometry, vector of geometries, collection of geometries, or table (like Shapefile.Table, DataFrame, or GeoTable)!

What's this GeoInterface.Wrapper thing?

Write a comment about GeoInterface.Wrapper and why it helps in type stability to guarantee a particular return type.

- + \ No newline at end of file diff --git a/dev/source/GeometryOps.html b/dev/source/GeometryOps.html index a2de67c18..d9f4a1203 100644 --- a/dev/source/GeometryOps.html +++ b/dev/source/GeometryOps.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -92,7 +92,7 @@ end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/angles.html b/dev/source/methods/angles.html index b073943ab..a0bcea781 100644 --- a/dev/source/methods/angles.html +++ b/dev/source/methods/angles.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -23,7 +23,7 @@ using Makie, CairoMakie rect = GI.Polygon([[(0.0, 0.0), (0.0, 1.0), (1.0, 1.0), (1.0, 0.0), (0.0, 0.0)]]) -f, a, p = poly(collect(GI.getpoint(rect)); axis = (; aspect = DataAspect()))

This is clearly a rectangle, with angles of 90 degrees.

julia
GO.angles(rect)  # [90, 90, 90, 90]
4-element Vector{Float64}:
+f, a, p = poly(collect(GI.getpoint(rect)); axis = (; aspect = DataAspect()))

This is clearly a rectangle, with angles of 90 degrees.

julia
GO.angles(rect)  # [90, 90, 90, 90]
4-element Vector{Float64}:
  90.0
  90.0
  90.0
@@ -142,7 +142,7 @@
     angle = real(acos(val) * 180 / π)
     return angle * (cross_prod < 0 ? -1 : 1)
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/area.html b/dev/source/methods/area.html index 1ecb83021..870acc51a 100644 --- a/dev/source/methods/area.html +++ b/dev/source/methods/area.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -24,10 +24,10 @@ using CairoMakie rect = GI.Polygon([[(0,0), (0,1), (1,1), (1,0), (0, 0)]]) -f, a, p = poly(collect(GI.getpoint(rect)); axis = (; aspect = DataAspect()))

This is clearly a rectangle, etc. But now let's look at how the points look:

julia
lines!(
+f, a, p = poly(collect(GI.getpoint(rect)); axis = (; aspect = DataAspect()))

This is clearly a rectangle, etc. But now let's look at how the points look:

julia
lines!(
     collect(GI.getpoint(rect));
     color = 1:GI.npoint(rect), linewidth = 10.0)
-f

The points are ordered in a counterclockwise fashion, which means that the signed area is negative. If we reverse the order of the points, we get a positive area.

julia
GO.signed_area(rect)  # -1.0
-1.0

Implementation

This is the GeoInterface-compatible implementation. First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Note that area and signed area are zero for all points and curves, even if the curves are closed like with a linear ring. Also note that signed area really only makes sense for polygons, given with a multipolygon can have several polygons each with a different orientation and thus the absolute value of the signed area might not be the area. This is why signed area is only implemented for polygons.

Targets for applys functions

julia
const _AREA_TARGETS = TraitTarget{Union{GI.PolygonTrait,GI.AbstractCurveTrait,GI.MultiPointTrait,GI.PointTrait}}()
+f

The points are ordered in a counterclockwise fashion, which means that the signed area is negative. If we reverse the order of the points, we get a positive area.

julia
GO.signed_area(rect)  # -1.0
-1.0

Implementation

This is the GeoInterface-compatible implementation. First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Note that area and signed area are zero for all points and curves, even if the curves are closed like with a linear ring. Also note that signed area really only makes sense for polygons, given with a multipolygon can have several polygons each with a different orientation and thus the absolute value of the signed area might not be the area. This is why signed area is only implemented for polygons.

Targets for applys functions

julia
const _AREA_TARGETS = TraitTarget{Union{GI.PolygonTrait,GI.AbstractCurveTrait,GI.MultiPointTrait,GI.PointTrait}}()
 
 """
     area(geom, [T = Float64])::T
@@ -105,7 +105,7 @@
     area += _area_component(p1, p2)
     return T(area / 2)
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/barycentric.html b/dev/source/methods/barycentric.html index df112d5df..30765b062 100644 --- a/dev/source/methods/barycentric.html +++ b/dev/source/methods/barycentric.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -85,7 +85,7 @@ # and render! hm = heatmap!(a2, xrange, yrange, mean_values; colormap = p1.colormap, colorrange = p1.plots[1].colorrange[], xautolimits = false, yautolimits = false) translate!(hm, 0, 0, -1) # translate the heatmap behind the cropping polygon! -f # finally, display the figure

Barycentric-coordinate API

In some cases, we actually want barycentric interpolation, and have no interest in the coordinates themselves.

However, the coordinates can be useful for debugging, and when performing 3D rendering, multiple barycentric values (depth, uv) are needed for depth buffering.

julia
const _VecTypes = Union{Tuple{Vararg{T, N}}, GeometryBasics.StaticArraysCore.StaticArray{Tuple{N}, T, 1}} where {N, T}
+f # finally, display the figure

Barycentric-coordinate API

In some cases, we actually want barycentric interpolation, and have no interest in the coordinates themselves.

However, the coordinates can be useful for debugging, and when performing 3D rendering, multiple barycentric values (depth, uv) are needed for depth buffering.

julia
const _VecTypes = Union{Tuple{Vararg{T, N}}, GeometryBasics.StaticArraysCore.StaticArray{Tuple{N}, T, 1}} where {N, T}
 
 """
     abstract type AbstractBarycentricCoordinateMethod
@@ -433,7 +433,7 @@
 
 struct Wachspress <: AbstractBarycentricCoordinateMethod
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/buffer.html b/dev/source/methods/buffer.html index 2d4f33d93..90ab23914 100644 --- a/dev/source/methods/buffer.html +++ b/dev/source/methods/buffer.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -29,7 +29,7 @@ println(io, " in your REPL, \nor otherwise loading LibGEOS.jl via using or import.") end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/centroid.html b/dev/source/methods/centroid.html index 0f77f223f..70013c9ed 100644 --- a/dev/source/methods/centroid.html +++ b/dev/source/methods/centroid.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -24,9 +24,9 @@ using CairoMakie cshape = GI.Polygon([[(0,0), (0,3), (3,3), (3,2), (1,2), (1,1), (3,1), (3,0), (0,0)]]) -f, a, p = poly(collect(GI.getpoint(cshape)); axis = (; aspect = DataAspect()))

Let's see what the centroid looks like (plotted in red):

julia
cent = GO.centroid(cshape)
+f, a, p = poly(collect(GI.getpoint(cshape)); axis = (; aspect = DataAspect()))

Let's see what the centroid looks like (plotted in red):

julia
cent = GO.centroid(cshape)
 scatter!(GI.x(cent), GI.y(cent), color = :red)
-f

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Note that if you call centroid on a LineString or LinearRing, the centroid_and_length function will be called due to the weighting scheme described above, while centroid_and_area is called for polygons and multipolygons. However, centroid_and_area can still be called on a LineString or LinearRing when they are closed, for example as the interior hole of a polygon.

The helper functions centroid_and_length and centroid_and_area are made available just in case the user also needs the area or length to decrease repeat computation.

julia
"""
+f

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Note that if you call centroid on a LineString or LinearRing, the centroid_and_length function will be called due to the weighting scheme described above, while centroid_and_area is called for polygons and multipolygons. However, centroid_and_area can still be called on a LineString or LinearRing when they are closed, for example as the interior hole of a polygon.

The helper functions centroid_and_length and centroid_and_area are made available just in case the user also needs the area or length to decrease repeat computation.

julia
"""
     centroid(geom, [T=Float64])::Tuple{T, T}
 
 Returns the centroid of a given line segment, linear ring, polygon, or
@@ -111,7 +111,7 @@
     y = (y1 * area1 + y2 * area2) / area
     return (x, y), area
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/clipping/clipping_processor.html b/dev/source/methods/clipping/clipping_processor.html index 536405250..b0821b6f4 100644 --- a/dev/source/methods/clipping/clipping_processor.html +++ b/dev/source/methods/clipping/clipping_processor.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -526,7 +526,7 @@ end return end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/clipping/coverage.html b/dev/source/methods/clipping/coverage.html index 50bdec312..99f183c72 100644 --- a/dev/source/methods/clipping/coverage.html +++ b/dev/source/methods/clipping/coverage.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -28,7 +28,7 @@ xmin, xmax, ymin, ymax = 0, 2, 0, 2 f, a, p = poly(collect(GI.getpoint(cell)); axis = (; aspect = DataAspect())) poly!(collect(GI.getpoint(rect))) -f

It is clear that half of the polygon is within the cell, so the coverage should be 1.0, half of the area of the rectangle.

julia
GO.coverage(rect, xmin, xmax, ymin, ymax)
1.0

Implementation

This is the GeoInterface-compatible implementation. First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Note that the coverage is zero for all points and curves, even if the curves are closed like with a linear ring.

Targets for applys functions

julia
const _COVERAGE_TARGETS = TraitTarget{Union{GI.PolygonTrait,GI.AbstractCurveTrait,GI.MultiPointTrait,GI.PointTrait}}()

Wall types for coverage

julia
const UNKNOWN, NORTH, EAST, SOUTH, WEST = 0:4
+f

It is clear that half of the polygon is within the cell, so the coverage should be 1.0, half of the area of the rectangle.

julia
GO.coverage(rect, xmin, xmax, ymin, ymax)
1.0

Implementation

This is the GeoInterface-compatible implementation. First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Note that the coverage is zero for all points and curves, even if the curves are closed like with a linear ring.

Targets for applys functions

julia
const _COVERAGE_TARGETS = TraitTarget{Union{GI.PolygonTrait,GI.AbstractCurveTrait,GI.MultiPointTrait,GI.PointTrait}}()

Wall types for coverage

julia
const UNKNOWN, NORTH, EAST, SOUTH, WEST = 0:4
 
 """
     coverage(geom, xmin, xmax, ymin, ymax, [T = Float64])::T
@@ -241,7 +241,7 @@
     y_wall = (wall == NORTH || wall == WEST) ? ymax : ymin
     return x1 * y_wall - x_wall * y1
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/clipping/cut.html b/dev/source/methods/clipping/cut.html index 1d3350973..dc3bdecb2 100644 --- a/dev/source/methods/clipping/cut.html +++ b/dev/source/methods/clipping/cut.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -29,7 +29,7 @@ f, a, p1 = Makie.poly(collect(GI.getpoint(cut_polys[1])); color = (:blue, 0.5)) Makie.poly!(collect(GI.getpoint(cut_polys[2])); color = (:orange, 0.5)) Makie.lines!(GI.getpoint(line); color = :black) -f

Implementation

This function depends on polygon clipping helper function and is inspired by the Greiner-Hormann clipping algorithm used elsewhere in this library. The inspiration came from this Stack Overflow discussion.

julia
"""
+f

Implementation

This function depends on polygon clipping helper function and is inspired by the Greiner-Hormann clipping algorithm used elsewhere in this library. The inspiration came from this Stack Overflow discussion.

julia
"""
     cut(geom, line, [T::Type])
 
 Return given geom cut by given line as a list of geometries of the same type as the input
@@ -105,7 +105,7 @@
     end
     return return_coords
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/clipping/difference.html b/dev/source/methods/clipping/difference.html index 25990cdce..8fc02f42c 100644 --- a/dev/source/methods/clipping/difference.html +++ b/dev/source/methods/clipping/difference.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -184,7 +184,7 @@ ) return nothing end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/clipping/intersection.html b/dev/source/methods/clipping/intersection.html index 11e3382c0..542dafb4b 100644 --- a/dev/source/methods/clipping/intersection.html +++ b/dev/source/methods/clipping/intersection.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -401,7 +401,7 @@ α, β = _clamped_frac(distance(min_pt, a2, T), a_dist, eps(T)), one(T) - eps(T) end

Return point with smallest distance

julia
    return _tuple_point(min_pt, T), α, β
 end

Return value of x/y clamped between ϵ and 1 - ϵ

julia
_clamped_frac(x::T, y::T, ϵ = zero(T)) where T = clamp(x / y, ϵ, one(T) - ϵ)

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/clipping/predicates.html b/dev/source/methods/clipping/predicates.html index e9ee3ff01..22e0113e5 100644 --- a/dev/source/methods/clipping/predicates.html +++ b/dev/source/methods/clipping/predicates.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -62,7 +62,7 @@ end import .Predicates

If we want to inject adaptivity, we would do something like:

function cross(a, b, c) # try Predicates._cross_naive(a, b, c) # check the error bound there # then try Predicates._cross_adaptive(a, b, c) # then try Predicates._cross_exact end


This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/clipping/union.html b/dev/source/methods/clipping/union.html index c3437ebcf..1015026c2 100644 --- a/dev/source/methods/clipping/union.html +++ b/dev/source/methods/clipping/union.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -269,7 +269,7 @@ throw(ArgumentError("Union between $trait_a and $trait_b with target $Target isn't implemented yet.")) return nothing end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/convex_hull.html b/dev/source/methods/convex_hull.html index ae27d5ee4..098a70d68 100644 --- a/dev/source/methods/convex_hull.html +++ b/dev/source/methods/convex_hull.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -26,7 +26,7 @@ hull_poly = GO.convex_hull(points) lines!(a, hull_poly; label = "Convex hull", color = Makie.wong_colors()[2]) axislegend(a) -f

Convex hull of the USA

julia
import GeometryOps as GO, GeoInterface as GI
+f

Convex hull of the USA

julia
import GeometryOps as GO, GeoInterface as GI
 using CairoMakie # to plot
 using NaturalEarth # for data
 
@@ -34,7 +34,7 @@
 usa = all_adm0.geometry[findfirst(==("USA"), all_adm0.ADM0_A3)]
 f, a, p = lines(usa)
 lines!(a, GO.convex_hull(usa); color = Makie.wong_colors()[2])
-f

Investigating the winding order

The winding order of the monotone chain method is counterclockwise, while the winding order of the GEOS method is clockwise.

GeometryOps' convexity detection says that the GEOS hull is convex, while the monotone chain method hull is not. However, they are both going over the same points (we checked), it's just that the winding order is different.

In reality, both sets are convex, but we need to fix the GeometryOps convexity detector (isconcave)!

We may also decide at a later date to change the returned winding order of the polygon, but most algorithms are robust to that, and you can always fix it...

julia
import GeoInterface as GI, GeometryOps as GO, LibGEOS as LG
+f

Investigating the winding order

The winding order of the monotone chain method is counterclockwise, while the winding order of the GEOS method is clockwise.

GeometryOps' convexity detection says that the GEOS hull is convex, while the monotone chain method hull is not. However, they are both going over the same points (we checked), it's just that the winding order is different.

In reality, both sets are convex, but we need to fix the GeometryOps convexity detector (isconcave)!

We may also decide at a later date to change the returned winding order of the polygon, but most algorithms are robust to that, and you can always fix it...

julia
import GeoInterface as GI, GeometryOps as GO, LibGEOS as LG
 using CairoMakie # to plot
 
 points = rand(Point2{Float64}, 100)
@@ -45,7 +45,7 @@
 a1, p1 = lines(fig[1, 1], go_hull; color = 1:GI.npoint(go_hull), axis = (; title = "MonotoneChainMethod()"))
 a2, p2 = lines(fig[2, 1], lg_hull; color = 1:GI.npoint(lg_hull), axis = (; title = "GEOS()"))
 cb = Colorbar(fig[1:2, 2], p1; label = "Vertex number")
-fig

Implementation

julia
"""
+fig

Implementation

julia
"""
     convex_hull([method], geometries)
 
 Compute the convex hull of the points in `geometries`.
@@ -75,7 +75,7 @@
 struct MonotoneChainMethod end

GrahamScanMethod, etc. can be implemented in GO as well, if someone wants to. If we add an extension on Quickhull.jl, then that would be another algorithm.

julia
convex_hull(geometries) = convex_hull(MonotoneChainMethod(), geometries)

TODO: have this respect the CRS by pulling it out of geometries.

julia
function convex_hull(::MonotoneChainMethod, geometries)

Extract all points as tuples. We have to collect and allocate here, because DelaunayTriangulation only accepts vectors of point-like geoms.

Cleanest would be to use the iterable from GO.flatten directly, but that would require us to implement the convex hull algorithm directly.

TODO: create a specialized method that extracts only the information required, GeometryBasics points can be passed through directly.

julia
    points = collect(flatten(tuples, GI.PointTrait, geometries))

Compute the convex hull using DelTri (shorthand for DelaunayTriangulation.jl).

julia
    hull = DelaunayTriangulation.convex_hull(points)

Convert the result to a GI.Polygon and return it. View would be more efficient here, but re-allocating is cleaner.

julia
    point_vec = DelaunayTriangulation.get_points(hull)[DelaunayTriangulation.get_vertices(hull)]
     return GI.Polygon([GI.LinearRing(point_vec)])
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/distance.html b/dev/source/methods/distance.html index 006e04259..a7f6c06e1 100644 --- a/dev/source/methods/distance.html +++ b/dev/source/methods/distance.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -29,13 +29,13 @@ f, a, p = poly(collect(GI.getpoint(rect)); axis = (; aspect = DataAspect())) scatter!(GI.x(point_in), GI.y(point_in); color = :red) scatter!(GI.x(point_out), GI.y(point_out); color = :orange) -f

This is clearly a rectangle with one point inside and one point outside. The points are both an equal distance to the polygon. The distance to point_in is negative while the distance to point_out is positive.

julia
(
+f

This is clearly a rectangle with one point inside and one point outside. The points are both an equal distance to the polygon. The distance to point_in is negative while the distance to point_out is positive.

julia
(
 GO.distance(point_in, rect),  # == 0
 GO.signed_distance(point_in, rect),  # < 0
 GO.signed_distance(point_out, rect)  # > 0
 )
(0.0, -0.5, 0.5)

Consider also a heatmap of signed distances around this object:

julia
xrange = yrange = LinRange(-0.5, 1.5, 300)
 f, a, p = heatmap(xrange, yrange, GO.signed_distance.(Point2f.(xrange, yrange'), Ref(rect)); colormap = :RdBu, colorrange = (-0.75, 0.75))
-a.aspect = DataAspect(); Colorbar(f[1, 2], p, label = "Signed distance"); lines!(a, GI.convert(GO.GeometryBasics, rect)); f

Implementation

This is the GeoInterface-compatible implementation. First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Distance and signed distance are only implemented for points to other geometries right now. This could be extended to include distance from other geometries in the future.

The distance calculated is the Euclidean distance using the Pythagorean theorem. Also note that singed_distance only makes sense for "filled-in" shapes, like polygons, so it isn't implemented for curves.

julia
const _DISTANCE_TARGETS = TraitTarget{Union{GI.AbstractPolygonTrait,GI.LineStringTrait,GI.LinearRingTrait,GI.LineTrait,GI.PointTrait}}()
+a.aspect = DataAspect(); Colorbar(f[1, 2], p, label = "Signed distance"); lines!(a, GI.convert(GO.GeometryBasics, rect)); f

Implementation

This is the GeoInterface-compatible implementation. First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Distance and signed distance are only implemented for points to other geometries right now. This could be extended to include distance from other geometries in the future.

The distance calculated is the Euclidean distance using the Pythagorean theorem. Also note that singed_distance only makes sense for "filled-in" shapes, like polygons, so it isn't implemented for curves.

julia
const _DISTANCE_TARGETS = TraitTarget{Union{GI.AbstractPolygonTrait,GI.LineStringTrait,GI.LinearRingTrait,GI.LineTrait,GI.PointTrait}}()
 
 """
     distance(point, geom, ::Type{T} = Float64)::T
@@ -199,7 +199,7 @@
     end
     return min_dist
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/equals.html b/dev/source/methods/equals.html index 75009dec8..9ea78553d 100644 --- a/dev/source/methods/equals.html +++ b/dev/source/methods/equals.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -29,7 +29,7 @@ scatter!(GI.getpoint(l1), color = :blue) lines!(GI.getpoint(l2), color = :orange) scatter!(GI.getpoint(l2), color = :orange) -f

We can see that the two lines do not share a common set of points and edges in the plot, so they are not equal:

julia
GO.equals(l1, l2)  # returns false
false

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Note that while we need the same set of points and edges, they don't need to be provided in the same order for polygons. For for example, we need the same set points for two multipoints to be equal, but they don't have to be saved in the same order. The winding order also doesn't have to be the same to represent the same geometry. This requires checking every point against every other point in the two geometries we are comparing. Also, some geometries must be "closed" like polygons and linear rings. These will be assumed to be closed, even if they don't have a repeated last point explicitly written in the coordinates. Additionally, geometries and multi-geometries can be equal if the multi-geometry only includes that single geometry.

julia
"""
+f

We can see that the two lines do not share a common set of points and edges in the plot, so they are not equal:

julia
GO.equals(l1, l2)  # returns false
false

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Note that while we need the same set of points and edges, they don't need to be provided in the same order for polygons. For for example, we need the same set points for two multipoints to be equal, but they don't have to be saved in the same order. The winding order also doesn't have to be the same to represent the same geometry. This requires checking every point against every other point in the two geometries we are comparing. Also, some geometries must be "closed" like polygons and linear rings. These will be assumed to be closed, even if they don't have a repeated last point explicitly written in the coordinates. Additionally, geometries and multi-geometries can be equal if the multi-geometry only includes that single geometry.

julia
"""
     equals(geom1, geom2)::Bool
 
 Compare two Geometries return true if they are the same geometry.
@@ -283,7 +283,7 @@
     end
     return true
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/contains.html b/dev/source/methods/geom_relations/contains.html index b267509b6..588334c0c 100644 --- a/dev/source/methods/geom_relations/contains.html +++ b/dev/source/methods/geom_relations/contains.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -29,7 +29,7 @@ scatter!(GI.getpoint(l1), color = :blue) lines!(GI.getpoint(l2), color = :orange) scatter!(GI.getpoint(l2), color = :orange) -f

We can see that all of the points and edges of l2 are within l1, so l1 contains l2. However, l2 does not contain l1.

julia
GO.contains(l1, l2)  # returns true
+f

We can see that all of the points and edges of l2 are within l1, so l1 contains l2. However, l2 does not contain l1.

julia
GO.contains(l1, l2)  # returns true
 GO.contains(l2, l1)  # returns false
false

Implementation

This is the GeoInterface-compatible implementation.

Given that contains is the exact opposite of within, we simply pass the two inputs variables, swapped in order, to within.

julia
"""
     contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool
 
@@ -51,7 +51,7 @@
 ```
 """
 contains(g1, g2) = GeometryOps.within(g2, g1)

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/coveredby.html b/dev/source/methods/geom_relations/coveredby.html index a2c6370a0..364649971 100644 --- a/dev/source/methods/geom_relations/coveredby.html +++ b/dev/source/methods/geom_relations/coveredby.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -27,7 +27,7 @@ l1 = GI.Line([p1, (1.0, 1.0)]) f, a, p = lines(GI.getpoint(l1)) scatter!(p1, color = :red) -f

As we can see, p1 is on the endpoint of l1. This means it is not within, but it does meet the definition of coveredby.

julia
GO.coveredby(p1, l1)  # true
true

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the coveredby function and arguments g1 and g2, this criteria is as follows: - points of g1 are allowed to be in the interior of g2 (either through overlap or crossing for lines) - points of g1 are allowed to be on the boundary of g2 - points of g1 are not allowed to be in the exterior of g2 - no points of g1 are required to be in the interior of g2 - no points of g1 are required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

The code for the specific implementations is in the geom_geom_processors file.

julia
const COVEREDBY_ALLOWS = (in_allow = true, on_allow = true, out_allow = false)
+f

As we can see, p1 is on the endpoint of l1. This means it is not within, but it does meet the definition of coveredby.

julia
GO.coveredby(p1, l1)  # true
true

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the coveredby function and arguments g1 and g2, this criteria is as follows: - points of g1 are allowed to be in the interior of g2 (either through overlap or crossing for lines) - points of g1 are allowed to be on the boundary of g2 - points of g1 are not allowed to be in the exterior of g2 - no points of g1 are required to be in the interior of g2 - no points of g1 are required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

The code for the specific implementations is in the geom_geom_processors file.

julia
const COVEREDBY_ALLOWS = (in_allow = true, on_allow = true, out_allow = false)
 const COVEREDBY_CURVE_ALLOWS = (over_allow = true, cross_allow = true, on_allow = true, out_allow = false)
 const COVEREDBY_CURVE_REQUIRES = (in_require = false, on_require = false, out_require = false)
 const COVEREDBY_POLYGON_REQUIRES = (in_require = true, on_require = false, out_require = false,)
@@ -201,7 +201,7 @@
     end
     return true
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/covers.html b/dev/source/methods/geom_relations/covers.html index 5601ecbdd..720cded8c 100644 --- a/dev/source/methods/geom_relations/covers.html +++ b/dev/source/methods/geom_relations/covers.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -29,7 +29,7 @@ f, a, p = lines(GI.getpoint(l1)) scatter!(p1, color = :red) -f

julia
GO.covers(l1, p1)  # returns true
+f

julia
GO.covers(l1, p1)  # returns true
 GO.covers(p1, l1)  # returns false
false

Implementation

This is the GeoInterface-compatible implementation.

Given that covers is the exact opposite of coveredby, we simply pass the two inputs variables, swapped in order, to coveredby.

julia
"""
     covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool
 
@@ -51,7 +51,7 @@
 ```
 """
 covers(g1, g2)::Bool = GeometryOps.coveredby(g2, g1)

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/crosses.html b/dev/source/methods/geom_relations/crosses.html index c0002bc84..c1230430d 100644 --- a/dev/source/methods/geom_relations/crosses.html +++ b/dev/source/methods/geom_relations/crosses.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -138,7 +138,7 @@ end return false end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/disjoint.html b/dev/source/methods/geom_relations/disjoint.html index 051193ae2..cea8ff827 100644 --- a/dev/source/methods/geom_relations/disjoint.html +++ b/dev/source/methods/geom_relations/disjoint.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -29,7 +29,7 @@ scatter!(GI.getpoint(l1), color = :blue) lines!(GI.getpoint(l2), color = :orange) scatter!(GI.getpoint(l2), color = :orange) -f

We can see that none of the edges or vertices of l1 interact with l2 so they are disjoint.

julia
GO.disjoint(l1, l2)  # returns true
true

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the disjoint function and arguments g1 and g2, this criteria is as follows: - points of g1 are not allowed to be in the interior of g2 - points of g1 are not allowed to be on the boundary of g2 - points of g1 are allowed to be in the exterior of g2 - no points required to be in the interior of g2 - no points of g1 are required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

The code for the specific implementations is in the geom_geom_processors file.

julia
const DISJOINT_ALLOWS = (in_allow = false, on_allow = false, out_allow = true)
+f

We can see that none of the edges or vertices of l1 interact with l2 so they are disjoint.

julia
GO.disjoint(l1, l2)  # returns true
true

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the disjoint function and arguments g1 and g2, this criteria is as follows: - points of g1 are not allowed to be in the interior of g2 - points of g1 are not allowed to be on the boundary of g2 - points of g1 are allowed to be in the exterior of g2 - no points required to be in the interior of g2 - no points of g1 are required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

The code for the specific implementations is in the geom_geom_processors file.

julia
const DISJOINT_ALLOWS = (in_allow = false, on_allow = false, out_allow = true)
 const DISJOINT_CURVE_ALLOWS = (over_allow = false, cross_allow = false, on_allow = false, out_allow = true)
 const DISJOINT_REQUIRES = (in_require = false, on_require = false, out_require = false)
 const DISJOINT_EXACT = (exact = _False(),)
@@ -196,7 +196,7 @@
     end
     return true
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/geom_geom_processors.html b/dev/source/methods/geom_relations/geom_geom_processors.html index 97dacd73e..babe5736b 100644 --- a/dev/source/methods/geom_relations/geom_geom_processors.html +++ b/dev/source/methods/geom_relations/geom_geom_processors.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -455,7 +455,7 @@ end return skip, returnval end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/intersects.html b/dev/source/methods/geom_relations/intersects.html index f7dc0e25b..805305f05 100644 --- a/dev/source/methods/geom_relations/intersects.html +++ b/dev/source/methods/geom_relations/intersects.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -27,7 +27,7 @@ line2 = GI.Line([(123.354492,-15.961329), (127.22168,-14.008696)]) f, a, p = lines(GI.getpoint(line1)) lines!(GI.getpoint(line2)) -f

We can see that they intersect, so we expect intersects to return true, and we can visualize the intersection point in red.

julia
GO.intersects(line1, line2)  # true
true

Implementation

This is the GeoInterface-compatible implementation.

Given that intersects is the exact opposite of disjoint, we simply pass the two inputs variables, swapped in order, to disjoint.

julia
"""
+f

We can see that they intersect, so we expect intersects to return true, and we can visualize the intersection point in red.

julia
GO.intersects(line1, line2)  # true
true

Implementation

This is the GeoInterface-compatible implementation.

Given that intersects is the exact opposite of disjoint, we simply pass the two inputs variables, swapped in order, to disjoint.

julia
"""
     intersects(geom1, geom2)::Bool
 
 Return true if the interiors or boundaries of the two geometries interact.
@@ -45,7 +45,7 @@
 ```
 """
 intersects(geom1, geom2) = !disjoint(geom1, geom2)

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/overlaps.html b/dev/source/methods/geom_relations/overlaps.html index f59a8f4e4..3578c01ff 100644 --- a/dev/source/methods/geom_relations/overlaps.html +++ b/dev/source/methods/geom_relations/overlaps.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -29,7 +29,7 @@ scatter!(GI.getpoint(l1), color = :blue) lines!(GI.getpoint(l2), color = :orange) scatter!(GI.getpoint(l2), color = :orange) -f

We can see that the two lines overlap in the plot:

julia
GO.overlaps(l1, l2)  # true
true

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Note that that since only elements of the same dimension can overlap, any two geometries with traits that are of different dimensions automatically can return false.

For geometries with the same trait dimension, we must make sure that they share a point, an edge, or area for points, lines, and polygons/multipolygons respectively, without being contained.

julia
"""
+f

We can see that the two lines overlap in the plot:

julia
GO.overlaps(l1, l2)  # true
true

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Note that that since only elements of the same dimension can overlap, any two geometries with traits that are of different dimensions automatically can return false.

For geometries with the same trait dimension, we must make sure that they share a point, an edge, or area for points, lines, and polygons/multipolygons respectively, without being contained.

julia
"""
     overlaps(geom1, geom2)::Bool
 
 Compare two Geometries of the same dimension and return true if their
@@ -230,7 +230,7 @@
     seg_val, _, _ = _intersection_point(Float64, edge_a, edge_b; exact = _False())
     return seg_val != line_out
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/touches.html b/dev/source/methods/geom_relations/touches.html index e53c400cf..752ab4721 100644 --- a/dev/source/methods/geom_relations/touches.html +++ b/dev/source/methods/geom_relations/touches.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -28,7 +28,7 @@ f, a, p = lines(GI.getpoint(l1)) lines!(GI.getpoint(l2)) -f

We can see that these two lines touch only at their endpoints.

julia
GO.touches(l1, l2)  # true
true

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the touches function and arguments g1 and g2, this criteria is as follows: - points of g1 are not allowed to be in the interior of g2 - points of g1 are allowed to be on the boundary of g2 - points of g1 are allowed to be in the exterior of g2 - no points of g1 are required to be in the interior of g2 - at least one point of g1 is required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

The code for the specific implementations is in the geom_geom_processors file.

julia
const TOUCHES_POINT_ALLOWED = (in_allow = false, on_allow = true, out_allow = false)
+f

We can see that these two lines touch only at their endpoints.

julia
GO.touches(l1, l2)  # true
true

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the touches function and arguments g1 and g2, this criteria is as follows: - points of g1 are not allowed to be in the interior of g2 - points of g1 are allowed to be on the boundary of g2 - points of g1 are allowed to be in the exterior of g2 - no points of g1 are required to be in the interior of g2 - at least one point of g1 is required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

The code for the specific implementations is in the geom_geom_processors file.

julia
const TOUCHES_POINT_ALLOWED = (in_allow = false, on_allow = true, out_allow = false)
 const TOUCHES_CURVE_ALLOWED = (over_allow = false, cross_allow = false, on_allow = true, out_allow = true)
 const TOUCHES_POLYGON_ALLOWS = (in_allow = false, on_allow = true, out_allow = true)
 const TOUCHES_REQUIRES = (in_require = false, on_require = true, out_require = false)
@@ -192,7 +192,7 @@
     end
     return true
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/within.html b/dev/source/methods/geom_relations/within.html index b144f7ef9..bd39b2a1e 100644 --- a/dev/source/methods/geom_relations/within.html +++ b/dev/source/methods/geom_relations/within.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -29,7 +29,7 @@ scatter!(GI.getpoint(l1), color = :blue) lines!(GI.getpoint(l2), color = :orange) scatter!(GI.getpoint(l2), color = :orange) -f

We can see that all of the points and edges of l2 are within l1, so l2 is within l1, but l1 is not within l2

julia
GO.within(l1, l2)  # false
+f

We can see that all of the points and edges of l2 are within l1, so l2 is within l1, but l1 is not within l2

julia
GO.within(l1, l2)  # false
 GO.within(l2, l1)  # true
true

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the within function and arguments g1 and g2, this criteria is as follows: - points of g1 are allowed to be in the interior of g2 (either through overlap or crossing for lines) - points of g1 are allowed to be on the boundary of g2 - points of g1 are not allowed to be in the exterior of g2 - at least one point of g1 is required to be in the interior of g2 - no points of g1 are required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

The code for the specific implementations is in the geom_geom_processors file.

julia
const WITHIN_POINT_ALLOWS = (in_allow = true, on_allow = false, out_allow = false)
 const WITHIN_CURVE_ALLOWS = (over_allow = true, cross_allow = true, on_allow = true, out_allow = false)
 const WITHIN_POLYGON_ALLOWS = (in_allow = true, on_allow = true, out_allow = false)
@@ -211,7 +211,7 @@
     end
     return true
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/orientation.html b/dev/source/methods/orientation.html index 2d80f3433..be4fe780d 100644 --- a/dev/source/methods/orientation.html +++ b/dev/source/methods/orientation.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -118,7 +118,7 @@ _isparallel(bx - ax, by - ay, dx - cx, dy - cy) _isparallel(Δx1, Δy1, Δx2, Δy2) = (Δx1 * Δy2 == Δy1 * Δx2)

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/polygonize.html b/dev/source/methods/polygonize.html index 396c22396..0a69c1556 100644 --- a/dev/source/methods/polygonize.html +++ b/dev/source/methods/polygonize.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -307,7 +307,7 @@ end return edges end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/not_implemented_yet.html b/dev/source/not_implemented_yet.html index 71c29e6bf..da5824646 100644 --- a/dev/source/not_implemented_yet.html +++ b/dev/source/not_implemented_yet.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -22,7 +22,7 @@ function buffer end function convexhull end function concavehull end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/primitives.html b/dev/source/primitives.html index 29b83b8d8..8321b89a1 100644 --- a/dev/source/primitives.html +++ b/dev/source/primitives.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -21,7 +21,7 @@
Skip to content

Primitive functions

julia
export apply, applyreduce, TraitTarget

This file mainly defines the apply and applyreduce functions, and some related functionality.

In general, the idea behind the apply framework is to take as input any geometry, vector of geometries, or feature collection, deconstruct it to the given trait target (any arbitrary GI.AbstractTrait or TraitTarget union thereof, like PointTrait or PolygonTrait) and perform some operation on it.

This allows for a simple and consistent framework within which users can define their own operations trivially easily, and removes a lot of the complexity involved with handling complex geometry structures.

For example, a simple way to flip the x and y coordinates of a geometry is:

julia
flipped_geom = GO.apply(GI.PointTrait(), geom) do p
     (GI.y(p), GI.x(p))
 end

As simple as that. There's no need to implement your own decomposition because it's done for you.

Functions like flip, reproject, transform, even segmentize and simplify have been implemented using the apply framework. Similarly, centroid, area and distance have been implemented using the applyreduce framework.

Docstrings

Functions

Missing docstring.

Missing docstring for apply. Check Documenter's build log for details.

Missing docstring.

Missing docstring for applyreduce. Check Documenter's build log for details.

Missing docstring.

Missing docstring for GeometryOps.unwrap. Check Documenter's build log for details.

# GeometryOps.flattenFunction.
julia
flatten(target::Type{<:GI.AbstractTrait}, obj)
-flatten(f, target::Type{<:GI.AbstractTrait}, obj)

Lazily flatten any AbstractArray, iterator, FeatureCollectionTrait, FeatureTrait or AbstractGeometryTrait object obj, so that objects with the target trait are returned by the iterator.

If f is passed in it will be applied to the target geometries.

source


# GeometryOps.reconstructFunction.
julia
reconstruct(geom, components)

Reconstruct geom from an iterable of component objects that match its structure.

All objects in components must have the same GeoInterface.trait.

Usually used in combination with flatten.

source


# GeometryOps.rebuildFunction.
julia
rebuild(geom, child_geoms)

Rebuild a geometry from child geometries.

By default geometries will be rebuilt as a GeoInterface.Wrappers geometry, but rebuild can have methods added to it to dispatch on geometries from other packages and specify how to rebuild them.

(Maybe it should go into GeoInterface.jl)

source


Types

Missing docstring.

Missing docstring for TraitTarget. Check Documenter's build log for details.

Implementation

julia
const THREADED_KEYWORD = "- `threaded`: `true` or `false`. Whether to use multithreading. Defaults to `false`."
+flatten(f, target::Type{<:GI.AbstractTrait}, obj)

Lazily flatten any AbstractArray, iterator, FeatureCollectionTrait, FeatureTrait or AbstractGeometryTrait object obj, so that objects with the target trait are returned by the iterator.

If f is passed in it will be applied to the target geometries.

source


# GeometryOps.reconstructFunction.
julia
reconstruct(geom, components)

Reconstruct geom from an iterable of component objects that match its structure.

All objects in components must have the same GeoInterface.trait.

Usually used in combination with flatten.

source


# GeometryOps.rebuildFunction.
julia
rebuild(geom, child_geoms)

Rebuild a geometry from child geometries.

By default geometries will be rebuilt as a GeoInterface.Wrappers geometry, but rebuild can have methods added to it to dispatch on geometries from other packages and specify how to rebuild them.

(Maybe it should go into GeoInterface.jl)

source


Types

Missing docstring.

Missing docstring for TraitTarget. Check Documenter's build log for details.

Implementation

julia
const THREADED_KEYWORD = "- `threaded`: `true` or `false`. Whether to use multithreading. Defaults to `false`."
 const CRS_KEYWORD = "- `crs`: The CRS to attach to geometries. Defaults to `nothing`."
 const CALC_EXTENT_KEYWORD = "- `calc_extent`: `true` or `false`. Whether to calculate the extent. Defaults to `false`."
 
@@ -334,7 +334,7 @@
 Base.@assume_effects :foldable function _mapreducetasks(f::F, op, taskrange, threaded::_False; init) where F
     mapreduce(f, op, taskrange; init)
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/correction/closed_ring.html b/dev/source/transformations/correction/closed_ring.html index 403723a20..2fc449fbf 100644 --- a/dev/source/transformations/correction/closed_ring.html +++ b/dev/source/transformations/correction/closed_ring.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -48,7 +48,7 @@ else

Assemble the ring as a vector

julia
        tups = tuples.(GI.getpoint(ring))

Close the ring

julia
        push!(tups, tups[1])

Return an actual ring

julia
        return GI.LinearRing(tups)
     end
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/correction/geometry_correction.html b/dev/source/transformations/correction/geometry_correction.html index 5afc9cc15..afa71b1dd 100644 --- a/dev/source/transformations/correction/geometry_correction.html +++ b/dev/source/transformations/correction/geometry_correction.html @@ -8,17 +8,17 @@ - + - - - + + + -
Skip to content

Geometry Corrections

julia
export fix

This file simply defines the GeometryCorrection abstract type, and the interface that any GeometryCorrection must implement.

A geometry correction is a transformation that is applied to a geometry to correct it in some way.

For example, a ClosedRing correction might be applied to a Polygon to ensure that its exterior ring is closed.

Interface

All GeometryCorrections are callable structs which, when called, apply the correction to the given geometry, and return either a copy or the original geometry (if nothing needed to be corrected).

See below for the full interface specification.

# GeometryOps.GeometryCorrectionType.
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source


Any geometry correction must implement the interface as given above.

julia
"""
+    
Skip to content

Geometry Corrections

julia
export fix

This file simply defines the GeometryCorrection abstract type, and the interface that any GeometryCorrection must implement.

A geometry correction is a transformation that is applied to a geometry to correct it in some way.

For example, a ClosedRing correction might be applied to a Polygon to ensure that its exterior ring is closed.

Interface

All GeometryCorrections are callable structs which, when called, apply the correction to the given geometry, and return either a copy or the original geometry (if nothing needed to be corrected).

See below for the full interface specification.

# GeometryOps.GeometryCorrectionType.
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source


Any geometry correction must implement the interface as given above.

julia
"""
     abstract type GeometryCorrection
 
 This abstract type represents a geometry correction.
@@ -48,8 +48,8 @@
         final_geometry = apply(net_function, Trait, final_geometry; kwargs...)
     end
     return final_geometry
-end

Available corrections

# GeometryOps.ClosedRingType.
julia
ClosedRing() <: GeometryCorrection

This correction ensures that a polygon's exterior and interior rings are closed.

It can be called on any geometry correction as usual.

See also GeometryCorrection.

source


# GeometryOps.DiffIntersectingPolygonsType.
julia
DiffIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygons included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be made nonintersecting through the difference operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area. See also GeometryCorrection, UnionIntersectingPolygons.

source


# GeometryOps.GeometryCorrectionType.
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source


# GeometryOps.UnionIntersectingPolygonsType.
julia
UnionIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygon's included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be combined through the union operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area.

See also GeometryCorrection.

source



This page was generated using Literate.jl.

- +end

Available corrections

# GeometryOps.ClosedRingType.
julia
ClosedRing() <: GeometryCorrection

This correction ensures that a polygon's exterior and interior rings are closed.

It can be called on any geometry correction as usual.

See also GeometryCorrection.

source


# GeometryOps.DiffIntersectingPolygonsType.
julia
DiffIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygons included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be made nonintersecting through the difference operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area. See also GeometryCorrection, UnionIntersectingPolygons.

source


# GeometryOps.GeometryCorrectionType.
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source


# GeometryOps.UnionIntersectingPolygonsType.
julia
UnionIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygon's included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be combined through the union operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area.

See also GeometryCorrection.

source



This page was generated using Literate.jl.

+ \ No newline at end of file diff --git a/dev/source/transformations/correction/intersecting_polygons.html b/dev/source/transformations/correction/intersecting_polygons.html index 9cf0c5b18..e452eea19 100644 --- a/dev/source/transformations/correction/intersecting_polygons.html +++ b/dev/source/transformations/correction/intersecting_polygons.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -115,7 +115,7 @@ end return diff_multipoly end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/extent.html b/dev/source/transformations/extent.html index 7f406bf75..7787c5a82 100644 --- a/dev/source/transformations/extent.html +++ b/dev/source/transformations/extent.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -31,7 +31,7 @@ """ embed_extent(x; threaded=false, crs=nothing) = apply(identity, GI.PointTrait(), x; calc_extent=true, threaded, crs)

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/flip.html b/dev/source/transformations/flip.html index fcb621bf9..357e78628 100644 --- a/dev/source/transformations/flip.html +++ b/dev/source/transformations/flip.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -40,7 +40,7 @@ end end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/reproject.html b/dev/source/transformations/reproject.html index 88bb0be26..9896cfa19 100644 --- a/dev/source/transformations/reproject.html +++ b/dev/source/transformations/reproject.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -59,7 +59,7 @@ nothing end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/segmentize.html b/dev/source/transformations/segmentize.html index 59da52796..451189ed0 100644 --- a/dev/source/transformations/segmentize.html +++ b/dev/source/transformations/segmentize.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -39,7 +39,7 @@ f, a, p = poly(collect(GI.getpoint(linear)); label = "Linear", axis = (; aspect = DataAspect())) p2 = poly!(collect(GI.getpoint(geodesic)); label = "Geodesic") axislegend(a; position = :lt) -f

There are two methods available for segmentizing geometries at the moment:

Missing docstring.

Missing docstring for LinearSegments. Check Documenter's build log for details.

Missing docstring.

Missing docstring for GeodesicSegments. Check Documenter's build log for details.

Benchmark

We benchmark our method against LibGEOS's GEOSDensify method, which is a similar method for densifying geometries.

julia
using BenchmarkTools: BenchmarkGroup
+f

There are two methods available for segmentizing geometries at the moment:

Missing docstring.

Missing docstring for LinearSegments. Check Documenter's build log for details.

Missing docstring.

Missing docstring for GeodesicSegments. Check Documenter's build log for details.

Benchmark

We benchmark our method against LibGEOS's GEOSDensify method, which is a similar method for densifying geometries.

julia
using BenchmarkTools: BenchmarkGroup
 using Chairmarks: @be
 using Main: plot_trials
 using CairoMakie
@@ -77,7 +77,7 @@
 
 end
 
-plot_trials(segmentize_suite)

julia
abstract type SegmentizeMethod end
+plot_trials(segmentize_suite)

julia
abstract type SegmentizeMethod end
 """
     LinearSegments(; max_distance::Real)
 
@@ -172,7 +172,7 @@
     end

End the line with the original coordinate, to avoid any multiplication errors.

julia
    push!(new_coords, (x2, y2))
     return nothing
 end

Note

The _fill_linear_kernel definition for GeodesicSegments is in the GeometryOpsProjExt extension module, in the segmentize.jl file.


This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/simplify.html b/dev/source/transformations/simplify.html index 1f5254c71..e848d1380 100644 --- a/dev/source/transformations/simplify.html +++ b/dev/source/transformations/simplify.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -29,7 +29,7 @@ f, a, p = poly(original; label = "Original") poly!(simple; label = "Simplified") axislegend(a) -f

Benchmark

We benchmark these methods against LibGEOS's simplify implementation, which uses the Douglas-Peucker algorithm.

julia
using BenchmarkTools, Chairmarks, GeoJSON, CairoMakie
+f

Benchmark

We benchmark these methods against LibGEOS's simplify implementation, which uses the Douglas-Peucker algorithm.

julia
using BenchmarkTools, Chairmarks, GeoJSON, CairoMakie
 import GeometryOps as GO, LibGEOS as LG, GeoInterface as GI
 using CoordinateTransformations
 using NaturalEarth
@@ -42,7 +42,7 @@
 usa_poly = GI.getgeom(usa_multipoly, findmax(GO.area.(GI.getgeom(usa_multipoly)))[2]) # isolate the poly with the most area
 usa_centroid = GO.centroid(usa_poly)
 usa_reflected = GO.transform(Translation(usa_centroid...)  LinearMap(Makie.rotmatrix2d(π))  Translation((-).(usa_centroid)...), usa_poly)
-f, a, p = plot(usa_poly; label = "Original", axis = (; aspect = DataAspect()))#; plot!(usa_reflected; label = "Reflected")

This is the complex polygon we'll be benchmarking.

julia
simplify_suite = BenchmarkGroup(["Simplify"])
+f, a, p = plot(usa_poly; label = "Original", axis = (; aspect = DataAspect()))#; plot!(usa_reflected; label = "Reflected")

This is the complex polygon we'll be benchmarking.

julia
simplify_suite = BenchmarkGroup(["Simplify"])
 singlepoly_suite = BenchmarkGroup(["Polygon", "title:Polygon simplify", "subtitle:Random blob"])
 
 include(joinpath(dirname(dirname(pathof(GO))), "test", "data", "polygon_generation.jl"))
@@ -56,7 +56,7 @@
     singlepoly_suite["LibGEOS"][GI.npoint(geom)] = @be LG.simplify($geom_lg, 0.1) seconds=1
 end
 
-plot_trials(singlepoly_suite; legend_position=(1, 1, TopRight()), legend_valign = -2, legend_halign = 1.2, legend_orientation = :horizontal)

julia
multipoly_suite = BenchmarkGroup(["MultiPolygon", "title:Multipolygon simplify", "subtitle:USA multipolygon"])
+plot_trials(singlepoly_suite; legend_position=(1, 1, TopRight()), legend_valign = -2, legend_halign = 1.2, legend_orientation = :horizontal)

julia
multipoly_suite = BenchmarkGroup(["MultiPolygon", "title:Multipolygon simplify", "subtitle:USA multipolygon"])
 
 for frac in exp10.(LinRange(log10(0.3), log10(1), 6)) # TODO: this example isn't the best.  How can we get this better?
     geom = GO.simplify(usa_multipoly; ratio = frac)
@@ -75,7 +75,7 @@
     # GO-VW : $(GI.npoint( GO.simplify((GO.VisvalingamWhyatt(; tol = _tol)), geom_go)))
     println()
 end
-plot_trials(multipoly_suite)

julia
export simplify, VisvalingamWhyatt, DouglasPeucker, RadialDistance
+plot_trials(multipoly_suite)

julia
export simplify, VisvalingamWhyatt, DouglasPeucker, RadialDistance
 
 const _SIMPLIFY_TARGET = TraitTarget{Union{GI.PolygonTrait, GI.AbstractCurveTrait, GI.MultiPointTrait, GI.PointTrait}}()
 const MIN_POINTS = 3
@@ -508,7 +508,7 @@
     end
     return nothing
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/transform.html b/dev/source/transformations/transform.html index 66de3b561..34df83e4b 100644 --- a/dev/source/transformations/transform.html +++ b/dev/source/transformations/transform.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -73,7 +73,7 @@ end end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/tuples.html b/dev/source/transformations/tuples.html index 766828e7a..534b3c803 100644 --- a/dev/source/transformations/tuples.html +++ b/dev/source/transformations/tuples.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -37,7 +37,7 @@ end end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/types.html b/dev/source/types.html index 9497badf8..7801941e1 100644 --- a/dev/source/types.html +++ b/dev/source/types.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -85,7 +85,7 @@ error("$(f) requires a `$(kw)` keyword argument to the `GEOS` algorithm, which was not provided.") end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/utils.html b/dev/source/utils.html index 068501a15..449c5efa7 100644 --- a/dev/source/utils.html +++ b/dev/source/utils.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -141,7 +141,7 @@ _linearring(geom::GI.LineString) = GI.LinearRing(parent(geom); extent=geom.extent, crs=geom.crs) _linearring(geom::GI.LinearRing) = geom

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/tutorials/creating_geometry.html b/dev/tutorials/creating_geometry.html index cde00efdb..e45698ea2 100644 --- a/dev/tutorials/creating_geometry.html +++ b/dev/tutorials/creating_geometry.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -28,37 +28,37 @@ import Proj # Plotting using CairoMakie -using GeoMakie

Creating and plotting geometries

Let's start by making a single Point.

julia
point = GI.Point(0, 0)
GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}((0, 0), nothing)

Now, let's plot our point.

julia
fig, ax, plt = plot(point)

Let's create a set of points, and have a bit more fun with plotting.

julia
x = [-5, 0, 5, 0];
+using GeoMakie

Creating and plotting geometries

Let's start by making a single Point.

julia
point = GI.Point(0, 0)
GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}((0, 0), nothing)

Now, let's plot our point.

julia
fig, ax, plt = plot(point)

Let's create a set of points, and have a bit more fun with plotting.

julia
x = [-5, 0, 5, 0];
 y = [0, -5, 0, 5];
 points = GI.Point.(zip(x,y));
 plot!(ax, points; marker = '✈', markersize = 30)
-fig

Points can be combined into a single MultiPoint geometry.

julia
x = [-5, -5, 5, 5];
+fig

Points can be combined into a single MultiPoint geometry.

julia
x = [-5, -5, 5, 5];
 y = [-5, 5, 5, -5];
 multipoint = GI.MultiPoint(GI.Point.(zip(x, y)));
 plot!(ax, multipoint; marker = '☁', markersize = 30)
-fig

Let's create a LineString connecting two points.

julia
p1 = GI.Point.(-5, 0);
+fig

Let's create a LineString connecting two points.

julia
p1 = GI.Point.(-5, 0);
 p2 = GI.Point.(5, 0);
 line = GI.LineString([p1,p2])
 plot!(ax, line; color = :red)
-fig

Now, let's create a line connecting multiple points (i.e. a LineString). This time we get a bit more fancy with point creation.

julia
r = 2;
+fig

Now, let's create a line connecting multiple points (i.e. a LineString). This time we get a bit more fancy with point creation.

julia
r = 2;
 k = 10;
 ϴ = 0:0.01:2pi;
 x = r .* (k + 1) .* cos.(ϴ) .- r .* cos.((k + 1) .* ϴ);
 y = r .* (k + 1) .* sin.(ϴ) .- r .* sin.((k + 1) .* ϴ);
 lines = GI.LineString(GI.Point.(zip(x,y)));
 plot!(ax, lines; linewidth = 5)
-fig

We can also create a single LinearRing trait, the building block of a polygon. A LinearRing is simply a LineString with the same beginning and endpoint, i.e., an arbitrary closed shape composed of point pairs.

A LinearRing is composed of a series of points.

julia
ring1 = GI.LinearRing(GI.getpoint(lines));
GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}[GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.0, 0.0), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.010987813253244, 0.0004397316773170068), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.043805248003498, 0.0035114210915891397), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.098016055420953, 0.011814947665167774), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.172899020101585, 0.027886421973952302), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.267456684570245, 0.05416726609360478), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.380427415579764, 0.09297443860091348), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.51030066635026, 0.1464721641710074), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.655335250260467, 0.21664550952386064), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.813580405100698, 0.30527612515520186), nothing)  …  GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.866418416586406, -0.3376428491230612), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.704405820024185, -0.24279488312757858), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.55494217175954, -0.16692537029320365), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.420040147662014, -0.10832215707812454), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.30151010318639, -0.0650624499034016), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.200938172182195, -0.03503632062070827), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.119667078681967, -0.01597247419241532), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.058779893613323, -0.005465967083412071), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.019086932781654, -0.0010075412835199304), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.001115954499138, -1.4219350464667047e-5), nothing)], nothing, nothing)

Now, let's make the LinearRing into a Polygon.

julia
polygon1 = GI.Polygon([ring1]);
GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}[GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.0, 0.0), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.010987813253244, 0.0004397316773170068), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.043805248003498, 0.0035114210915891397), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.098016055420953, 0.011814947665167774), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.172899020101585, 0.027886421973952302), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.267456684570245, 0.05416726609360478), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.380427415579764, 0.09297443860091348), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.51030066635026, 0.1464721641710074), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.655335250260467, 0.21664550952386064), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.813580405100698, 0.30527612515520186), nothing)  …  GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.866418416586406, -0.3376428491230612), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.704405820024185, -0.24279488312757858), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.55494217175954, -0.16692537029320365), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.420040147662014, -0.10832215707812454), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.30151010318639, -0.0650624499034016), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.200938172182195, -0.03503632062070827), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.119667078681967, -0.01597247419241532), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.058779893613323, -0.005465967083412071), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.019086932781654, -0.0010075412835199304), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.001115954499138, -1.4219350464667047e-5), nothing)], nothing, nothing)], nothing, nothing)

Now, we can use GeometryOps and CoordinateTransformations to shift polygon1 up, to avoid plotting over our earlier results. This is done through the GeometryOps.transform function.

julia
xoffset = 0.;
+fig

We can also create a single LinearRing trait, the building block of a polygon. A LinearRing is simply a LineString with the same beginning and endpoint, i.e., an arbitrary closed shape composed of point pairs.

A LinearRing is composed of a series of points.

julia
ring1 = GI.LinearRing(GI.getpoint(lines));
GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}[GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.0, 0.0), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.010987813253244, 0.0004397316773170068), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.043805248003498, 0.0035114210915891397), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.098016055420953, 0.011814947665167774), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.172899020101585, 0.027886421973952302), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.267456684570245, 0.05416726609360478), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.380427415579764, 0.09297443860091348), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.51030066635026, 0.1464721641710074), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.655335250260467, 0.21664550952386064), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.813580405100698, 0.30527612515520186), nothing)  …  GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.866418416586406, -0.3376428491230612), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.704405820024185, -0.24279488312757858), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.55494217175954, -0.16692537029320365), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.420040147662014, -0.10832215707812454), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.30151010318639, -0.0650624499034016), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.200938172182195, -0.03503632062070827), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.119667078681967, -0.01597247419241532), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.058779893613323, -0.005465967083412071), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.019086932781654, -0.0010075412835199304), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.001115954499138, -1.4219350464667047e-5), nothing)], nothing, nothing)

Now, let's make the LinearRing into a Polygon.

julia
polygon1 = GI.Polygon([ring1]);
GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}[GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.0, 0.0), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.010987813253244, 0.0004397316773170068), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.043805248003498, 0.0035114210915891397), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.098016055420953, 0.011814947665167774), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.172899020101585, 0.027886421973952302), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.267456684570245, 0.05416726609360478), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.380427415579764, 0.09297443860091348), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.51030066635026, 0.1464721641710074), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.655335250260467, 0.21664550952386064), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.813580405100698, 0.30527612515520186), nothing)  …  GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.866418416586406, -0.3376428491230612), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.704405820024185, -0.24279488312757858), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.55494217175954, -0.16692537029320365), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.420040147662014, -0.10832215707812454), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.30151010318639, -0.0650624499034016), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.200938172182195, -0.03503632062070827), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.119667078681967, -0.01597247419241532), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.058779893613323, -0.005465967083412071), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.019086932781654, -0.0010075412835199304), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.001115954499138, -1.4219350464667047e-5), nothing)], nothing, nothing)], nothing, nothing)

Now, we can use GeometryOps and CoordinateTransformations to shift polygon1 up, to avoid plotting over our earlier results. This is done through the GeometryOps.transform function.

julia
xoffset = 0.;
 yoffset = 50.;
 f = CoordinateTransformations.Translation(xoffset, yoffset);
 polygon1 = GO.transform(f, polygon1);
 plot!(polygon1)
-fig

Polygons can contain "holes". The first LinearRing in a polygon is the exterior, and all subsequent LinearRings are treated as holes in the leading LinearRing.

GeoInterface offers the GI.getexterior(poly) and GI.gethole(poly) methods to get the exterior ring and an iterable of holes, respectively.

julia
hole = GI.LinearRing(GI.getpoint(multipoint))
+fig

Polygons can contain "holes". The first LinearRing in a polygon is the exterior, and all subsequent LinearRings are treated as holes in the leading LinearRing.

GeoInterface offers the GI.getexterior(poly) and GI.gethole(poly) methods to get the exterior ring and an iterable of holes, respectively.

julia
hole = GI.LinearRing(GI.getpoint(multipoint))
 polygon2 = GI.Polygon([ring1, hole])
GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, T, Nothing, Nothing} where T}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, T, Nothing, Nothing} where T[GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}[GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.0, 0.0), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.010987813253244, 0.0004397316773170068), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.043805248003498, 0.0035114210915891397), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.098016055420953, 0.011814947665167774), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.172899020101585, 0.027886421973952302), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.267456684570245, 0.05416726609360478), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.380427415579764, 0.09297443860091348), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.51030066635026, 0.1464721641710074), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.655335250260467, 0.21664550952386064), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.813580405100698, 0.30527612515520186), nothing)  …  GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.866418416586406, -0.3376428491230612), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.704405820024185, -0.24279488312757858), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.55494217175954, -0.16692537029320365), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.420040147662014, -0.10832215707812454), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.30151010318639, -0.0650624499034016), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.200938172182195, -0.03503632062070827), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.119667078681967, -0.01597247419241532), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.058779893613323, -0.005465967083412071), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.019086932781654, -0.0010075412835199304), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.001115954499138, -1.4219350464667047e-5), nothing)], nothing, nothing), GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}[GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}((-5, -5), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}((-5, 5), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}((5, 5), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}((5, -5), nothing)], nothing, nothing)], nothing, nothing)

Shift polygon2 to the right, to avoid plotting over our earlier results.

julia
xoffset = 50.;
 yoffset = 0.;
 f = CoordinateTransformations.Translation(xoffset, yoffset);
 polygon2 = GO.transform(f, polygon2);
 plot!(polygon2)
-fig

Polygons can also be grouped together as a MultiPolygon.

julia
r = 5;
+fig

Polygons can also be grouped together as a MultiPolygon.

julia
r = 5;
 x = cos.(reverse(ϴ)) .* r .+ xoffset;
 y = sin.(reverse(ϴ)) .* r .+ yoffset;
 ring2 =  GI.LinearRing(GI.Point.(zip(x,y)));
@@ -68,7 +68,7 @@
 f = CoordinateTransformations.Translation(xoffset, yoffset);
 multipolygon = GO.transform(f, multipolygon);
 plot!(multipolygon)
-fig

Great, now we can make Points, MultiPoints, Lines, LineStrings, Polygons (with holes), and MultiPolygons and modify them using [CoordinateTransformations] and [GeometryOps].

Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

In geospatial sciences we often have data in one Coordinate Reference System (CRS) (source) and would like to display it in different (destination) CRS. GeoMakie allows us to do this by automatically projecting from source to destination CRS.

Here, our source CRS is common geographic (i.e. coordinates of latitude and longitude), WGS84.

julia
source_crs1 = GFT.EPSG(4326)
GeoFormatTypes.EPSG{1}((4326,))

Now let's pick a destination CRS for displaying our map. Here we'll pick natearth2.

julia
destination_crs = "+proj=natearth2"
"+proj=natearth2"

Let's add land area for context. First, download and open the Natural Earth global land polygons at 110 m resolution.GeoMakie ships with this particular dataset, so we will access it from there.

julia
land_path = GeoMakie.assetpath("ne_110m_land.geojson")
"/home/runner/.julia/packages/GeoMakie/f5FPN/assets/ne_110m_land.geojson"

Note

Natural Earth has lots of other datasets, and there is a Julia package that provides an interface to it called NaturalEarth.jl.

Read the land MultiPolygons as a GeoJSON.FeatureCollection.

julia
land_geo = GeoJSON.read(land_path)
FeatureCollection with 127 Features

We then need to create a figure with a GeoAxis that can handle the projection between source and destination CRS. For GeoMakie, source is the CRS of the input and dest is the CRS you want to visualize in.

julia
fig = Figure(size=(1000, 500));
+fig

Great, now we can make Points, MultiPoints, Lines, LineStrings, Polygons (with holes), and MultiPolygons and modify them using [CoordinateTransformations] and [GeometryOps].

Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

In geospatial sciences we often have data in one Coordinate Reference System (CRS) (source) and would like to display it in different (destination) CRS. GeoMakie allows us to do this by automatically projecting from source to destination CRS.

Here, our source CRS is common geographic (i.e. coordinates of latitude and longitude), WGS84.

julia
source_crs1 = GFT.EPSG(4326)
GeoFormatTypes.EPSG{1}((4326,))

Now let's pick a destination CRS for displaying our map. Here we'll pick natearth2.

julia
destination_crs = "+proj=natearth2"
"+proj=natearth2"

Let's add land area for context. First, download and open the Natural Earth global land polygons at 110 m resolution.GeoMakie ships with this particular dataset, so we will access it from there.

julia
land_path = GeoMakie.assetpath("ne_110m_land.geojson")
"/home/runner/.julia/packages/GeoMakie/f5FPN/assets/ne_110m_land.geojson"

Note

Natural Earth has lots of other datasets, and there is a Julia package that provides an interface to it called NaturalEarth.jl.

Read the land MultiPolygons as a GeoJSON.FeatureCollection.

julia
land_geo = GeoJSON.read(land_path)
FeatureCollection with 127 Features

We then need to create a figure with a GeoAxis that can handle the projection between source and destination CRS. For GeoMakie, source is the CRS of the input and dest is the CRS you want to visualize in.

julia
fig = Figure(size=(1000, 500));
 ga = GeoAxis(
     fig[1, 1];
     source = source_crs1,
@@ -76,8 +76,8 @@
     xticklabelsvisible = false,
     yticklabelsvisible = false,
 );

Plot land for context.

julia
poly!(ga, land_geo, color=:black)
-fig

Now let's plot a Polygon like before, but this time with a CRS that differs from our source data

julia
plot!(multipolygon; color = :green)
-fig

But what if we want to plot geometries with a different source CRS on the same figure?

To show how to do this let's create a geometry with coordinates in UTM (Universal Transverse Mercator) zone 10N EPSG:32610.

julia
source_crs2 = GFT.EPSG(32610)
GeoFormatTypes.EPSG{1}((32610,))

Create a polygon (we're working in meters now, not latitude and longitude)

julia
r = 1000000;
+fig

Now let's plot a Polygon like before, but this time with a CRS that differs from our source data

julia
plot!(multipolygon; color = :green)
+fig

But what if we want to plot geometries with a different source CRS on the same figure?

To show how to do this let's create a geometry with coordinates in UTM (Universal Transverse Mercator) zone 10N EPSG:32610.

julia
source_crs2 = GFT.EPSG(32610)
GeoFormatTypes.EPSG{1}((32610,))

Create a polygon (we're working in meters now, not latitude and longitude)

julia
r = 1000000;
 ϴ = 0:0.01:2pi;
 x = r .* cos.(ϴ).^3 .+ 500000;
 y = r .* sin.(ϴ) .^ 3 .+5000000;
629-element Vector{Float64}:
@@ -87,7 +87,7 @@
 
  5.0e6
  5.0e6

Now create a LinearRing from Points

julia
ring3 = GI.LinearRing(Point.(zip(x, y)))
GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}(Point{2, Float64}[[1.5e6, 5.0e6], [1.4998500087497458e6, 5.000000999950001e6], [1.4994001399837343e6, 5.000007998400139e6], [1.4986507085647392e6, 5.000026987852369e6], [1.4976022389592e6, 5.000063948817746e6], [1.4962554647802354e6, 5.000124843834609e6], [1.4946113281484335e6, 5.000215611503127e6], [1.4926709788709967e6, 5.000342160541625e6], [1.4904357734399722e6, 5.000510363870095e6], [1.4879072738504685e6, 5.0007260527263e6]  …  [1.4870405593989636e6, 4.999194331880103e6], [1.4896621210021754e6, 4.999426363321033e6], [1.491990928929295e6, 4.999609061508909e6], [1.4940253560034204e6, 4.999748243174828e6], [1.4957639801366436e6, 4.999849768598615e6], [1.497205585568957e6, 4.999919535736425e6], [1.4983491639274692e6, 4.999963474314044e6], [1.4991939151049731e6, 4.999987539891298e6], [1.4997392479570867e6, 4.999997707902938e6], [1.499984780817334e6, 4.999999967681458e6]], nothing, nothing)

Now create a Polygon from the LineRing

julia
polygon3 = GI.Polygon([ring3])
GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}(Point{2, Float64}[[1.5e6, 5.0e6], [1.4998500087497458e6, 5.000000999950001e6], [1.4994001399837343e6, 5.000007998400139e6], [1.4986507085647392e6, 5.000026987852369e6], [1.4976022389592e6, 5.000063948817746e6], [1.4962554647802354e6, 5.000124843834609e6], [1.4946113281484335e6, 5.000215611503127e6], [1.4926709788709967e6, 5.000342160541625e6], [1.4904357734399722e6, 5.000510363870095e6], [1.4879072738504685e6, 5.0007260527263e6]  …  [1.4870405593989636e6, 4.999194331880103e6], [1.4896621210021754e6, 4.999426363321033e6], [1.491990928929295e6, 4.999609061508909e6], [1.4940253560034204e6, 4.999748243174828e6], [1.4957639801366436e6, 4.999849768598615e6], [1.497205585568957e6, 4.999919535736425e6], [1.4983491639274692e6, 4.999963474314044e6], [1.4991939151049731e6, 4.999987539891298e6], [1.4997392479570867e6, 4.999997707902938e6], [1.499984780817334e6, 4.999999967681458e6]], nothing, nothing)], nothing, nothing)

Now plot on the existing GeoAxis.

Note

The keyword argument source is used to specify the source CRS of that particular plot, when plotting on an existing GeoAxis.

julia
plot!(ga,polygon3; color=:red, source = source_crs2)
-fig

Create geospatial geometries with embedded coordinate reference system information

Great, we can make geometries and plot them on a map... now let's export the data to common geospatial data formats. To do this we now need to create geometries with embedded CRS information, making it a geospatial geometry. All that's needed is to include ; crs = crs as a keyword argument when constructing the geometry.

Let's do this for a new Polygon

julia
r = 3;
+fig

Create geospatial geometries with embedded coordinate reference system information

Great, we can make geometries and plot them on a map... now let's export the data to common geospatial data formats. To do this we now need to create geometries with embedded CRS information, making it a geospatial geometry. All that's needed is to include ; crs = crs as a keyword argument when constructing the geometry.

Let's do this for a new Polygon

julia
r = 3;
 k = 7;
 ϴ = 0:0.01:2pi;
 x = r .* (k + 1) .* cos.(ϴ) .- r .* cos.((k + 1) .* ϴ);
@@ -107,7 +107,7 @@
 GeoParquet.write(fn, df, (:geometry,))
"shapes.parquet"

Finally, if there's no Julia-native package that can write data to your desired format (e.g. .gpkg, .gml, etc), you can use GeoDataFrames. This package uses the GDAL library under the hood which supports writing to nearly all geospatial formats.

julia
import GeoDataFrames
 fn = "shapes.gpkg"
 GeoDataFrames.write(fn, df)
"shapes.gpkg"

And there we go, you can now create mapped geometries from scratch, manipulate them, plot them on a map, and save them in multiple geospatial data formats.

- + \ No newline at end of file diff --git a/dev/tutorials/geodesic_paths.html b/dev/tutorials/geodesic_paths.html index 5a97b9e20..bb26b0817 100644 --- a/dev/tutorials/geodesic_paths.html +++ b/dev/tutorials/geodesic_paths.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -28,8 +28,8 @@ fig, ga, _cp = lines(GeoMakie.coastlines(); axis = (; type = GeoAxis)) lines!(ga, GO.segmentize(GO.GeodesicSegments(; max_distance = 100_000), GI.LineString([IAH, AMS])); color = Makie.wong_colors()[2]) -fig

- +fig

+ \ No newline at end of file diff --git a/dev/tutorials/spatial_joins.html b/dev/tutorials/spatial_joins.html index 52367c4e0..53b456145 100644 --- a/dev/tutorials/spatial_joins.html +++ b/dev/tutorials/spatial_joins.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -28,14 +28,14 @@ pl = GI.Polygon([GI.LinearRing([(0, 0), (1, 0), (1, 1), (0, 0)])]) pu = GI.Polygon([GI.LinearRing([(0, 0), (0, 1), (1, 1), (0, 0)])]) poly_df = DataFrame(geometry = [pl, pu], color = [:red, :blue]) -f, a, p = poly(poly_df.geometry; color = tuple.(poly_df.color, 0.3))

Here, the upper polygon is blue, and the lower polygon is red. Keep this in mind!

Now, we generate the points.

julia
points = tuple.(rand(1000), rand(1000))
+f, a, p = poly(poly_df.geometry; color = tuple.(poly_df.color, 0.3))

Here, the upper polygon is blue, and the lower polygon is red. Keep this in mind!

Now, we generate the points.

julia
points = tuple.(rand(1000), rand(1000))
 points_df = DataFrame(geometry = points)
 scatter!(points_df.geometry)
-f

You can see that they are evenly distributed around the box. But how do we know which points are in which polygons?

We have to join the two dataframes based on which polygon (if any) each point lies within.

Now, we can perform the "spatial join" using FlexiJoins. We are performing an outer join here

julia
@time joined_df = FlexiJoins.innerjoin(
+f

You can see that they are evenly distributed around the box. But how do we know which points are in which polygons?

We have to join the two dataframes based on which polygon (if any) each point lies within.

Now, we can perform the "spatial join" using FlexiJoins. We are performing an outer join here

julia
@time joined_df = FlexiJoins.innerjoin(
     (points_df, poly_df),
     by_pred(:geometry, GO.within, :geometry)
 )
julia
scatter!(a, joined_df.geometry; color = joined_df.color)
-f

Here, you can see that the colors were assigned appropriately to the scattered points!

Real-world example

Suppose I have a list of polygons representing administrative regions (or mining sites, or what have you), and I have a list of polygons for each country. I want to find the country each region is in.

julia
import GeoInterface as GI, GeometryOps as GO
+f

Here, you can see that the colors were assigned appropriately to the scattered points!

Real-world example

Suppose I have a list of polygons representing administrative regions (or mining sites, or what have you), and I have a list of polygons for each country. I want to find the country each region is in.

julia
import GeoInterface as GI, GeometryOps as GO
 using FlexiJoins, DataFrames, GADM # GADM gives us country and sublevel geometry
 
 using CairoMakie, GeoInterfaceMakie
@@ -60,7 +60,7 @@
     ::FlexiJoins.ByPred{typeof(my_predicate_function)}, 
     datas
 ) = true

This will enable FlexiJoins to support your custom function, when it's passed to by_pred(:geometry, my_predicate_function, :geometry).

- + \ No newline at end of file