{"id":22903099,"url":"https://github.com/space-physics/grwave","last_synced_at":"2025-05-08T08:57:13.640Z","repository":{"id":41380849,"uuid":"114598431","full_name":"space-physics/grwave","owner":"space-physics","description":"Python for ITU P.368 : Ground-wave propagation curves for frequencies between 10 kHz and 30 MHz","archived":false,"fork":false,"pushed_at":"2021-08-02T05:36:07.000Z","size":275,"stargazers_count":26,"open_issues_count":3,"forks_count":13,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-05-08T08:57:07.821Z","etag":null,"topics":["basic-programming-language","broadcast","fortran","geoscience","itu","medium-wave","propagation","python","shortwave"],"latest_commit_sha":null,"homepage":"https://www.itu.int/en/ITU-R/study-groups/rsg3/Pages/iono-tropo-spheric.aspx","language":"Fortran","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/space-physics.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":"2017-12-18T05:13:39.000Z","updated_at":"2025-04-23T08:35:01.000Z","dependencies_parsed_at":"2022-07-19T02:04:28.049Z","dependency_job_id":null,"html_url":"https://github.com/space-physics/grwave","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/space-physics%2Fgrwave","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/space-physics%2Fgrwave/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/space-physics%2Fgrwave/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/space-physics%2Fgrwave/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/space-physics","download_url":"https://codeload.github.com/space-physics/grwave/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253033611,"owners_count":21843732,"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","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":["basic-programming-language","broadcast","fortran","geoscience","itu","medium-wave","propagation","python","shortwave"],"created_at":"2024-12-14T02:33:31.430Z","updated_at":"2025-05-08T08:57:13.619Z","avatar_url":"https://github.com/space-physics.png","language":"Fortran","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GRWave groundwave propagation\n\n![ci](https://github.com/space-physics/grwave/workflows/ci/badge.svg)\n\nPython for ITU P.368: Ground-wave propagation curves for frequencies between 10 kHz and 30 MHz.\n\n[Original code](https://www.itu.int/en/ITU-R/study-groups/rsg3/Pages/iono-tropo-spheric.aspx)\n\nMore serious needs for LF propagation modeling should consider modern software like SPAWAR\n[LWPC](https://www.ann-geophys.net/31/765/2013/angeo-31-765-2013.pdf)\nsince for communications circuits, signal strength is just one part of a complex system.\nOther necessary dominant factors include:\n\n* ITU-R [P.372](https://www.itu.int/rec/R-REC-P.372/en) Radio circuit noise\n* ITU-R [F.1487](https://www.itu.int/rec/R-REC-F.1487-0-200005-I/en) Ionospheric circuit simultation. Even if you only want groundwave, the ionospheric path in general interferes with the groundwave path.\n\n![image](data/fs.png)\n\n## Install\n\n```sh\npip install -e .\n```\n\n## Usage\n\n    python RunGRwave.py\n\nThis makes a very simple simulation plot, automatically feeding the\nparameters into GRWAVE from Python. No files are used, just\n`io.StringIO`.\n\n## Ground conductivity\n\nSerious use of this would involve incremental runs with conductivity.\nTo start assume uniform ground conductivity for the\n[United States](https://www.fcc.gov/media/radio/m3-ground-conductivity-map)\nor\n[world atlas](http://hamwaves.com/ground/en/index.html).\n\n### Variables\n\ngrwave.for is written in a way that's not easy to switch to taking\nPython input directly. Instead we convert variables to StringIO in the\nformat grwave expects. Likewise, output is to StringIO and parsed.\n\nANS: [R] The refractivity of the troposphere at the surface of the earth in N-units. Default ANS= 315\n\nHSCALE:[R] The scale height of the troposphere in kilometres. Default HSCALE = 7.35.\n\nIPOLRN:[I] A code number for the polarization. Default IPOLRN = 1.\n* 1 vertical polarization\n* 2 horizontal polarization\n\nFREQ: [R] The frequency in MHz. Default FREQ = 1.0.\n\nEPSLON:[R] The relative permittivity of the surface of the earth.  Default EPSLON = 70.0 (sea).\n\nSIGMA:[R] The conductivity of the surface of the earth in S/m. Default SIGMA = 5.0 (sea).\n\nDMIN: [R] The minimum range in kilometres.  Default DMIN = 10.0.\n\nDMAX: [R] The maximum range in kilometres.  Default DMAX = 200.0.\n\nDSTEP:[R] The range step. See LOGLIN for further explanation.  Default DSTEP = 10.0.\n\nLOGLIN:[I] If LOGLIN = 0 then DSTEP, the range step is added to the range in geometrical and extended flat earth calculation regions and subtracted in the residue series regions.\nIf LOGLIN = 1 then the new distance is computed by multiplying or dividing the previous distance by DSTEP. In this case, DSTEP is chosen to give a fixed number of points per logarithmic decade.\nIf N points per logarithmic decade are desired, DSTEP is equal to 10 to the power (1/N).\nDefault LOGLIN = 0.\n\n[Note: In the residue series region, the calculations begin at DMAX\nand proceed inward to the transition to the flat earth or\ngeometrical region. In these two regions, the calculations begin at\nDMIN and proceed outward to the transition point. In the form\ndistributed, GRWAVE allows a maximum of 100 points in the residue\nregion and 100 points in the flat earth region. These limits may be\nexpanded by compiling the source code after modification of the\nappropriate dimension statements.]\n\nIG: [I] If IG = -1 or 0, the field is calculated at long distances using the residue series formulation. If IG = 0 or 1, the field is calculated at short distances using the geometric optics or extended flat earth formulation.\nDefault IG = 0.\n\nJHT: [I] A variable which determines which combination of receiver antenna heights (HR(LR) LR=1,JR) and transmitter heights\n(HT(LT) LT=1,JT) is used in computing the field. If JHT=1, all\npossible combinations of pairs are used. If JHT=2, JR must equal JT\nand the field is calculated for specific pairs of heights\n[HR(1),HT(1)], [HR(2),HT(2)], .......[HR(JR),HT(JT)]. If\nJHT=3, JR must equal JT. Then LR is varied from 1 to LR while LT is\nvaried from LR to LT. If the two arrays HR and HT are identical,\nthis excludes those combinations that can be found by reciprocity.\nDefault JHT = 1\n\nHRR: [R] An array of of up to 20 receiver heights in metres.\nThe number of points, JR is determined by the program by counting\nthe number of heights entered. Default JR =1 ; HR(1)=100.0\n\nHTT: [R] An array of of up to 20 transmitter heights in metres. The number of points, JT is determined by the program by counting the number of heights entered. Default JT =1 ; HT(1)=100.0\n\nGO: A keyword used to indicate that the user has entered all variables and that the calculation of the field should proceed.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspace-physics%2Fgrwave","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspace-physics%2Fgrwave","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspace-physics%2Fgrwave/lists"}