{"cells":[{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":"from pathlib import Path\n\nprint('=== /kaggle/input/datasets ===')\nfor owner in Path('/kaggle/input/datasets').iterdir():\n    for ds in owner.iterdir():\n        print(f'  {owner.name}/{ds.name}')\n        for p in ds.iterdir():\n            print(f'    {p.name}')\n\nprint('\\n=== /kaggle/input/competitions ===')\nfor comp in Path('/kaggle/input/competitions').iterdir():\n    print(f'  {comp.name}')\n    for p in comp.iterdir():\n        print(f'    {p.name}')"},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":"JPEG_BASE = Path('/kaggle/input/datasets/alenic/rsna-knee-abnormality-detection-jpeg-224x224')\nprint(f'JPEG_BASE exists: {JPEG_BASE.exists()}')\nfor p in JPEG_BASE.iterdir():\n    print(f'  {p.name}/')\n    if p.is_dir():\n        sub = list(p.iterdir())[:3]\n        for s in sub:\n            print(f'    {s.name}')"},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":"from PIL import Image\nimport numpy as np\n\ntrain_path = None\nfor candidate in [\n    JPEG_BASE / 'train_series',\n    JPEG_BASE / 'train',\n]:\n    if candidate.exists():\n        train_path = candidate\n        break\n\nif train_path is None:\n    print('No train_series or train found. Listing all dirs:')\n    for p in JPEG_BASE.rglob('*'):\n        if p.is_dir() and len(list(p.iterdir())) > 0:\n            print(f'  {p.relative_to(JPEG_BASE)}')\nelse:\n    print(f'train_path: {train_path}')\n    study_dirs = [d for d in train_path.iterdir() if d.is_dir()][:1]\n    study_dir = study_dirs[0]\n    print(f'Study: {study_dir.name}')\n    for p in study_dir.iterdir():\n        if p.is_dir():\n            n = len(list(p.glob('*.jpg')))\n            print(f'  {p.name}/ ({n} jpgs)')\n    all_jpegs = sorted(study_dir.rglob('*.jpg'))\n    if all_jpegs:\n        img = np.array(Image.open(all_jpegs[0]))\n        print(f'\\nFirst JPEG: {all_jpegs[0].relative_to(JPEG_BASE)}')\n        print(f'  shape: {img.shape}')\n        print(f'  dtype: {img.dtype}')\n        print(f'  min:   {img.min()}')\n        print(f'  max:   {img.max()}')\n        print(f'  mean:  {img.mean():.2f}')\n        print(f'  std:   {img.std():.2f}')"}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.10.0"}},"nbformat":4,"nbformat_minor":4}