{"name": "basinkit", "package_name": "basinkit_qgis", "version": "0.7.0", "experimental": false, "qgis_min": "3.28.0", "qgis_max": "4.99.0", "downloads": 189, "uploaded_by": "Praddy-GByte", "upload_datetime": "2026-09-23T14:58:42.063433", "changelog": "0.7.0\n- New algorithm: Data quality. A grade for every layer, not only for the\nelevation model, each measured against something produced independently\nof it: land cover as the agreement between ESA WorldCover and the ESRI\nannual series, rainfall as CHIRPS against TerraClimate, soil as the width\nof SoilGrids' own published interval, surface water as the permanent to\nseasonal split, delineation as the network check and the accuracy regime\nfor a basin of this size, and elevation as the suitability grade split by\nterrain class. Suggested by Prof. Dr. B. Mishra.\n- Soil and surface water are reported without a grade, because no published\nthreshold exists for either; the output says so rather than inventing a\ncut-off. Every threshold that does exist is printed beside the\nmeasurement it judged.\n- The ESRI land cover reader now writes an integer nodata value, so a\ncomparison against another class raster no longer counts nodata as a\nclass.\n0.6.3\n- On QGIS builds older than 3.28 the plugin now says so. basinkit needs\nPython 3.10, which those builds do not ship, so pip cannot install it\nthere at all and the old message ('no module named basinkit') sent\npeople looking for an installation fault that was not there.\n- The install instructions now lead with the QGIS Python Console route,\nwhich installs into the interpreter QGIS imports from on every\nplatform, and note that '!pip install' works only in Jupyter.\n0.6.2\n- Found by running every analysis on the Ganga above Farakka (934,516\nsquare kilometres) and on the Potomac, then checking the results\nagainst GRDC, 190 Nepal gauges, IMD rainfall and USGS records.\n- Sentinel-2, Landsat, Sentinel-1 and land cover change failed on very\nlarge basins: the basin outline was too big for the catalogue search.\nThe search now sends a simplified outline that still contains the\nbasin; results are clipped to the full outline as before.\n- The 3D page ran out of memory on large basins and showed a black screen\nfor basins wider than 900 km. Both fixed; the page also declares its\ntext encoding so symbols render correctly.\n- The river profile reads a capped elevation model; on a 30,000 km2\nbasin it used to need more than 6 GB of memory.\n- The 3D page sets its colour balance from the scene, so forested basins\nno longer render nearly black.\n- The report's first page names the elevation product it used.\n- Needs basinkit 0.6.2.\n0.6.1\n- 'Basin statistics' reported mean slope over the whole bounding box, with\nthe ground outside the basin filled in as a flat plain. On a catchment\nfilling 43 percent of its box that read 7 degrees where the basin's own\nslopes average 16. It now measures inside the basin only.\n- A failed delineation now says why, instead of reporting an\nAttributeError about a missing helper.\n- The check against the river network measures distance on the ground, so\nit no longer misses rivers inside its search radius at high latitude.\n- Needs basinkit 0.6.1, which also requires geopandas 1.0: on installs with\nan older geopandas the first delineation used to fail.\n0.6.0\n- Four new Processing algorithms. 'Terrain surfaces' computes slope,\naspect, hillshade, curvature, topographic position, ruggedness, local\nrelief, slope-position classes, flow accumulation, the channel network,\nthe wetness index and height above nearest drainage, all from one\nelevation download rather than one per surface. 'Sub-catchments and their\nrouting' returns the pieces a basin is assembled from, each carrying\nNEXT_DOWN, which is the routing graph a distributed model needs without\ninferring anything from geometry. 'Elevation data suitability' grades\nwhether the elevation model can carry the terrain analysis at all.\n'Basin report' writes eight A4 pages ready for a thesis or a manuscript.\n- The elevation data suitability grade is the one worth reading first.\nFive measurements against stated thresholds -- how much surface\ndepression filling invented, how many slopes fall below the angle at\nwhich a gradient is only the model's own error, relief against that\nerror, the largest level surface, and cells with no elevation -- combined\ninto HIGH, MODERATE or LIMITED with a per-cell map of which ground the\nanswer rests on. Tested on 133 gauges against an independently produced\nelevation model: where it says HIGH the two models agree about the slope\nfield at r = 0.94, where it says LIMITED at r = 0.76.\n- A twelve-metre delineation backend. 'tdx' walks a reach-level graph built\nfrom TanDEM-X, one catchment per stream reach instead of one per 130\nsquare kilometre unit. On 360 gauges between 100 and 500 square\nkilometres it cut the median area error from 32.5 percent to 10.5 percent\nand was the better answer on two thirds of them. It is never chosen\nautomatically because TDX-Hydro is CC BY-SA, and ShareAlike travels into\nanything derived from it and redistributed.\n- Cell size is taken per row from that row's latitude everywhere in the\nterrain code. Dividing by one assumed width reports a basin at 60 degrees\nnorth as about twice as steep as it is.\n\n0.5.0\n- Compatibility across the full supported QGIS range. The provider now\nresolves the Processing source-type enum by asking the API for it, so it\nloads identically on QGIS 3.28 through 4.x. QGIS 3.34, the current\nlong-term release, is covered by a continuous integration job that\ninstalls QGIS and loads every algorithm.\n- Accuracy is now reported by catchment size, from blind validation against\n2,550 gauges in 99 countries whose catchment areas are published by the\nagencies that operate them: 0.3 percent median error above\n100,000 square kilometres, 1.3 percent from 10,000 to 100,000, 1.7\npercent from 2,000 to 10,000. Below about 2,000 square kilometres the\n'dem' backend is the better instrument, and the plugin now says so at the\nmoment it matters.\n- Every answer is checked against the river network. When the basin exceeds\ntwice the area draining to the largest river within two kilometres of the\noutlet, the plugin reports it: 85 percent of the outlets it flags need\nattention, and it stays quiet on 97 percent of the ones that do not.\nPrecision runs from 75 percent in Europe to 93 percent in Africa.\n- The 'auto' backend refines on the elevation model when the river network\nand a 30 metre routing of the same point agree on a smaller catchment.\nAcross 300 gauges drawn after the method was fixed and used nowhere else\nin its design, it improved 19 results, left 279 unchanged and reduced\nnone. Where it acts, the median error falls from 1,731 percent to 4.3\npercent, at a median cost of 1.6 seconds.\n- Refinement acts only when the river it is judging by lies within a\nkilometre of the outlet. Beyond that distance the point is not on that\nriver, so the two sources stop being independent. Every refinement that\nimproved a result had its river within 0.91 kilometres.\n- The plugin now names what kind of place the outlet is in. An endorheic\nsystem, a coastal strip draining straight to the ocean, and an outlet\nwith nothing draining into it are each reported, the last being what a\nlake surface and a sub-grid headwater have in common.\n- Messages are matched to the cause and say what to do next: a coordinate\noutside the network's coverage, one beyond the snap distance, and one on\na hillslope rather than in a channel each get their own guidance.\n- The consistency line now compares the result against the river network\nrather than against the source dataset's own upstream-area field, which\nconfirms the traversal rather than the choice of outlet.\n- The river-network check is a checkbox, on by default, and is the only\nthing that downloads the regional rivers file.\n- Against pysheds and WhiteboxTools on identical 30 metre rasters across 59\ncatchments under 2,000 square kilometres, the 'dem' backend returned a\nbasin for every one, matched the agency figure within 20 percent on 68\npercent of them against 56 and 51, and had the lowest median error.\n- Requires basinkit 0.5 or newer.\n\n0.4.0\n- New algorithm: Basin morphometry. The full Horton-Strahler-Schumm set\nfrom one run, with the per-order table showing Strahler streams and\ndataset reaches side by side, and the counts tested against what Strahler\nordering allows. A bifurcation ratio below 2 and more than one stream of\nthe basin's highest order are both impossible, and are now reported\ninstead of being handed back as numbers to interpret. Until now\nmorphometry was in the Python package but not reachable from QGIS.\n- The plugin description leads with the data package rather than with\n\"delineate\". QGIS already has\nseveral delineation plugins, and the old wording put this one in that\nqueue while morphometry, which is the part with no equivalent elsewhere,\nwent unmentioned.\n- Requires basinkit 0.4 or newer.\n\n0.3.3\n- Pairs with basinkit 0.3.3, which corrects channel_gradient_m_per_km. Up to\n0.3.0 it divided total basin relief by main channel length, which reports\na fall the river never makes, because the highest point in a basin is a\nridge top and not the head of the main stem. It is now read from the bed:\nthe DEM is sampled along the main channel and the drop between its ends is\ndivided by the channel length. On the Koshi that is 9.6 m/km, not 15.1.\nThe Basin statistics algorithm never reported this figure, so nothing in\nthe plugin's own output changes; it matters if you called morphometry()\nfrom the Python Console or a script, where the old value should be\nrecomputed.\n- Basin.morphometry() now checks its own stream counts. Two of the checks\nare impossibilities rather than oddities: an order-u+1 stream is formed\nwhere two order-u streams meet, so N(u) >= 2*N(u+1) and the bifurcation\nratio can never fall below 2, and a basin with one outlet has exactly one\nstream of its highest order. Counts that break either are reported rather\nthan returned as numbers.\n- The plugin description now says plainly what this does that a\ndelineate-from-a-click plugin offers, rather than leaving a reader to\nwork it out.\n\n0.3.2\n- Declares its pip dependency in the external_deps metadata field, so it\nshows in the External dependencies box on the plugin page.\n\n0.3.1\n- Fixed 16 Qt6 compatibility issues found by the plugin repository's own\nchecker: every Qt and QGIS enum is now spelled with its full scope\n(QgsWkbTypes.Type.Polygon rather than QgsWkbTypes.Polygon, and so on).\nThe scoped spelling works on both PyQt5 and PyQt6, so QGIS 3.28 onwards\nand QGIS 4 are both covered by one code path, with no version guard.\n- A test now scans the plugin for unscoped enums, so they cannot come back.\n\n0.3.0\nThe plugin version now tracks the basinkit package version, so it is clear\nwhich plugin goes with which package. No algorithm has changed since 0.1.0.\n- Fixed: on macOS the \"package missing\" notice printed the QGIS application\nbinary instead of an interpreter, so the suggested pip command opened a\nsecond QGIS window and installed nothing. A path is now offered only once\nit is verified to be a python executable, and there is a Python Console\nsnippet that needs no path at all\n- New icon: the b is drawn as a river basin with a dendritic stream network\ndraining to a single outlet\n- Pairs with basinkit 0.3.0, which adds Basin.morphometry() -- the classical\nHorton-Strahler-Schumm parameters -- to the Python API\n0.1.0\nFirst release.\n- Delineate a basin from a canvas click, globally, via HydroBASINS graph traversal or DEM flow routing\n- Fetch DEM, land cover, soil, surface water, rivers and lakes clipped to the basin\n- Basin statistics: area, relief, mean slope, land cover fractions, bounding-box efficiency\n- Every algorithm runs in the Processing framework, so batch mode and the Model Builder work", "external_deps": null, "download_url": "https://plugins.qgis.org/plugins/basinkit_qgis/version/0.7.0/download/"}