{
  "_id": "6a1ef051b401979e73412f9f",
  "Package": "flowcluster",
  "Title": "Cluster Origin-Destination Flow Data",
  "Version": "0.2.1.9000",
  "Authors@R": "c(\nperson(\"Hussein\", \"Mahfouz\", email = \"husseinmahfouz93@gmail.com\", role = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0000-0003-1706-7802\")),\nperson(\"Robin\", \"Lovelace\", email = \"rob00x@gmail.com\", role = \"aut\",\ncomment = c(ORCID = \"0000-0001-5679-6536\"))\n)",
  "Description": "Provides functionality for clustering origin-destination\n(OD) pairs, representing desire lines (or flows). This includes\ncreating distance matrices between OD pairs and passing\ndistance matrices to a clustering algorithm. See the academic\npaper Tao and Thill (2016) <doi:10.1111/gean.12100> for more\ndetails on spatial clustering of flows. See the paper on\ndelineating demand-responsive operating areas by Mahfouz et al.\n(2025) <doi:10.1016/j.urbmob.2025.100135> for an example of how\nthis package can be used to cluster flows for applied\ntransportation research.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.2",
  "URL": "https://hussein-mahfouz.github.io/flowcluster/,\nhttps://github.com/hussein-mahfouz/flowcluster",
  "LazyData": "true",
  "Config/testthat/edition": "3",
  "Config/pak/sysreqs": "libabsl-dev cmake libgdal-dev gdal-bin libgeos-dev\nlibicu-dev libssl-dev libproj-dev libsqlite3-dev\nlibudunits2-dev",
  "Repository": "https://hussein-mahfouz.r-universe.dev",
  "Date/Publication": "2025-08-22 08:41:39 UTC",
  "RemoteUrl": "https://github.com/hussein-mahfouz/flowcluster",
  "RemoteRef": "HEAD",
  "RemoteSha": "a7467fff310927e2c71c9b4c7b133f730c469c56",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-05-19 08:28:00 UTC",
    "User": "root"
  },
  "Author": "Hussein Mahfouz [aut, cre] (ORCID:\n<https://orcid.org/0000-0003-1706-7802>),\nRobin Lovelace [aut] (ORCID: <https://orcid.org/0000-0001-5679-6536>)",
  "Maintainer": "Hussein Mahfouz <husseinmahfouz93@gmail.com>",
  "MD5sum": "e7fd9bc4708f8c22f225fc308cb094d9",
  "_user": "hussein-mahfouz",
  "_type": "src",
  "_file": "flowcluster_0.2.1.9000.tar.gz",
  "_fileid": "ef31f54d98bbb28eb9fc3a34c91d240a55e3a0803bb5e11e07e05d2cddaa01ed",
  "_filesize": 2106852,
  "_sha256": "ef31f54d98bbb28eb9fc3a34c91d240a55e3a0803bb5e11e07e05d2cddaa01ed",
  "_created": "2026-05-19T08:28:00.000Z",
  "_published": "2026-06-02T15:01:37.795Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 79101721124,
      "time": 176,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7078556437"
    },
    {
      "job": 79101721459,
      "time": 153,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7078548598"
    },
    {
      "job": 79101721529,
      "time": 177,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "ERROR",
      "artifact": "7078558414"
    },
    {
      "job": 79101720965,
      "time": 173,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7078552277"
    },
    {
      "job": 79101719944,
      "time": 219,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7078494767"
    },
    {
      "job": 79101720760,
      "time": 152,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7361477546"
    },
    {
      "job": 79101721229,
      "time": 101,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7078530652"
    },
    {
      "job": 79101722116,
      "time": 104,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7078531429"
    },
    {
      "job": 79101721625,
      "time": 92,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7078527637"
    }
  ],
  "_buildurl": "https://github.com/r-universe/hussein-mahfouz/actions/runs/26085408284",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/hussein-mahfouz/flowcluster",
  "_commit": {
    "id": "a7467fff310927e2c71c9b4c7b133f730c469c56",
    "author": "Hussein Mahfouz <45176416+Hussein-Mahfouz@users.noreply.github.com>",
    "committer": "Hussein Mahfouz <45176416+Hussein-Mahfouz@users.noreply.github.com>",
    "message": "Increment version number to 0.2.1.9000\n",
    "time": 1755852099
  },
  "_maintainer": {
    "name": "Hussein Mahfouz",
    "email": "husseinmahfouz93@gmail.com",
    "login": "hussein-mahfouz",
    "linkedin": "in/hussein-mahfouz",
    "description": "Data Scientist at Arup City Modelling Lab",
    "uuid": 45176416,
    "orcid": "0000-0003-1706-7802"
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "sf",
      "role": "Imports"
    },
    {
      "package": "dbscan",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "glue",
      "role": "Imports"
    },
    {
      "package": "lwgeom",
      "role": "Imports"
    },
    {
      "package": "purrr",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "units",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "role": "Imports"
    },
    {
      "package": "tidyselect",
      "role": "Imports"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "tmap",
      "role": "Suggests"
    }
  ],
  "_owner": "hussein-mahfouz",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-21",
      "n": 2
    },
    {
      "week": "2025-24",
      "n": 2
    },
    {
      "week": "2025-26",
      "n": 7
    },
    {
      "week": "2025-27",
      "n": 3
    },
    {
      "week": "2025-28",
      "n": 3
    },
    {
      "week": "2025-29",
      "n": 1
    },
    {
      "week": "2025-30",
      "n": 1
    },
    {
      "week": "2025-34",
      "n": 3
    }
  ],
  "_tags": [
    {
      "name": "v0.1.0",
      "date": "2025-07-01"
    },
    {
      "name": "v0.2.1",
      "date": "2025-08-21"
    }
  ],
  "_stars": 5,
  "_contributors": [
    {
      "user": "hussein-mahfouz",
      "count": 85,
      "uuid": 45176416
    },
    {
      "user": "robinlovelace",
      "count": 23,
      "uuid": 1825120
    }
  ],
  "_userbio": {
    "uuid": 45176416,
    "type": "user",
    "name": "Hussein Mahfouz",
    "description": "Data Scientist at Arup City Modelling Lab"
  },
  "_downloads": {
    "count": 182,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/flowcluster"
  },
  "_devurl": "https://github.com/hussein-mahfouz/flowcluster",
  "_pkgdown": "https://hussein-mahfouz.github.io/flowcluster/",
  "_searchresults": 3,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/flowcluster.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/hussein-mahfouz/flowcluster",
  "_realowner": "hussein-mahfouz",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2025-07-05"
    },
    {
      "version": "0.2.1",
      "date": "2025-08-21"
    }
  ],
  "_exports": [
    "add_flow_length",
    "add_xyuv",
    "aggregate_clustered_flows",
    "cluster_flows_dbscan",
    "dbscan_sensitivity",
    "distance_matrix",
    "filter_by_length",
    "flow_distance",
    "weight_vector"
  ],
  "_datasets": [
    {
      "name": "flows_leeds",
      "title": "Example flow data for Leeds. It is from the 2021 census, and it contains all Origin - Destination flows at the MSOA level. For more info on census flow data, see the ONS documentation See data-raw/flows_leeds.R for how this data was created.",
      "object": "flows_leeds",
      "class": [
        "sf",
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "origin",
        "destination",
        "count",
        "geometry"
      ],
      "rows": 10296,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "add_flow_length",
      "title": "Add Length Column to Flow Data",
      "topics": [
        "add_flow_length"
      ]
    },
    {
      "page": "add_xyuv",
      "title": "Add Start/End Coordinates & Flow IDs",
      "topics": [
        "add_xyuv"
      ]
    },
    {
      "page": "aggregate_clustered_flows",
      "title": "Aggregate clustered OD flows into representative lines",
      "topics": [
        "aggregate_clustered_flows"
      ]
    },
    {
      "page": "cluster_flows_dbscan",
      "title": "Cluster Flows using DBSCAN",
      "topics": [
        "cluster_flows_dbscan"
      ]
    },
    {
      "page": "dbscan_sensitivity",
      "title": "Sensitivity analysis of DBSCAN parameters for flow clustering.",
      "topics": [
        "dbscan_sensitivity"
      ]
    },
    {
      "page": "distance_matrix",
      "title": "Convert Long-Format Distance Tibble to Matrix",
      "topics": [
        "distance_matrix"
      ]
    },
    {
      "page": "filter_by_length",
      "title": "Filter Flows by Length",
      "topics": [
        "filter_by_length"
      ]
    },
    {
      "page": "flow_distance",
      "title": "Calculate Flow Distance and Dissimilarity",
      "topics": [
        "flow_distance"
      ]
    },
    {
      "page": "flows_leeds",
      "title": "Example flow data for Leeds. It is from the 2021 census, and it contains all Origin - Destination flows at the MSOA level. For more info on census flow data, see the ONS documentation See data-raw/flows_leeds.R for how this data was created.",
      "topics": [
        "flows_leeds"
      ]
    },
    {
      "page": "weight_vector",
      "title": "Generate Weight Vector from Flows",
      "topics": [
        "weight_vector"
      ]
    }
  ],
  "_readme": "https://github.com/hussein-mahfouz/flowcluster/raw/HEAD/README.md",
  "_rundeps": [
    "class",
    "classInt",
    "cli",
    "cpp11",
    "DBI",
    "dbscan",
    "dplyr",
    "e1071",
    "generics",
    "glue",
    "KernSmooth",
    "lifecycle",
    "lwgeom",
    "magrittr",
    "MASS",
    "pillar",
    "pkgconfig",
    "proxy",
    "purrr",
    "R6",
    "Rcpp",
    "rlang",
    "s2",
    "sf",
    "stringi",
    "stringr",
    "tibble",
    "tidyr",
    "tidyselect",
    "units",
    "utf8",
    "vctrs",
    "withr",
    "wk"
  ],
  "_score": 4.301029995663981,
  "_indexed": true,
  "_nocasepkg": "flowcluster",
  "_universes": [
    "hussein-mahfouz"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.2.1.9000",
      "date": "2026-05-19T08:30:55.000Z",
      "distro": "noble",
      "commit": "a7467fff310927e2c71c9b4c7b133f730c469c56",
      "fileid": "e98e679761deffe9aff7b75e4198fd43dc0cc85b5dc75e0d61fbc9956f232dbb",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/hussein-mahfouz/actions/runs/26085408284"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.2.1.9000",
      "date": "2026-05-19T08:30:34.000Z",
      "distro": "noble",
      "commit": "a7467fff310927e2c71c9b4c7b133f730c469c56",
      "fileid": "1e87549ce99b6bbe44e6740aefcc1614b460359b6294e07c7e3132dc885e03ca",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/hussein-mahfouz/actions/runs/26085408284"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.2.1.9000",
      "date": "2026-05-19T08:31:01.000Z",
      "commit": "a7467fff310927e2c71c9b4c7b133f730c469c56",
      "fileid": "605af4f9687f33e3ca5e7df5ab6a85e3c1cbf704700a219be7196d548f719a79",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/hussein-mahfouz/actions/runs/26085408284"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "0.2.1.9000",
      "date": "2026-05-19T08:30:44.000Z",
      "commit": "a7467fff310927e2c71c9b4c7b133f730c469c56",
      "fileid": "baa967cfb81563666802b04e141e07c778437e705d5385e77da0cd1ba5652b26",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/hussein-mahfouz/actions/runs/26085408284"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.2.1.9000",
      "date": "2026-05-19T08:29:34.000Z",
      "commit": "a7467fff310927e2c71c9b4c7b133f730c469c56",
      "fileid": "10ee3b6bc46c30c5ad0692912fff69759a56ce53b5bb0db4e83a36449caa51df",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/hussein-mahfouz/actions/runs/26085408284"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.2.1.9000",
      "date": "2026-05-19T08:29:39.000Z",
      "commit": "a7467fff310927e2c71c9b4c7b133f730c469c56",
      "fileid": "2ab7156ac670c50fac937467c49ff653d1c8930508352b8b1ff99b1110cbf211",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/hussein-mahfouz/actions/runs/26085408284"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "0.2.1.9000",
      "date": "2026-05-19T08:29:23.000Z",
      "commit": "a7467fff310927e2c71c9b4c7b133f730c469c56",
      "fileid": "047c7cc17f106dbced3dff1c612165a28b55c666938945eaff68872e84d4364d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/hussein-mahfouz/actions/runs/26085408284"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.2.1.9000",
      "date": "2026-06-02T15:00:00.000Z",
      "commit": "a7467fff310927e2c71c9b4c7b133f730c469c56",
      "fileid": "5edfe3e19c42c65de7d5a90448d3c4d8300e126c93a4f345ac8cfe1ea1562c0a",
      "status": "success",
      "buildurl": "https://github.com/r-universe/hussein-mahfouz/actions/runs/26085408284"
    }
  ]
}