geo-polygonize 0.34.0 → 0.35.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +68 -18
- package/dist/geo_polygonize.wasm +0 -0
- package/dist/geo_polygonize_simd.wasm +0 -0
- package/dist/slim/cjs/index_slim.d.ts +1 -1
- package/dist/slim/cjs/index_slim.js +19 -850
- package/dist/slim/es/index_slim.d.ts +1 -1
- package/dist/slim/es/index_slim.js +11 -842
- package/dist/slim/pkg-scalar/geo_polygonize.d.ts +119 -0
- package/dist/slim/pkg-scalar/geo_polygonize_bg.wasm.d.ts +37 -0
- package/dist/slim/pkg-wrapper/bindings/ContainmentOptions.d.ts +6 -0
- package/dist/slim/pkg-wrapper/bindings/DedupPolicy.d.ts +1 -0
- package/dist/slim/pkg-wrapper/bindings/DeterminismOptions.d.ts +5 -0
- package/dist/slim/pkg-wrapper/bindings/DiagnosticsOptions.d.ts +4 -0
- package/dist/slim/pkg-wrapper/bindings/IndexBackend.d.ts +1 -0
- package/dist/slim/pkg-wrapper/bindings/NodingBackend.d.ts +1 -0
- package/dist/slim/pkg-wrapper/bindings/NodingOptions.d.ts +6 -0
- package/dist/slim/pkg-wrapper/bindings/PolygonizerOptions.d.ts +92 -0
- package/dist/slim/pkg-wrapper/bindings/ProvenanceOptions.d.ts +4 -0
- package/dist/slim/pkg-wrapper/bindings/SnapMode.d.ts +1 -0
- package/dist/slim/pkg-wrapper/bindings/SnapStrategy.d.ts +25 -0
- package/dist/slim/pkg-wrapper/bindings/TargetProfile.d.ts +1 -0
- package/dist/slim/pkg-wrapper/bindings/TileOwnershipPolicy.d.ts +1 -0
- package/dist/slim/pkg-wrapper/bindings/TilingOptions.d.ts +6 -0
- package/dist/slim/pkg-wrapper/bindings/TouchPolicy.d.ts +1 -0
- package/dist/slim/pkg-wrapper/bindings/ZOptions.d.ts +4 -0
- package/dist/slim/pkg-wrapper/bindings/ZPolicy.d.ts +5 -0
- package/dist/standard/cjs/index.js +3 -3
- package/dist/standard/cjs/index_slim.d.ts +1 -1
- package/dist/standard/es/index.js +3 -3
- package/dist/standard/es/index_slim.d.ts +1 -1
- package/dist/standard/pkg-scalar/geo_polygonize.d.ts +119 -0
- package/dist/standard/pkg-scalar/geo_polygonize_bg.wasm.d.ts +37 -0
- package/dist/standard/pkg-wrapper/bindings/ContainmentOptions.d.ts +6 -0
- package/dist/standard/pkg-wrapper/bindings/DedupPolicy.d.ts +1 -0
- package/dist/standard/pkg-wrapper/bindings/DeterminismOptions.d.ts +5 -0
- package/dist/standard/pkg-wrapper/bindings/DiagnosticsOptions.d.ts +4 -0
- package/dist/standard/pkg-wrapper/bindings/IndexBackend.d.ts +1 -0
- package/dist/standard/pkg-wrapper/bindings/NodingBackend.d.ts +1 -0
- package/dist/standard/pkg-wrapper/bindings/NodingOptions.d.ts +6 -0
- package/dist/standard/pkg-wrapper/bindings/PolygonizerOptions.d.ts +92 -0
- package/dist/standard/pkg-wrapper/bindings/ProvenanceOptions.d.ts +4 -0
- package/dist/standard/pkg-wrapper/bindings/SnapMode.d.ts +1 -0
- package/dist/standard/pkg-wrapper/bindings/SnapStrategy.d.ts +25 -0
- package/dist/standard/pkg-wrapper/bindings/TargetProfile.d.ts +1 -0
- package/dist/standard/pkg-wrapper/bindings/TileOwnershipPolicy.d.ts +1 -0
- package/dist/standard/pkg-wrapper/bindings/TilingOptions.d.ts +6 -0
- package/dist/standard/pkg-wrapper/bindings/TouchPolicy.d.ts +1 -0
- package/dist/standard/pkg-wrapper/bindings/ZOptions.d.ts +4 -0
- package/dist/standard/pkg-wrapper/bindings/ZPolicy.d.ts +5 -0
- package/dist/threads/es/index.js +1 -1
- package/dist/threads/es/index_slim.d.ts +1 -1
- package/dist/threads/pkg-threads/geo_polygonize.d.ts +139 -0
- package/dist/threads/pkg-threads/geo_polygonize_bg.wasm.d.ts +44 -0
- package/dist/threads/pkg-wrapper/bindings/ContainmentOptions.d.ts +6 -0
- package/dist/threads/pkg-wrapper/bindings/DedupPolicy.d.ts +1 -0
- package/dist/threads/pkg-wrapper/bindings/DeterminismOptions.d.ts +5 -0
- package/dist/threads/pkg-wrapper/bindings/DiagnosticsOptions.d.ts +4 -0
- package/dist/threads/pkg-wrapper/bindings/IndexBackend.d.ts +1 -0
- package/dist/threads/pkg-wrapper/bindings/NodingBackend.d.ts +1 -0
- package/dist/threads/pkg-wrapper/bindings/NodingOptions.d.ts +6 -0
- package/dist/threads/pkg-wrapper/bindings/PolygonizerOptions.d.ts +92 -0
- package/dist/threads/pkg-wrapper/bindings/ProvenanceOptions.d.ts +4 -0
- package/dist/threads/pkg-wrapper/bindings/SnapMode.d.ts +1 -0
- package/dist/threads/pkg-wrapper/bindings/SnapStrategy.d.ts +25 -0
- package/dist/threads/pkg-wrapper/bindings/TargetProfile.d.ts +1 -0
- package/dist/threads/pkg-wrapper/bindings/TileOwnershipPolicy.d.ts +1 -0
- package/dist/threads/pkg-wrapper/bindings/TilingOptions.d.ts +6 -0
- package/dist/threads/pkg-wrapper/bindings/TouchPolicy.d.ts +1 -0
- package/dist/threads/pkg-wrapper/bindings/ZOptions.d.ts +4 -0
- package/dist/threads/pkg-wrapper/bindings/ZPolicy.d.ts +5 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -88,11 +88,15 @@ use geo_polygonize_core::arrow_api::{polygonize_arrow, PolygonizerOptions};
|
|
|
88
88
|
|
|
89
89
|
### Python
|
|
90
90
|
|
|
91
|
-
The
|
|
91
|
+
The Python package is published as `geo-polygonize-py` and imported as `geo_polygonize`.
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
pip install geo-polygonize-py
|
|
95
|
+
```
|
|
92
96
|
|
|
93
97
|
```python
|
|
94
98
|
import numpy as np
|
|
95
|
-
from geo_polygonize import polygonize
|
|
99
|
+
from geo_polygonize import polygonize, import_probe
|
|
96
100
|
|
|
97
101
|
# 1. Using Shapely LineStrings or coordinate lists directly
|
|
98
102
|
lines = [
|
|
@@ -116,8 +120,54 @@ coords = np.array([
|
|
|
116
120
|
# The final closing offset is computed implicitly.
|
|
117
121
|
offsets = np.array([0, 5], dtype=np.uint32)
|
|
118
122
|
|
|
119
|
-
# Returns a dictionary with '
|
|
123
|
+
# Returns a stable dictionary with 'polygons', diagnostics, and provenance.
|
|
120
124
|
result_dict = polygonize(coords=coords, offsets=offsets)
|
|
125
|
+
|
|
126
|
+
# Native-extension probes are cheap and safe for optional integrations.
|
|
127
|
+
ok, error = import_probe()
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
CFB/autograder integrations should use the versioned production profile rather
|
|
131
|
+
than assembling caller-side knobs or using legacy `polygonize(..., node=True,
|
|
132
|
+
snap=0.5)` calls:
|
|
133
|
+
|
|
134
|
+
```python
|
|
135
|
+
from geo_polygonize import cfb_robust_options, polygonize_with_options
|
|
136
|
+
|
|
137
|
+
result = polygonize_with_options(
|
|
138
|
+
coords=coords,
|
|
139
|
+
offsets=offsets,
|
|
140
|
+
options=cfb_robust_options(),
|
|
141
|
+
)
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
The default return shape is a stable dictionary with `polygons` as
|
|
145
|
+
`SimplePolygon` values. Use `return_polygons=True` only when you want Shapely
|
|
146
|
+
`Polygon` objects.
|
|
147
|
+
|
|
148
|
+
For Shapely parity checks, compare report-mode outputs with the built-in
|
|
149
|
+
mismatch helper:
|
|
150
|
+
|
|
151
|
+
```python
|
|
152
|
+
from geo_polygonize import explain_mismatch, polygonize_with_options
|
|
153
|
+
|
|
154
|
+
options = cfb_robust_options()
|
|
155
|
+
result_a = polygonize_with_options(coords=coords_a, offsets=offsets_a, options=options)
|
|
156
|
+
result_b = polygonize_with_options(coords=coords_b, offsets=offsets_b, options=options)
|
|
157
|
+
result_a["options"] = options
|
|
158
|
+
result_b["options"] = options
|
|
159
|
+
|
|
160
|
+
mismatch = explain_mismatch(result_a, result_b)
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
For a minimal Shapely smoke comparison, use area signatures:
|
|
164
|
+
|
|
165
|
+
```python
|
|
166
|
+
from shapely.ops import polygonize as shapely_polygonize
|
|
167
|
+
|
|
168
|
+
rust_polys = polygonize_with_options(lines=lines, options=cfb_robust_options(), return_polygons=True)
|
|
169
|
+
rust_areas = sorted(round(poly.area, 6) for poly in rust_polys)
|
|
170
|
+
shapely_areas = sorted(round(poly.area, 6) for poly in shapely_polygonize(lines))
|
|
121
171
|
```
|
|
122
172
|
|
|
123
173
|
### WebAssembly (WASM)
|
|
@@ -129,8 +179,8 @@ This library supports WebAssembly with an ergonomic dual-build configuration tha
|
|
|
129
179
|
npm install geo-polygonize
|
|
130
180
|
```
|
|
131
181
|
|
|
132
|
-
**Standard Usage (
|
|
133
|
-
The default entry point automatically handles feature detection (SIMD) and lazy-loading of the Wasm binary. The Wasm is inlined as a Base64 Data URI, so no extra bundler configuration is needed.
|
|
182
|
+
**Standard Usage (Quick Demos):**
|
|
183
|
+
The default entry point automatically handles feature detection (SIMD) and lazy-loading of the Wasm binary. The Wasm is inlined as a Base64 Data URI, so no extra bundler configuration is needed. For app builds, prefer the slim entry point below so your bundler keeps the Wasm assets out of the JavaScript chunk.
|
|
134
184
|
|
|
135
185
|
```javascript
|
|
136
186
|
import init, { polygonize, polygonize_geoarrow } from "geo-polygonize";
|
|
@@ -160,24 +210,24 @@ async function run() {
|
|
|
160
210
|
}
|
|
161
211
|
```
|
|
162
212
|
|
|
163
|
-
**Slim Usage (Manual Loading):**
|
|
164
|
-
|
|
213
|
+
**Slim Usage (Apps / Manual Loading):**
|
|
214
|
+
For Vite and other app bundlers, import from `geo-polygonize/slim` and pass explicit Wasm asset URLs.
|
|
165
215
|
|
|
166
216
|
```javascript
|
|
167
|
-
import {
|
|
217
|
+
import { cfbRobustOptions, initBest } from "geo-polygonize/slim";
|
|
218
|
+
import scalarUrl from "geo-polygonize/geo_polygonize.wasm?url";
|
|
219
|
+
import simdUrl from "geo-polygonize/geo_polygonize_simd.wasm?url";
|
|
168
220
|
|
|
169
221
|
async function run() {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
const module = await WebAssembly.compile(buffer);
|
|
175
|
-
|
|
176
|
-
// Helper to initialize the best available implementation
|
|
177
|
-
// Pass the module to both arguments if you only have one version
|
|
178
|
-
await initBest(module, module);
|
|
222
|
+
const wasm = await initBest(
|
|
223
|
+
{ module_or_path: scalarUrl },
|
|
224
|
+
{ module_or_path: simdUrl },
|
|
225
|
+
);
|
|
179
226
|
|
|
180
|
-
|
|
227
|
+
const result = wasm.polygonizeWithOptions(
|
|
228
|
+
JSON.stringify(geojson),
|
|
229
|
+
cfbRobustOptions,
|
|
230
|
+
);
|
|
181
231
|
}
|
|
182
232
|
```
|
|
183
233
|
|
package/dist/geo_polygonize.wasm
CHANGED
|
Binary file
|
|
Binary file
|
|
@@ -17,4 +17,4 @@ export * from "./bindings/TouchPolicy";
|
|
|
17
17
|
export * from "./bindings/ZOptions";
|
|
18
18
|
export * from "./bindings/ZPolicy";
|
|
19
19
|
export * from "./cfb";
|
|
20
|
-
export declare function initBest(scalarModule: any, simdModule
|
|
20
|
+
export declare function initBest(scalarModule: any, simdModule?: any): Promise<typeof scalarExports>;
|