tabsim 0.0.7__tar.gz → 0.0.9__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {tabsim-0.0.7 → tabsim-0.0.9}/PKG-INFO +2 -1
- {tabsim-0.0.7 → tabsim-0.0.9}/pyproject.toml +6 -4
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/config.py +15 -6
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/dask/observation.py +11 -1
- tabsim-0.0.9/tabsim/data/rfi/tles/2023-02-21-navstar.json +1 -0
- tabsim-0.0.9/tabsim/data/rfi/tles/2024-01-15-1T78VE.json +1 -0
- tabsim-0.0.9/tabsim/data/rfi/tles/2024-01-15-ISS.json +1 -0
- tabsim-0.0.9/tabsim/scripts/import_tle_files.py +319 -0
- tabsim-0.0.9/tabsim/scripts/setup_spacetrack_login.py +103 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/tle.py +93 -22
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim.egg-info/PKG-INFO +2 -1
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim.egg-info/SOURCES.txt +5 -1
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim.egg-info/entry_points.txt +2 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim.egg-info/requires.txt +1 -0
- tabsim-0.0.9/tests/test_tle_api.py +512 -0
- tabsim-0.0.7/tabsim/data/rfi/tles/2023-02-21-J8HE0T.json +0 -1
- tabsim-0.0.7/tabsim/data/rfi/tles/2023-02-21-navstar.json +0 -1
- {tabsim-0.0.7 → tabsim-0.0.9}/LICENSE +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/README.md +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/docs/conf.py +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/setup.cfg +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/__init__.py +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/dask/__init__.py +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/dask/coordinates.py +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/dask/extras.py +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/dask/interferometry.py +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/data/__init__.py +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/data/config/sim_config_base.yaml +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/data/config/tab_config_base.yaml +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/data/rfi/norad_satellite.rfimodel +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/data/rfi/satellite.ole +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/data/rfi/satellite.rfimodel +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/data/rfi/stationary.loc +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/data/rfi/stationary.rfimodel +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/data/sky/calibrator.skymodel +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/data/telescopes/EDA2.itrf.txt +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/data/telescopes/MWA.itrf.txt +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/data/telescopes/MeerKAT.itrf.txt +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/data/telescopes/_telescopes.yaml +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/jax/__init__.py +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/jax/coordinates.py +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/jax/interferometry.py +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/jax/utils.py +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/plot.py +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/read_ms.py +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/scripts/__init__.py +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/scripts/ast_region.py +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/scripts/flag_data.py +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/scripts/sim_vis.py +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/scripts/tle_sat_region.py +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/scripts/write_config_from_ms.py +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/sky.py +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/tools.py +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim/write.py +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim.egg-info/dependency_links.txt +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tabsim.egg-info/top_level.txt +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tests/test_basic.py +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tests/test_sim-vis.py +0 -0
- {tabsim-0.0.7 → tabsim-0.0.9}/tests/test_version.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tabsim
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.9
|
|
4
4
|
Summary: Trajectory-based Radio Frequency Interference (RFI) simulations for radio interferometeric data.
|
|
5
5
|
Author-email: Chris Finlay <christopher.finlay@epfl.ch>
|
|
6
6
|
Maintainer-email: Chris Finlay <christopher.finlay@epfl.ch>
|
|
@@ -695,6 +695,7 @@ Requires-Dist: astropy
|
|
|
695
695
|
Requires-Dist: spacetrack
|
|
696
696
|
Requires-Dist: skyfield
|
|
697
697
|
Requires-Dist: numpy
|
|
698
|
+
Requires-Dist: pyyaml
|
|
698
699
|
Provides-Extra: gpu
|
|
699
700
|
Requires-Dist: jax[cuda12]; extra == "gpu"
|
|
700
701
|
Provides-Extra: sat
|
|
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
|
|
|
5
5
|
|
|
6
6
|
[project]
|
|
7
7
|
name = "tabsim"
|
|
8
|
-
version = "0.0.
|
|
8
|
+
version = "0.0.9"
|
|
9
9
|
license = {file = "LICENSE"}
|
|
10
10
|
readme = "README.md"
|
|
11
11
|
# dynamic = ["version", "readme"]
|
|
@@ -19,9 +19,9 @@ description = "Trajectory-based Radio Frequency Interference (RFI) simulations f
|
|
|
19
19
|
|
|
20
20
|
requires-python = ">=3.9"
|
|
21
21
|
dependencies = [
|
|
22
|
-
"jax", "dask", "xarray", "zarr<3.0.0",
|
|
23
|
-
"dask-ms>=0.2.21", "scipy", "tqdm", "matplotlib",
|
|
24
|
-
"astropy", "spacetrack", "skyfield", "numpy",
|
|
22
|
+
"jax", "dask", "xarray", "zarr<3.0.0",
|
|
23
|
+
"dask-ms>=0.2.21", "scipy", "tqdm", "matplotlib",
|
|
24
|
+
"astropy", "spacetrack", "skyfield", "numpy", "pyyaml",
|
|
25
25
|
]
|
|
26
26
|
|
|
27
27
|
[project.optional-dependencies]
|
|
@@ -52,3 +52,5 @@ ast-region = "tabsim.scripts.ast_region:main"
|
|
|
52
52
|
flag-data = "tabsim.scripts.flag_data:main"
|
|
53
53
|
sim-vis = "tabsim.scripts.sim_vis:main"
|
|
54
54
|
write-config = "tabsim.scripts.write_config_from_ms:main"
|
|
55
|
+
tabsim-setup-spacetrack = "tabsim.scripts.setup_spacetrack_login:main"
|
|
56
|
+
tabsim-import-tles = "tabsim.scripts.import_tle_files:main"
|
|
@@ -526,12 +526,21 @@ def add_tle_satellite_sources(
|
|
|
526
526
|
]
|
|
527
527
|
if np.any(tle_cond):
|
|
528
528
|
|
|
529
|
-
|
|
529
|
+
# Load SpaceTrack credentials
|
|
530
|
+
if spacetrack_path and os.path.exists(spacetrack_path):
|
|
531
|
+
# Load from specified path if file exists
|
|
530
532
|
st_ = yaml_load(spacetrack_path)
|
|
533
|
+
username = st_["username"]
|
|
534
|
+
password = st_["password"]
|
|
531
535
|
else:
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
)
|
|
536
|
+
# Try loading from standard locations
|
|
537
|
+
from tabsim.tle import load_spacetrack_credentials
|
|
538
|
+
username, password = load_spacetrack_credentials()
|
|
539
|
+
|
|
540
|
+
if username is None or password is None:
|
|
541
|
+
print("Warning: No SpaceTrack credentials found. Skipping TLE satellite sources.")
|
|
542
|
+
print("To set up credentials, run: tabsim-setup-spacetrack")
|
|
543
|
+
return
|
|
535
544
|
|
|
536
545
|
if sat_["norad_ids_path"] is None:
|
|
537
546
|
norad_ids = sat_["norad_ids"]
|
|
@@ -549,8 +558,8 @@ def add_tle_satellite_sources(
|
|
|
549
558
|
)
|
|
550
559
|
|
|
551
560
|
norad_ids, tles = get_visible_satellite_tles(
|
|
552
|
-
|
|
553
|
-
|
|
561
|
+
username,
|
|
562
|
+
password,
|
|
554
563
|
times_check,
|
|
555
564
|
obs.latitude,
|
|
556
565
|
obs.longitude,
|
|
@@ -330,8 +330,18 @@ class Observation(Telescope):
|
|
|
330
330
|
self.mag_uvw = da.linalg.norm(self.bl_uvw[0], axis=-1)
|
|
331
331
|
self.syn_bw = beam_size(self.mag_uvw.max().compute(), freqs.max())
|
|
332
332
|
|
|
333
|
+
# The following calculation of antenna positions in the GCRS frame does not take nutation
|
|
334
|
+
# into consideration. This leads to a small offset in the antenna positions compared to reality.
|
|
333
335
|
# self.ants_xyz = ITRF_to_XYZ(self.ITRF, self.gsa)
|
|
334
|
-
|
|
336
|
+
# The following calculation using skyfield takes nutation into consideration and leads to more
|
|
337
|
+
# accurate antenna positions.
|
|
338
|
+
self.ants_xyz = da.asarray(
|
|
339
|
+
itrs_to_gcrs_sf(
|
|
340
|
+
np.asarray(self.ITRF),
|
|
341
|
+
np.asarray(mjd_to_jd(self.times_mjd_fine.compute())),
|
|
342
|
+
)
|
|
343
|
+
).rechunk((self.time_fine_chunk, self.n_ant, 3))
|
|
344
|
+
|
|
335
345
|
self.vis_rfi = da.zeros(
|
|
336
346
|
shape=(self.n_time, self.n_bl, self.n_freq),
|
|
337
347
|
chunks=(self.time_chunk, self.bl_chunk, self.freq_chunk),
|