{"id":26062234,"url":"https://github.com/dpmcmlxxvi/pixelscan","last_synced_at":"2025-08-30T15:05:41.464Z","repository":{"id":35874874,"uuid":"40160087","full_name":"dpmcmlxxvi/pixelscan","owner":"dpmcmlxxvi","description":"A Python library that provides functions to scan pixels on a grid in a variety of spatial patterns.","archived":false,"fork":false,"pushed_at":"2020-09-03T04:43:26.000Z","size":1087,"stargazers_count":26,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-11T11:51:51.552Z","etag":null,"topics":["pattern","pixel","python","spatial"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dpmcmlxxvi.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.TXT","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-08-04T02:57:43.000Z","updated_at":"2022-10-23T21:10:21.000Z","dependencies_parsed_at":"2022-08-29T10:41:53.625Z","dependency_job_id":null,"html_url":"https://github.com/dpmcmlxxvi/pixelscan","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/dpmcmlxxvi/pixelscan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpmcmlxxvi%2Fpixelscan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpmcmlxxvi%2Fpixelscan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpmcmlxxvi%2Fpixelscan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpmcmlxxvi%2Fpixelscan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dpmcmlxxvi","download_url":"https://codeload.github.com/dpmcmlxxvi/pixelscan/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpmcmlxxvi%2Fpixelscan/sbom","scorecard":{"id":354536,"data":{"date":"2025-08-11","repo":{"name":"github.com/dpmcmlxxvi/pixelscan","commit":"44da08f773dc939f6155585f3f0cae9436f1e190"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.TXT:0","Info: FSF or OSI recognized license: MIT License: LICENSE.TXT:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-18T09:12:29.936Z","repository_id":35874874,"created_at":"2025-08-18T09:12:29.936Z","updated_at":"2025-08-18T09:12:29.936Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272864643,"owners_count":25006040,"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-08-30T02:00:09.474Z","response_time":77,"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":["pattern","pixel","python","spatial"],"created_at":"2025-03-08T15:55:08.945Z","updated_at":"2025-08-30T15:05:41.443Z","avatar_url":"https://github.com/dpmcmlxxvi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"=========\npixelscan\n=========\n\n.. image:: https://travis-ci.org/dpmcmlxxvi/pixelscan.svg?branch=master\n    :target: https://travis-ci.org/dpmcmlxxvi/pixelscan\n    :alt: Code Status\n\n.. image:: https://coveralls.io/repos/dpmcmlxxvi/pixelscan/badge.svg?branch=master\u0026service=github\n    :target: https://coveralls.io/github/dpmcmlxxvi/pixelscan?branch=master\n    :alt: Code Coverage\n\n.. image:: https://badge.fury.io/py/pixelscan.svg\n    :target: https://pypi.python.org/pypi/pixelscan\n    :alt: Code Package\n\nThe **pixelscan** library provides functions to scan pixels on a grid in a\nvariety of spatial patterns. The library consists of scan generators and\ncoordinate transformations. Scan generators are Python generators that return\npixel coordinates in a particular spatial pattern. Coordinate transformations\nare iterators that apply spatial transformations to the coordinates created by\nthe scan generators. Transformation can be chained to yield very generic\ntransformations.\n\n***************\nDocumentation\n***************\n\nSee the library API documentation `here \u003chttp://dpmcmlxxvi.github.io/pixelscan\u003e`_.\n\n***************\nUsage\n***************\n\nThe typical calling syntax is\n\n.. code-block:: python\n\n   for x, y in transformation(generator(...), ...):\n      foo(x,y)\n\nFor example, the following scans pixels in a clockwise circular pattern\nfrom the origin up to a radius of one\n\n.. code-block:: python\n\n   for x, y in snap(circlescan(0, 0, 0, 1)):\n      print(x, y)\n\nand will generate the following points \n\n.. code-block:: python\n\n   (0,0), (0,1), (1,1), (1,0), (1,-1), (0,-1), (-1,-1), (-1,0), (-1,1)\n\nTo skip every other pixel a skip transformation can be applied\n\n.. code-block:: python\n\n   for x, y in snap(skip(circlescan(0, 0, 0, 1), step=2)):\n      print(x, y)\n\nwhich will generate the following points\n\n.. code-block:: python\n\n   (0,0), (1,1), (1,-1), (-1,-1), (-1,1)\n\n***************\nScan Generators\n***************\n\nThe following are the currently available generators\n\n+------------------------------------+-----------------------------------------------------------+\n|   Name                             | Description                                               |\n+====================================+===========================================================+\n|circlescan                          |Generates pixels in a clockwise circular pattern           |\n+------------------------------------+-----------------------------------------------------------+\n| .. image:: examples/circlescan.png |.. code-block:: python                                     |\n|                                    |                                                           |\n|                                    |   x0, y0, r1, r2 = 0, 0, 0, 2                             |\n|                                    |   for x, y in snap(circlescan(x0, y0, r1, r2)):           |\n|                                    |       print(x, y)                                         |\n|                                    |                                                           |\n|                                    |where                                                      |\n|                                    |                                                           |\n|                                    |.. code-block:: rest                                       |\n|                                    |                                                           |\n|                                    |   x0 = Circle x center                                    |\n|                                    |   y0 = Circle y center                                    |\n|                                    |   r1 = Initial radius                                     |\n|                                    |   r2 = Final radius                                       |\n|                                    |                                                           |\n|                                    |produces the following points:                             |\n|                                    |                                                           |\n|                                    |.. code-block:: python                                     |\n|                                    |                                                           |\n|                                    |   ( 0, 0) ( 0, 1) ( 1, 1) ( 1, 0) ( 1,-1) ( 0,-1)         |\n|                                    |   (-1,-1) (-1, 0) (-1, 1) ( 0, 2) ( 1, 2) ( 2, 1)         |\n|                                    |   ( 2, 0) ( 2,-1) ( 1,-2) ( 0,-2) (-1,-2) (-2,-1)         |\n|                                    |   (-2, 0) (-2, 1) (-1, 2)                                 |\n+------------------------------------+-----------------------------------------------------------+\n|gridscan                            |Generates pixels in rectangular grid pattern               |\n+------------------------------------+-----------------------------------------------------------+\n| .. image:: examples/gridscan.png   |.. code-block:: python                                     |\n|                                    |                                                           |\n|                                    |   xi, yi, xf, yf = 0, 0, 2, 2                             |\n|                                    |   for x, y in gridscan(xi, yi, xf, yf, stepx=1, stepy=1): |\n|                                    |       print(x, y)                                         |\n|                                    |                                                           |\n|                                    |where                                                      |\n|                                    |                                                           |\n|                                    |.. code-block:: rest                                       |\n|                                    |                                                           |\n|                                    |   xi    = Initial x-coordinate                            |\n|                                    |   yi    = Initial y-coordinate                            |\n|                                    |   xf    = Final x-coordinate                              |\n|                                    |   yf    = Final y-coordinate                              |\n|                                    |   stepx = Step size in x-coordinate                       |\n|                                    |   stepy = Step size in y-coordinate                       |\n|                                    |                                                           |\n|                                    |produces the following points:                             |\n|                                    |                                                           |\n|                                    |.. code-block:: python                                     |\n|                                    |                                                           |\n|                                    |   (0,0) (1,0) (2,0) (0,1) (1,1) (2,1) (0,2) (1,2) (2,2)   |\n+------------------------------------+-----------------------------------------------------------+\n|hilbertscan                         |Generates pixels in a Hilbert curve pattern                |\n+------------------------------------+-----------------------------------------------------------+\n| .. image:: examples/hilbertscan.png|.. code-block:: python                                     |\n|                                    |                                                           |\n|                                    |   size, distance = 4, 16                                  |\n|                                    |   for x, y in hilbertscan(size, distance):                |\n|                                    |       print(x, y)                                         |\n|                                    |                                                           |\n|                                    |where                                                      |\n|                                    |                                                           |\n|                                    |.. code-block:: rest                                       |\n|                                    |                                                           |\n|                                    |   size     = Size of enclosing square                     |\n|                                    |   distance = Distance along curve                         |\n|                                    |                                                           |\n|                                    |produces the following points:                             |\n|                                    |                                                           |\n|                                    |.. code-block:: python                                     |\n|                                    |                                                           |\n|                                    |   (0,0), (0,1), (1,1), (1,0), (2,0), (3,0), (3,1), (2,1)  |\n|                                    |   (2,2), (3,2), (3,3), (2,3), (1,3), (1,2), (0,2), (0,3)  |\n+------------------------------------+-----------------------------------------------------------+\n|ringscan - chebyshev                |Generates pixels in a ring pattern (squares)               |\n+------------------------------------+-----------------------------------------------------------+\n| .. image:: examples/chebyshev.png  |.. code-block:: python                                     |\n|                                    |                                                           |\n|                                    |   x0, y0, r1, r2 = 0, 0, 0, 2                             |\n|                                    |   for x, y in ringscan(x0, y0, r1, r2, metric=chebyshev): |\n|                                    |       print(x, y)                                         |\n|                                    |                                                           |\n|                                    |where                                                      |\n|                                    |                                                           |\n|                                    |.. code-block:: rest                                       |\n|                                    |                                                           |\n|                                    |   x0     = Circle x center                                |\n|                                    |   y0     = Circle y center                                |\n|                                    |   r1     = Initial radius                                 |\n|                                    |   r2     = Final radius                                   |\n|                                    |   r2     = Final radius                                   |\n|                                    |   metric = Distance metric                                |\n|                                    |                                                           |\n|                                    |produces the following points:                             |\n|                                    |                                                           |\n|                                    |.. code-block:: python                                     |\n|                                    |                                                           |\n|                                    |   ( 0, 0) ( 0, 1) ( 1, 1) ( 1, 0) ( 1,-1) ( 0,-1)         |\n|                                    |   (-1,-1) (-1, 0) (-1, 1) ( 0, 2) ( 1, 2) ( 2, 2)         |\n|                                    |   ( 2, 1) ( 2, 0) ( 2,-1) ( 2,-2) ( 1,-2) ( 0,-2)         |\n|                                    |   (-1,-2) (-2,-2) (-2,-1) (-2, 0) (-2, 1) (-2,2) (-1,2)   |\n+------------------------------------+-----------------------------------------------------------+\n|ringscan - manhattan                |Generates pixels in a ring pattern (diamonds)              |\n+------------------------------------+-----------------------------------------------------------+\n| .. image:: examples/manhattan.png  |.. code-block:: python                                     |\n|                                    |                                                           |\n|                                    |   x0, y0, r1, r2 = 0, 0, 0, 2                             |\n|                                    |   for x, y in ringscan(x0, y0, r1, r2, metric=manhattan): |\n|                                    |       print(x, y)                                         |\n|                                    |                                                           |\n|                                    |where                                                      |\n|                                    |                                                           |\n|                                    |.. code-block:: rest                                       |\n|                                    |                                                           |\n|                                    |   x0 = Circle x center                                    |\n|                                    |   y0 = Circle y center                                    |\n|                                    |   r1 = Initial radius                                     |\n|                                    |   r2 = Final radius                                       |\n|                                    |   metric = Distance metric                                |\n|                                    |                                                           |\n|                                    |produces the following points:                             |\n|                                    |                                                           |\n|                                    |.. code-block:: python                                     |\n|                                    |                                                           |\n|                                    |   ( 0, 0) ( 0, 1) ( 1, 0) ( 0,-1) (-1, 0) ( 0, 2)         |\n|                                    |   ( 1, 1) ( 2, 0) ( 1,-1) ( 0,-2) (-1,-1) (-2, 0) (-1, 1) |\n+------------------------------------+-----------------------------------------------------------+\n|snakescan                           |Generates pixels in a snake pattern along the x then y axis|\n+------------------------------------+-----------------------------------------------------------+\n| .. image:: examples/snakescan.png  |.. code-block:: python                                     |\n|                                    |                                                           |\n|                                    |   xi, yi, xf, yf = 0, 0, 2, 2                             |\n|                                    |   for x, y in snakescan(xi, yi, xf, yf):                  |\n|                                    |       print(x, y)                                         |\n|                                    |                                                           |\n|                                    |where                                                      |\n|                                    |                                                           |\n|                                    |.. code-block:: rest                                       |\n|                                    |                                                           |\n|                                    |   xi = Initial x-coordinate                               |\n|                                    |   yi = Initial y-coordinate                               |\n|                                    |   xf = Final x-coordinate                                 |\n|                                    |   yf = Final y-coordinate                                 |\n|                                    |                                                           |\n|                                    |produces the following points:                             |\n|                                    |                                                           |\n|                                    |.. code-block:: python                                     |\n|                                    |                                                           |\n|                                    |   ( 0, 0) ( 1, 0) ( 2, 0) ( 2, 1) ( 1, 1) ( 0, 1)         |\n|                                    |   ( 0, 2) ( 1, 2) ( 2, 2)                                 |\n+------------------------------------+-----------------------------------------------------------+\n|walkscan                            |Generates pixels in a random pattern using a random walk   |\n+------------------------------------+-----------------------------------------------------------+\n| .. image:: examples/walkscan.png   |.. code-block:: python                                     |\n|                                    |                                                           |\n|                                    |   random.seed(0)                                          |\n|                                    |   x0, y0, = 0, 0                                          |\n|                                    |   for x, y in skip(walkscan(x0, y0, xn=0.25, xp=0.25,     |\n|                                    |                             yn=0.25, yp=0.25), stop=8):   |\n|                                    |       print(x, y)                                         |\n|                                    |                                                           |\n|                                    |where                                                      |\n|                                    |                                                           |\n|                                    |.. code-block:: rest                                       |\n|                                    |                                                           |\n|                                    |   x0 = Initial x-coordinate                               |\n|                                    |   y0 = Initial y-coordinate                               |\n|                                    |   xn = Probability of moving in the negative x direction  |\n|                                    |   xp = Probability of moving in the positive x direction  |\n|                                    |   yn = Probability of moving in the negative y direction  |\n|                                    |   yp = Probability of moving in the positive y direction  |\n|                                    |                                                           |\n|                                    |produces the following points:                             |\n|                                    |                                                           |\n|                                    |.. code-block:: python                                     |\n|                                    |                                                           |\n|                                    |   ( 0, 0) ( 0, 1) ( 0, 2) ( 1, 2) ( 2, 2) ( 2, 1)         |\n|                                    |   ( 3, 1) ( 3, 2) ( 4, 2)                                 |\n+------------------------------------+-----------------------------------------------------------+\n\n**************************\nCoordinate Transformations\n**************************\n\nThe following are the currently available transformations\n\n+-----------+-----------------------------------------------------------+\n|    Name   | Description                                               |\n+===========+===========================================================+\n|clip       |Clips the coordinates at the given boundary                |\n+-----------+-----------------------------------------------------------+\n|Syntax:                                                                |\n|                                                                       |\n|.. code-block:: python                                                 |\n|                                                                       |\n|   clip(scan,                                                          |\n|        minx      = int,                                               |\n|        maxx      = int,                                               |\n|        miny      = int,                                               |\n|        maxy      = int,                                               |\n|        predicate = function,                                          |\n|        abort     = bool)                                              |\n|                                                                       |\n|where                                                                  |\n|                                                                       |\n|.. code-block:: rest                                                   |\n|                                                                       |\n|   scan      = Pixel scan generator                                    |\n|   minx      = Minimum x-coordinate (default = -sys.maxint)            |\n|   maxx      = Maximum x-coordinate (default =  sys.maxint)            |\n|   miny      = Minimum y-coordinate (default = -sys.maxint)            |\n|   maxy      = Maximum y-coordinate (default =  sys.maxint)            |\n|   predicate = Optional function that takes 2 arguments (x and y)      |\n|               and returns true if coordinate should be kept           |\n|               otherwise false (default = None)                        |\n|   abort     = Abort iteration if boundary is crossed                  |\n+-----------+-----------------------------------------------------------+\n|reflection |Reflects the coordinates along the x and/or y axis         |\n+-----------+-----------------------------------------------------------+\n|Syntax:                                                                |\n|                                                                       |\n|.. code-block:: python                                                 |\n|                                                                       |\n|   reflection(scan, rx = bool, ry = bool)                              |\n|                                                                       |\n|where                                                                  |\n|                                                                       |\n|.. code-block:: rest                                                   |\n|                                                                       |\n|   scan = Pixel scan generator                                         |\n|   rx   = True if x-coordinate should be reflected (default=False)     |\n|   ry   = True if y-coordinate should be reflected (default=False)     |\n+-----------+-----------------------------------------------------------+\n|reservoir  |Randomly samples the pixels using reservoir sampling       |\n+-----------+-----------------------------------------------------------+\n|Syntax:                                                                |\n|                                                                       |\n|.. code-block:: python                                                 |\n|                                                                       |\n|   reservoir(scan, npoints = int)                                      |\n|                                                                       |\n|where                                                                  |\n|                                                                       |\n|.. code-block:: rest                                                   |\n|                                                                       |\n|   scan    = Pixel scan generator                                      |\n|   npoints = Sample size                                               |\n+-----------+-----------------------------------------------------------+\n|rotation   |Rotates the coordinates about the origin counter-clockwise |\n+-----------+-----------------------------------------------------------+\n|Syntax:                                                                |\n|                                                                       |\n|.. code-block:: python                                                 |\n|                                                                       |\n|   rotation(scan, angle = float)                                       |\n|                                                                       |\n|where                                                                  |\n|                                                                       |\n|.. code-block:: rest                                                   |\n|                                                                       |\n|   scan  = Pixel scan generator                                        |\n|   angle = Counter-clockwise angle in degrees (default=0)              |\n+-----------+-----------------------------------------------------------+\n|sample     |Randomly samples the pixels with a given probability       |\n+-----------+-----------------------------------------------------------+\n|Syntax:                                                                |\n|                                                                       |\n|.. code-block:: python                                                 |\n|                                                                       |\n|   sample(scan, probability = float)                                   |\n|                                                                       |\n|where                                                                  |\n|                                                                       |\n|.. code-block:: rest                                                   |\n|                                                                       |\n|   scan        = Pixel scan generator                                  |\n|   probability = Sampling probability in interval [0,1] (default=1)    |\n+-----------+-----------------------------------------------------------+\n|scale      |Scales the coordinates with a given scale factors          |\n+-----------+-----------------------------------------------------------+\n|Syntax:                                                                |\n|                                                                       |\n|.. code-block:: python                                                 |\n|                                                                       |\n|   scale(scan, sx = float, sy = float)                                 |\n|                                                                       |\n|where                                                                  |\n|                                                                       |\n|.. code-block:: rest                                                   |\n|                                                                       |\n|   scan = Pixel scan generator                                         |\n|   sx   = x-coordinate scale factor (default=1)                        |\n|   sy   = y-coordinate scale factor (default=1)                        |\n+-----------+-----------------------------------------------------------+\n|skip       |Skips the pixels with the given step size                  |\n+-----------+-----------------------------------------------------------+\n|Syntax:                                                                |\n|                                                                       |\n|.. code-block:: python                                                 |\n|                                                                       |\n|   skip(scan, start = int, stop = int, step = int)                     |\n|                                                                       |\n|where                                                                  |\n|                                                                       |\n|.. code-block:: rest                                                   |\n|                                                                       |\n|   scan  = Pixel scan generator                                        |\n|   start = Iteration starting 0-based index (default = 0)              |\n|   stop  = Iteration stopping 0-based index (default = sys.maxint)     |\n|   step  = Iteration step size (default = 1)                           |\n+-----------+-----------------------------------------------------------+\n|snap       |Snap the x and y coordinates to the nearest grid point     |\n+-----------+-----------------------------------------------------------+\n|Syntax:                                                                |\n|                                                                       |\n|.. code-block:: python                                                 |\n|                                                                       |\n|   snap(scan)                                                          |\n|                                                                       |\n|where                                                                  |\n|                                                                       |\n|.. code-block:: rest                                                   |\n|                                                                       |\n|   scan = Pixel scan generator                                         |\n+-----------+-----------------------------------------------------------+\n|swap       |Swap the x and y coordinates                               |\n+-----------+-----------------------------------------------------------+\n|Syntax:                                                                |\n|                                                                       |\n|.. code-block:: python                                                 |\n|                                                                       |\n|   swap(scan)                                                          |\n|                                                                       |\n|where                                                                  |\n|                                                                       |\n|.. code-block:: rest                                                   |\n|                                                                       |\n|   scan = Pixel scan generator                                         |\n+-----------+-----------------------------------------------------------+\n|translation|Translates the coordinates by the given offsets            |\n+-----------+-----------------------------------------------------------+\n|Syntax:                                                                |\n|                                                                       |\n|.. code-block:: python                                                 |\n|                                                                       |\n|   translation(scan, tx = float, ty = float)                           |\n|                                                                       |\n|where                                                                  |\n|                                                                       |\n|.. code-block:: rest                                                   |\n|                                                                       |\n|   scan = Pixel scan generator                                         |\n|   tx   = x-coordinate translation offset (default = 0)                |\n|   ty   = y-coordinate translation offset (default = 0)                |\n+-----------+-----------------------------------------------------------+\n\n\n***************\nWarnings\n***************\n\nScan Generators such as **circlescan** and Coordinate Transformations such as\n**rotation** can yield non-grid points. They can be snapped to a grid point\nusing the **snap** transformation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdpmcmlxxvi%2Fpixelscan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdpmcmlxxvi%2Fpixelscan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdpmcmlxxvi%2Fpixelscan/lists"}