{"name": "Muestreo Espacial Puntos (SH, GH, GFC, AL, KM, Estr_Pts-AL, Estr_Pol-AL)", "package_name": "Muestreo_Espacial_Puntos", "description": "Spatial point sampling over a polygon area with 7 methods: Systematic Hilbert (SH), Hilbert Groups (GH), Row-Column Groups (GFC), Simple Random (AL), K-Means Groups (KM), Stratified by Points (Estr_Pts-AL) and by Polygon (Estr_Pol-AL).", "about": "QGIS plugin implementing seven spatial point sampling methods\nover a point layer (sampling frame) and a polygon study area.\n\nThe Hilbert Space-Filling Curve is the core of the SH and GH methods:\nas a continuous line that traverses the study area preserving spatial\nlocality, it guarantees that points close in curve order are also\ngeographically close. This improves spatial coverage and\nrepresentativeness of SH and GH compared to simple random sampling.\n\nSimple Random Sampling (AL) prioritizes statistical validity over\nspatial coverage \u2014 it is the only method where standard SRS formulas\n(variance, confidence intervals) apply directly without design\ncorrection. GFC uses NW-to-SE row ordering and KM uses 2D geographic\nproximity. Estr_Pts-AL and Estr_Pol-AL select randomly within\nJSON-defined strata. The full Hilbert ordering of the frame is\ncomputed in all methods and available as a diagnostic reference in\nthe HTML report.\n\nSampling methods:\n- Systematic Hilbert (SH): fixed-interval selection along the Hilbert\ncurve. Produces dispersed patterns (NNI > 1.2).\n- Hilbert Groups (GH): 1D stratification on the Hilbert order.\nk=0: automatic group count (k=min(ceil(sqrt(n)), floor(sqrt(N))), min. 2 groups).\n- Simple Random Sampling (AL): random selection without replacement.\nHilbert ordering used for diagnostic reporting only.\n- Row-Column Groups (GFC): sequential 1..N numbering of points\nfollowing a NW-to-SE row traversal; partitioned into k equal groups\nwith random selection within each group. No external dependencies.\nProduces a row-by-row line layer (Salida: Orden NO-SE).\n- K-Means Groups (KM): 2D spatial clustering. Point selection based\nentirely on geographic proximity. Requires scikit-learn.\n- Stratified by Points JSON (Estr_Pts-AL): variable sample sizes per\nstratum defined by a categorical field of the points layer (e.g.\ncover type). Random selection within each stratum.\n- Stratified by Polygon JSON (Estr_Pol-AL): variable sample sizes per\nstratum defined by a field of the polygon layer (e.g. buffer ID,\nparcel ID). Random selection within each polygon.\n\nKey features:\n- Edge correction (pullback): moves points away from the polygon\nboundary so sampling plots remain entirely within the area.\n- Minimum inter-point distance enforced with spatial index O(n log n).\n- Corrected NNI (IVMC) computed natively in Python \u2014 no external\nProcessing calls. Correction factor based on real polygon area.\n- HTML report with quality metrics, proportionality validation per\ngroup, comparative ranking, and total runtime.\n- Result layers loaded as invisible by default.\n- Supports grids of 50,000+ points (Hilbert Order = 10).\n- Compatible with QGIS 3.28 LTR, 3.44 LTR and 4.0 (Qt5 / Qt6).\n\nOptional dependencies:\n- shapely: bundled with QGIS 3.44 LTR and 4.0. Earlier versions:\npip install shapely  (OSGeo4W Shell)\n- scikit-learn: required for K-Means Groups only.\npip install scikit-learn  (OSGeo4W Shell)\n\nRequirement: projected CRS in metres (e.g. UTM, CRTM05 EPSG:8908).\n\n\u2500\u2500 ESPA\u00d1OL \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nComplemento QGIS con siete m\u00e9todos de muestreo espacial de puntos sobre\nuna capa de puntos (marco muestral) y un pol\u00edgono de \u00e1rea de estudio.\n\nSH y GH usan la Curva de Hilbert para el ordenamiento y la selecci\u00f3n.\nAL selecciona aleatoriamente; el ordenamiento Hilbert se usa solo para el\ndiagn\u00f3stico. GFC ordena los puntos por filas NO\u2192SE (1..N) y los divide en\nk grupos iguales con selecci\u00f3n aleatoria dentro de cada grupo, sin\ndependencias externas. KM agrupa por proximidad geogr\u00e1fica 2D con\nK-Medias; la Curva de Hilbert no interviene. Estr_Pts-AL y Estr_Pol-AL\npermiten tama\u00f1os de muestra variables por estrato definidos v\u00eda JSON,\nusando un campo de la capa de puntos o de la capa de pol\u00edgonos como\nvariable de estratificaci\u00f3n, con selecci\u00f3n aleatoria dentro de cada uno.\n\nM\u00e9todos de muestreo:\n- Sistem\u00e1tico Hilbert (SH): selecci\u00f3n a intervalos regulares a lo\nlargo de la curva. Produce patrones dispersos (IVMC > 1,2).\n- Grupos Hilbert (GH): estratificaci\u00f3n 1D sobre el orden de Hilbert.\nk=0: n\u00famero de grupos autom\u00e1tico (k=m\u00edn(\u2308\u221an\u2309, \u230a\u221aN\u230b), m\u00edn. 2 grupos).\n- Aleatorio Simple (AL): selecci\u00f3n aleatoria sin reemplazo.\nEl ordenamiento Hilbert se usa solo para el diagn\u00f3stico del reporte.\n- Grupos Fila-Columna (GFC): numeraci\u00f3n secuencial 1..N de los puntos\nsiguiendo un recorrido de filas NO\u2192SE; divididos en k grupos iguales\ncon selecci\u00f3n aleatoria dentro de cada grupo. Sin dependencias\nexternas. Genera capa de l\u00edneas por fila (Salida: Orden NO\u2192SE).\n- Grupos K-Medias (KM): agrupamiento espacial 2D con K-Medias.\nSelecci\u00f3n basada en proximidad geogr\u00e1fica. Requiere scikit-learn.\n- Estratificado por Puntos JSON (Estr_Pts-AL): tama\u00f1os de muestra\nvariables por estrato definidos por un campo categ\u00f3rico de la capa\nde puntos (ej. tipo de cobertura). Selecci\u00f3n aleatoria en cada estrato.\n- Estratificado por Pol\u00edgono JSON (Estr_Pol-AL): tama\u00f1os de muestra\nvariables por estrato definidos por un campo de la capa de pol\u00edgonos\n(ej. ID de b\u00fafer, ID de parcela). Selecci\u00f3n aleatoria en cada pol\u00edgono.\n\nCaracter\u00edsticas principales:\n- Correcci\u00f3n de borde (retracci\u00f3n): aleja puntos de los l\u00edmites del\n\u00e1rea para que las parcelas queden \u00edntegramente dentro del pol\u00edgono.\n- Distancia m\u00ednima entre puntos con \u00edndice espacial O(n log n).\n- IVMC calculado directamente en Python, sin herramientas externas.\nFactor de correcci\u00f3n sobre \u00e1rea real del pol\u00edgono.\n- Reporte HTML con m\u00e9tricas de calidad, validaci\u00f3n de proporcionalidad\npor grupo, ranking comparativo y tiempo total de ejecuci\u00f3n.\n- Capas de resultados cargadas invisibles por defecto.\n- Soporta mallas de hasta 50 000+ puntos (Orden Hilbert = 10).\n- Compatible con QGIS 3.28 LTR, 3.44 LTR y 4.0 (Qt5 / Qt6).\n\nDependencias opcionales:\n- shapely: incluido en QGIS 3.44 LTR y 4.0. Versiones anteriores:\npip install shapely  (OSGeo4W Shell)\n- scikit-learn: requerido \u00fanicamente para Grupos K-Medias.\npip install scikit-learn  (OSGeo4W Shell)\n\nRequisito: SRC proyectado en metros (ej: CRTM05 EPSG:8908, UTM).", "homepage": "https://github.com/jfallas56-CR/Muestreo_Espacial_Puntos#readme", "repository": "https://github.com/jfallas56-CR/Muestreo_Espacial_Puntos", "tracker": "https://github.com/jfallas56-CR/Muestreo_Espacial_Puntos/issues", "author": "Jorge Fallas", "tags": ["points", "spatial", "json", "forestry", "k-means", "sampling", "kmeans", "inventory", "random", "muestreo", "puntos", "gfc", "estr_pol-al", "nearest neighbor", "inventario", "estratificado", "estr_pts-al", "ivmc", "stratified", "row-column", "hilbert", "fila-columna", "nni", "forestal", "aleatorio", "no-se"], "downloads": 104, "latest_version": "1.0.4", "versions": [{"version": "1.0.4", "experimental": false, "qgis_min": "3.28.0", "qgis_max": "4.99.0", "downloads": 104, "uploaded_by": "jfallas", "upload_datetime": "2026-06-15T00:54:30.330488"}]}