{"id":19264271,"url":"https://github.com/cphyc/extrema","last_synced_at":"2026-06-14T18:31:53.377Z","repository":{"id":74150441,"uuid":"84423244","full_name":"cphyc/extrema","owner":"cphyc","description":"Extrema finder for Python","archived":false,"fork":false,"pushed_at":"2017-03-09T10:20:10.000Z","size":20,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-23T19:15:17.983Z","etag":null,"topics":["analysis","extrema","python","scientific-computing"],"latest_commit_sha":null,"homepage":null,"language":"Fortran","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cphyc.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-03-09T09:27:01.000Z","updated_at":"2017-03-09T09:30:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"412e7a32-ae91-4830-bc27-bedea8e9f32e","html_url":"https://github.com/cphyc/extrema","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cphyc/extrema","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cphyc%2Fextrema","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cphyc%2Fextrema/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cphyc%2Fextrema/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cphyc%2Fextrema/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cphyc","download_url":"https://codeload.github.com/cphyc/extrema/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cphyc%2Fextrema/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34333806,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-14T02:00:07.365Z","response_time":62,"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":["analysis","extrema","python","scientific-computing"],"created_at":"2024-11-09T19:40:34.223Z","updated_at":"2026-06-14T18:31:53.362Z","avatar_url":"https://github.com/cphyc.png","language":"Fortran","funding_links":[],"categories":[],"sub_categories":[],"readme":"Extrema finder\n--------------\n\nThis package computes the extrema of a 3D field.\n\nRequirements\n------------\nRequires:\n* BLAS\n* LAPACK\n* FFTW3 (will be removed eventually)\n* numpy\n* python 2 or 3 (of course!)\n* gfortran (for other compilers, see below)\n\nIf you're using ifort or other, you have to clone this repository and modify the Makefile accordingly.\n\n\nInstall\n-------\nOnce you've met all dependencies, just run:\n```sh\npip install -e git+https://github.com/cphyc/extrema.git#egg=extrema\n```\n\nExample\n-------\n```python\nfrom extrema import extrema\nimport numpy as np\n\n# Generate a random field\nfield = np.random.rand(32**3).reshape(32, 32, 32)\n\n# Mandatory: set parameters of the run\nnpeaks = 32**3  # max number of peaks\nnbins = 32**3   # number of bins of the field\nnthreads = 2    # number of threads to use\nextrema.set(npeaks, nbins, nthreads)\n\n# Find the peaks\nextrema.compute(field)\n\n# Get the data back\ndata = dict(\n     pos=extrema.peak_pos,     # pos of the critical point\n     val=extrema.peak_values,  # value at the point\n     eigval=extrema.eigval,    # eigen values of the hessian\n     eigvec=extrema.eigvec,    # eigen vectors of the hessian\n     type=extrema.peak_types,  # type of the extrema (4: maximum, 3,2:saddle point, 1:minimum)\n     index=extrema.peak_index  # unravelled index of the cell containing the critical point\n)\n\n# Unravel indices\nindices = np.unravel_index(data['index'], field.shape, order='F')\n```\n\n\nCopyright\n---------\nThe Fortran Routines have been borrowed from Dmitri Pogosyan. Any work using this package should name him explicitly.\n\nLicense\n-------\nThis work is licensed under the CC-BY-SA license. You are allowed to copy, modify and distribute it as long as you keed the license. See more in the LICENSE file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcphyc%2Fextrema","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcphyc%2Fextrema","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcphyc%2Fextrema/lists"}