{"id":28780578,"url":"https://github.com/nlesc/pointcloud-benchmark","last_synced_at":"2025-09-04T13:45:43.400Z","repository":{"id":27575403,"uuid":"31057903","full_name":"NLeSC/pointcloud-benchmark","owner":"NLeSC","description":null,"archived":false,"fork":false,"pushed_at":"2017-11-16T13:12:16.000Z","size":1033,"stargazers_count":9,"open_issues_count":2,"forks_count":5,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-06-17T18:07:44.268Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NLeSC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-02-20T09:19:03.000Z","updated_at":"2023-08-20T20:16:48.000Z","dependencies_parsed_at":"2022-09-02T18:10:38.797Z","dependency_job_id":null,"html_url":"https://github.com/NLeSC/pointcloud-benchmark","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/NLeSC/pointcloud-benchmark","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NLeSC%2Fpointcloud-benchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NLeSC%2Fpointcloud-benchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NLeSC%2Fpointcloud-benchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NLeSC%2Fpointcloud-benchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NLeSC","download_url":"https://codeload.github.com/NLeSC/pointcloud-benchmark/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NLeSC%2Fpointcloud-benchmark/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273619355,"owners_count":25138237,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-04T02:00:08.968Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-17T18:07:23.373Z","updated_at":"2025-09-04T13:45:43.389Z","avatar_url":"https://github.com/NLeSC.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"pointcloud-benchmark\n====================\n\nThis project contains the *pointcloud* Python package (in python/pointcloud) \nwhich is used to deal with point clouds \nin various Point Cloud Data Management Systems (PCDMS's). Concretely the \ndifferent PCDMS's are:\n - Combination of LAStools tools (lassort, lasindex, lasmerge and lasclip)\n - MonetDB: Flat table model\n - PostgreSQL: Blocks model (PostgreSQL point cloud extension by P.Ramsey) and \n also a flat table model\n - Oracle: Blocks model and also a flat table model\n\nAlternative storage models based on Morton space filling curves are also offered\nas alternatives in some cases.\n\nThe main goal of the *pointcloud* Python package is to be used for the execution of benchmarks \nfor the several PCDMS's. However it can be used in general:\n - To load/prepare the point cloud data through the loader tool\n (for example: import point cloud data from LAS files to PostgreSQL)\n - To query/retrieve portions of the loaded data through the querier tool\n (for example: get the points overlapping a rectangular region) \n \n \nInstallation\n------------\n\nIn the `install` folder you can find details on the requirements of the\n*pointcloud* Python package as well as installation instructions for the several PCDMS's. \n\n\nArchitecture\n------------\n\nThe architecture of the *pointcloud* Python package is based on implementing, for each \nPCDMS, at least a Loader class (that must inherit from AbstractLoader and \nimplement the missing methods) and a Querier class (that must inherit from \nAbstractQuerier and implement the missing methods)\n\nThe Loader classes are very generic so they can be used for the benchmark executions\nbut also for other applications to load point clouds in the PCDMS. \nThe Querier classes are tailored to execute the queries specified in \nthe benchmarks (see `queries` folder) but some of them implement parallel methods that may be interesting in other cases. \n\n\nContent\n-------\n- The `install` folder contains the installation instructions.\n- The `python/pointcloud` folder contains the *pointcloud* Python package, i.e. \nthe Loader and Querier classes for\nthe different PCDMS as well as the loader tool (`run/load_pc.py`) and the querier tool\n(`run/query_pc.py`). \n- The `ini` folder contains the initialization files that are required to use\nthe loader and querier tools.\n- `lasnlesc` contains the C binary loaders for PostgreSQL and MonetDB \n- `sfcnlesc` contains C and C++ version of the Morton-based queries used in the \nalternative storage structures.\n- The `queries` folder contains XML files where the benchmark queries are defined\n- the `doc` folder contains a usage guide for the various PCDMS. It contains how to use them independently of the *pointcloud* Python package and also with it.\n\n\nExecution\n---------\n\nIn order to use the loader tool of the *pointcloud* Python package execute the following command:\n\n`python/pointcloud/run/load_pc.py -i [init file]` \n\n\nIn order to use the querier tool of the *pointcloud* Python package execute the following command:\n\n`python/pointcloud/run/query_pc.py -i [init file]`\n\nwhere `[init file]` is the initialization file for the related PCDMS that you are \nusing (use the files in `ini` folder as templates)\n\nAdding a new PCDMS\n------------------\n\nTo add a new PCDMS into the *pointcloud* Python package it is required:\n - To add a Loader class. The new class must inherit from AbstractLoader and implement the methods \n initialize, process, close, size, getNumPoints.\n - To add a Querier class. The new class must inherit from AbstractQuerier and implement the methods\n initialize, query, close.\n - To add a ini file which must contain at least the following sections and options:\n \n ```\n [General]\nLoader: pointcloud.newpcdms.Loader\nQuerier: pointcloud.newpcdms.Querier\nExecutionPath: newpcdms\nLogLevel: DEBUG\nUsageMonitor: True\nIOMonitor:\n\n[Load]\nFolder: \n\n[Query]\nFile: \nNumberUsers: 1\nNumberIterations: 2\n```\n \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnlesc%2Fpointcloud-benchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnlesc%2Fpointcloud-benchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnlesc%2Fpointcloud-benchmark/lists"}