diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 8b5d3600..b0c315c0 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -31,14 +31,22 @@ jobs: auto-update-conda: true conda-solver: libmamba - - name: Run jupyterlab with PySUS - run: | - make run-jupyter-pysus + # - name: Run jupyterlab with PySUS + # run: | + # make run-jupyter-pysus # make test-jupyter-pysus ## takes too long - name: Linting & Tests run: | - export CI=1 - poetry install + pip install poetry poetry-plugin-export + + poetry config virtualenvs.create false + + poetry export --with dev --extras dbc --format requirements.txt --output reqs.txt --without-hashes + + pip install -r reqs.txt + pip install -e ".[dbc]" + pre-commit run --all-files + make test-pysus diff --git a/.gitignore b/.gitignore index ebed1ee5..1b762be6 100644 --- a/.gitignore +++ b/.gitignore @@ -179,6 +179,7 @@ dmypy.json # pytype static type analyzer .pytype/ +.pylintrc # Cython debug symbols cython_debug/ @@ -189,3 +190,4 @@ cython_debug/ # and can be added to the global gitignore or merged into this file. For a more nuclear # option (not recommended) you can uncomment the following to ignore the entire idea folder. .idea/ +pyrightconfig.json diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index eebb6927..3ff88ba2 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -2,43 +2,57 @@ default_stages: [commit, push] repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.1.0 + rev: v4.5.0 hooks: + - id: trailing-whitespace - id: end-of-file-fixer + - id: check-yaml + - id: check-added-large-files + - id: check-ast - - repo: local + - repo: https://github.com/psf/black + rev: 24.2.0 hooks: - - entry: black - id: black - name: black - exclude: | - (?x)( - docs - ) - files: "" - language: system - pass_filenames: true - types: - - python - - file - - python + - id: black + args: [--line-length=80] + exclude: ^docs/ - - entry: flake8 - exclude: ^$ - files: "" - id: flake8 - language: python - name: flake8 - pass_filenames: true - types: - - python + - repo: https://github.com/pycqa/isort + rev: 5.13.2 + hooks: + - id: isort + args: [--profile=black, --line-length=80] + exclude: ^.*/js/.*$ + + - repo: https://github.com/pycqa/flake8 + rev: 7.0.0 + hooks: + - id: flake8 + args: [--max-line-length=80, --extend-ignore=E203] + additional_dependencies: [ + 'flake8-blind-except', + 'flake8-bugbear', + 'flake8-comprehensions', + 'flake8-implicit-str-concat', + 'pydocstyle>=6.3.0', + ] - - entry: isort - exclude: "^.*/js/.*$" - files: "" - id: isort - language: python - name: isort - pass_filenames: true - types: - - python + - repo: https://github.com/pre-commit/mirrors-mypy + rev: v1.8.0 + hooks: + - id: mypy + additional_dependencies: [ + 'types-python-dateutil', + 'types-requests', + 'types-setuptools', + 'pandas-stubs', + 'pydantic>=2.0.0', + ] + args: [--ignore-missing-imports, --explicit-package-bases] + exclude: ^docs/ + + - repo: https://github.com/asottile/pyupgrade + rev: v3.15.0 + hooks: + - id: pyupgrade + args: [--py310-plus] diff --git a/README.md b/README.md index 84967573..c1aa5268 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ First, clone the Pysus repository: ```bash git clone https://github.com/AlertaDengue/PySUS.git -``` +``` then from within the PySUS directory build the container diff --git a/conda/dev.yaml b/conda/dev.yaml index 8f1f7125..55d60c2c 100644 --- a/conda/dev.yaml +++ b/conda/dev.yaml @@ -7,5 +7,4 @@ dependencies: - python>=3.10,<3.14 - jupyter - make - - poetry - pip diff --git a/condarecipe/pysus/meta.yaml b/condarecipe/pysus/meta.yaml deleted file mode 100644 index 41f45164..00000000 --- a/condarecipe/pysus/meta.yaml +++ /dev/null @@ -1,56 +0,0 @@ -{% set name = "PySUS" %} -{% set version = "0.5.14" %} - -package: - name: "{{ name|lower }}" - version: "{{ version }}" - -source: - url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: b5215bf4bf2afb4f9d552deab717df3ab26aeed8dc9750434dde285f227f045d - -build: - number: 0 - script: "{{ PYTHON }} -m pip install . -vv" - -requirements: - host: - - cffi >=1.0.0 - - dbfread - - fastparquet - - geocoder - - pandas - - pip - - python - - requests - run: - - cffi >=1.0.0 - - dbfread - - fastparquet - - geocoder - - pandas - - pyarrow - - python - - requests - -test: - imports: - - pysus - - pysus.demography - - pysus.online_data - - pysus.preprocessing - - pysus.tests - - pysus.tests.test_data - -about: - home: "https://github.com/fccoelho/PySUS" - license: gpl-v3 - license_family: GPL3 - license_file: - summary: "Tools for dealing with Brazil's Public health data" - doc_url: - dev_url: - -extra: - recipe-maintainers: - - fccoelho diff --git a/docs/source/conf.py b/docs/source/conf.py index a006f43c..006a18d1 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -# -*- coding: utf-8 -*- # # PySUS documentation build configuration file, created by # sphinx-quickstart on Thu Aug 25 10:37:19 2016. diff --git a/poetry.lock b/poetry.lock index 331da2c8..8ed79972 100644 --- a/poetry.lock +++ b/poetry.lock @@ -28,28 +28,37 @@ files = [ {file = "alabaster-0.7.16.tar.gz", hash = "sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65"}, ] +[[package]] +name = "annotated-types" +version = "0.7.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +files = [ + {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, + {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, +] + [[package]] name = "anyio" -version = "4.6.2.post1" -description = "High level compatibility layer for multiple asynchronous event loop implementations" +version = "4.13.0" +description = "High-level concurrency and networking framework on top of asyncio or Trio" optional = false -python-versions = ">=3.9" -groups = ["docs"] +python-versions = ">=3.10" +groups = ["main", "dev", "docs"] files = [ - {file = "anyio-4.6.2.post1-py3-none-any.whl", hash = "sha256:6d170c36fba3bdd840c73d3868c1e777e33676a69c3a72cf0a0d5d6d8009b61d"}, - {file = "anyio-4.6.2.post1.tar.gz", hash = "sha256:4c8bc31ccdb51c7f7bd251f51c609e038d63e34219b44aa86e47576389880b4c"}, + {file = "anyio-4.13.0-py3-none-any.whl", hash = "sha256:08b310f9e24a9594186fd75b4f73f4a4152069e3853f1ed8bfbf58369f4ad708"}, + {file = "anyio-4.13.0.tar.gz", hash = "sha256:334b70e641fd2221c1505b3890c69882fe4a2df910cba14d97019b90b24439dc"}, ] [package.dependencies] exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} idna = ">=2.8" -sniffio = ">=1.1" -typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""} +typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""} [package.extras] -doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] -test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "truststore (>=0.9.1) ; python_version >= \"3.10\"", "uvloop (>=0.21.0b1) ; platform_python_implementation == \"CPython\" and platform_system != \"Windows\""] -trio = ["trio (>=0.26.1)"] +trio = ["trio (>=0.32.0)"] [[package]] name = "appnope" @@ -64,6 +73,21 @@ files = [ {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, ] +[[package]] +name = "argcomplete" +version = "3.6.3" +description = "Bash tab completion for argparse" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +files = [ + {file = "argcomplete-3.6.3-py3-none-any.whl", hash = "sha256:f5007b3a600ccac5d25bbce33089211dfd49eab4a7718da3f10e3082525a92ce"}, + {file = "argcomplete-3.6.3.tar.gz", hash = "sha256:62e8ed4fd6a45864acc8235409461b72c9a28ee785a2011cc5eb78318786c89c"}, +] + +[package.extras] +test = ["coverage", "mypy", "pexpect", "ruff", "wheel"] + [[package]] name = "argon2-cffi" version = "23.1.0" @@ -212,6 +236,19 @@ files = [ [package.extras] dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] +[[package]] +name = "backports-asyncio-runner" +version = "1.2.0" +description = "Backport of asyncio.Runner, a context manager that controls event loop life cycle." +optional = false +python-versions = "<3.11,>=3.8" +groups = ["dev"] +markers = "python_version == \"3.10\"" +files = [ + {file = "backports_asyncio_runner-1.2.0-py3-none-any.whl", hash = "sha256:0da0a936a8aeb554eccb426dc55af3ba63bcdc69fa1a600b5bb305413a4477b5"}, + {file = "backports_asyncio_runner-1.2.0.tar.gz", hash = "sha256:a5aa7b2b7d8f8bfcaa2b57313f70792df84e32a2a746f585213373f900b42162"}, +] + [[package]] name = "beautifulsoup4" version = "4.12.3" @@ -304,6 +341,46 @@ webencodings = "*" [package.extras] css = ["tinycss2 (>=1.1.0,<1.5)"] +[[package]] +name = "boto3" +version = "1.42.89" +description = "The AWS SDK for Python" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "boto3-1.42.89-py3-none-any.whl", hash = "sha256:6204b189f4d0c655535f43d7eaa57ff4e8d965b8463c97e45952291211162932"}, + {file = "boto3-1.42.89.tar.gz", hash = "sha256:3e43aacc0801bba9bcd23a8c271c089af297a69565f783fcdd357ae0e330bf1e"}, +] + +[package.dependencies] +botocore = ">=1.42.89,<1.43.0" +jmespath = ">=0.7.1,<2.0.0" +s3transfer = ">=0.16.0,<0.17.0" + +[package.extras] +crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] + +[[package]] +name = "botocore" +version = "1.42.89" +description = "Low-level, data-driven core of boto 3." +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "botocore-1.42.89-py3-none-any.whl", hash = "sha256:d9b786c8d9db6473063b4cc5be0ba7e6a381082307bd6afb69d4216f9fa95f35"}, + {file = "botocore-1.42.89.tar.gz", hash = "sha256:95ac52f472dad29942f3088b278ab493044516c16dbf9133c975af16527baa99"}, +] + +[package.dependencies] +jmespath = ">=0.7.1,<2.0.0" +python-dateutil = ">=2.1,<3.0.0" +urllib3 = {version = ">=1.25.4,<2.2.0 || >2.2.0,<3", markers = "python_version >= \"3.10\""} + +[package.extras] +crt = ["awscrt (==0.31.2)"] + [[package]] name = "branca" version = "0.8.0" @@ -325,7 +402,7 @@ version = "2024.8.30" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" -groups = ["main", "dev", "docs", "geo"] +groups = ["dev", "docs", "geo"] files = [ {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"}, {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, @@ -407,7 +484,7 @@ files = [ {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, ] -markers = {dev = "implementation_name == \"pypy\""} +markers = {main = "extra == \"dbc\"", dev = "implementation_name == \"pypy\""} [package.dependencies] pycparser = "*" @@ -424,6 +501,48 @@ files = [ {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, ] +[[package]] +name = "chardet" +version = "7.4.0.post2" +description = "Universal character encoding detector" +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "chardet-7.4.0.post2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:77170d229f3d7babbc36c5a33c361de1c01091f4564a33bcd7e0f59ee8609b2a"}, + {file = "chardet-7.4.0.post2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9be8a6ba814f65013e0e6d92a43e8fa50f42c8850c143fa74586baeac5fa1bcd"}, + {file = "chardet-7.4.0.post2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:28807a1209b7c2b79b24bdf9722b381e81da8104ae17fe2bd1e9f01c87fe9071"}, + {file = "chardet-7.4.0.post2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6ade174e3fe29f1f4abdb3cc47add0a98201452c43786cbf324b5e237a0c79fc"}, + {file = "chardet-7.4.0.post2-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:335d9cedd5b5be4b8b39ec25b1c2e4498ac4e8658c9466b68b4417cf07c8c4ee"}, + {file = "chardet-7.4.0.post2-cp310-cp310-win_amd64.whl", hash = "sha256:cde31d2314b156404380aca8aa0bdf6395bc92998b25336076b8a588c267fb20"}, + {file = "chardet-7.4.0.post2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:90227bc83d06d16b548afe185e93eff8c740cb11ec51536366399b912e361b8d"}, + {file = "chardet-7.4.0.post2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:18cb15facd3a70042cb4d3b9a80dd2e9b8d78af90643f434047060e1f84dff06"}, + {file = "chardet-7.4.0.post2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e719bf17854051970938e260d2c589fe3fde3da0a681acdafd266e3bbf75c1af"}, + {file = "chardet-7.4.0.post2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:24b8fcc1fe54936932f305522bc2f40a207ecbb38209fa24226eab7432531aef"}, + {file = "chardet-7.4.0.post2-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:2c748b2850c8376ef04b02b3f22e014da5edc961478c88ccc6b01d3eed9bc1e7"}, + {file = "chardet-7.4.0.post2-cp311-cp311-win_amd64.whl", hash = "sha256:a359eb4535aeabd3f61e599530c4c4d4855c31316e6fed7db619a9c58785ee38"}, + {file = "chardet-7.4.0.post2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7aced16fe8098019c7c513dd92e9ee3ad29fffac757fa7de13ff8f3a8607a344"}, + {file = "chardet-7.4.0.post2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:dc6829803ba71cb427dffac03a948ae828c617710bbd5f97ae3b34ab18558414"}, + {file = "chardet-7.4.0.post2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:46659d38ba18e7c740f10a4c2edd0ef112e0322606ab2570cb8fd387954e0de9"}, + {file = "chardet-7.4.0.post2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5933289313b8cbfb0d07cf44583a2a6c7e31bffe5dcb7ebb6592825aa197d5b0"}, + {file = "chardet-7.4.0.post2-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:2b99b417fac30641429829666ee7331366e797863504260aa1b18bfc2020e4e3"}, + {file = "chardet-7.4.0.post2-cp312-cp312-win_amd64.whl", hash = "sha256:a07dc1257fef2685dfc5182229abccd3f9b1299006a5b4d43ac7bd252faa1118"}, + {file = "chardet-7.4.0.post2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9bdb9387e692dd53c837aa922f676e5ab51209895cd99b15d30c6004418e0d27"}, + {file = "chardet-7.4.0.post2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:422ac637f5a2a8b13151245591cb0fabdf9ec1427725f0560628cb5ad4fb1462"}, + {file = "chardet-7.4.0.post2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7d52b3f15249ba877030045900d179d44552c3c37dda487462be473ec67bed2f"}, + {file = "chardet-7.4.0.post2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccdfb13b4a727d3d944157c7f350c6d64630511a0ce39e37ffa5114e90f7d3a7"}, + {file = "chardet-7.4.0.post2-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:daae5b0579e7e33adacb4722a62b540e6bec49944e081a859cb9a6a010713817"}, + {file = "chardet-7.4.0.post2-cp313-cp313-win_amd64.whl", hash = "sha256:6c448fe2d77e329cec421b95f844b75f8c9cb744e808ecc9124b6063ca6acb5e"}, + {file = "chardet-7.4.0.post2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:5862b17677f7e8fcee4e37fe641f01d30762e4b075ac37ce9584e4407896e2d9"}, + {file = "chardet-7.4.0.post2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:22d05c4b7e721d5330d99ef4a6f6233a9de58ae6f2275c21a098bedd778a6cb7"}, + {file = "chardet-7.4.0.post2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a035d407f762c21eb77069982425eb403e518dd758617aa43bf11d0d2203a1b6"}, + {file = "chardet-7.4.0.post2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2adfa7390e69cb5ed499b54978d31f6d476788d07d83da3426811181b7ca7682"}, + {file = "chardet-7.4.0.post2-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:2345f20ea67cdadddb778b2bc31e2defc2a85ae027931f9ad6ab84fd5d345320"}, + {file = "chardet-7.4.0.post2-cp314-cp314-win_amd64.whl", hash = "sha256:52602972d4815047cee262551bc383ab394aa145f5ca9ee10d0a53d27965882e"}, + {file = "chardet-7.4.0.post2-py3-none-any.whl", hash = "sha256:e0c9c6b5c296c0e5197bc8876fcc04d58a6ddfba18399e598ba353aba28b038e"}, + {file = "chardet-7.4.0.post2.tar.gz", hash = "sha256:21a6b5ca695252c03385dcfcc8b55c27907f1fe80838aa171b1ff4e356a1bb67"}, +] + [[package]] name = "charset-normalizer" version = "3.4.0" @@ -778,6 +897,40 @@ files = [ docs = ["ipython", "matplotlib", "numpydoc", "sphinx"] tests = ["pytest", "pytest-cov", "pytest-xdist"] +[[package]] +name = "datamodel-code-generator" +version = "0.54.0" +description = "Datamodel Code Generator" +optional = false +python-versions = ">=3.10" +groups = ["dev"] +files = [ + {file = "datamodel_code_generator-0.54.0-py3-none-any.whl", hash = "sha256:3156df7a7e8fa5a7c9a6d50836e5ba5abe0532f6b71eee6d73a0c8e1fb5b7e47"}, + {file = "datamodel_code_generator-0.54.0.tar.gz", hash = "sha256:2b183598d049e265146a8224c35d1bb96a80a641ea8ecd2a82e6a0e97b56da6b"}, +] + +[package.dependencies] +argcomplete = ">=2.10.1,<4" +black = ">=19.10b0" +genson = ">=1.2.1,<2" +httpx = {version = ">=0.24.1", optional = true, markers = "extra == \"http\""} +inflect = ">=4.1,<8" +isort = ">=4.3.21,<8" +jinja2 = ">=2.10.1,<4" +packaging = "*" +pydantic = ">=1.5" +pyyaml = ">=6.0.1" +tomli = {version = ">=2.2.1,<3", markers = "python_version <= \"3.11\""} + +[package.extras] +all = ["graphql-core (>=3.2.3)", "httpx (>=0.24.1)", "openapi-spec-validator (>=0.2.8,<0.8)", "prance (>=0.18.2)", "pysnooper (>=0.4.1,<2)", "ruff (>=0.9.10)", "watchfiles (>=1.1)"] +debug = ["pysnooper (>=0.4.1,<2)"] +graphql = ["graphql-core (>=3.2.3)"] +http = ["httpx (>=0.24.1)"] +ruff = ["ruff (>=0.9.10)"] +validation = ["openapi-spec-validator (>=0.2.8,<0.8)", "prance (>=0.18.2)"] +watch = ["watchfiles (>=1.1)"] + [[package]] name = "dateparser" version = "1.2.0" @@ -914,26 +1067,89 @@ files = [ ] [[package]] -name = "elasticsearch" -version = "7.16.2" -description = "Python client for Elasticsearch" +name = "dotenv" +version = "0.9.9" +description = "Deprecated package" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4" +python-versions = "*" groups = ["main"] files = [ - {file = "elasticsearch-7.16.2-py2.py3-none-any.whl", hash = "sha256:c05aa792a52b1e6ad9d226340dc19165c4a491ac48fbd91af51ec839bf953210"}, - {file = "elasticsearch-7.16.2.tar.gz", hash = "sha256:23ac0afb4398c48990e359ac73ab6963741bd05321345299c62d9d23e209eee2"}, + {file = "dotenv-0.9.9-py2.py3-none-any.whl", hash = "sha256:29cf74a087b31dafdb5a446b6d7e11cbce8ed2741540e2339c69fbef92c94ce9"}, ] [package.dependencies] -certifi = "*" -urllib3 = ">=1.21.1,<2" +python-dotenv = "*" + +[[package]] +name = "duckdb" +version = "1.4.4" +description = "DuckDB in-process database" +optional = false +python-versions = ">=3.9.0" +groups = ["main"] +files = [ + {file = "duckdb-1.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e870a441cb1c41d556205deb665749f26347ed13b3a247b53714f5d589596977"}, + {file = "duckdb-1.4.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:49123b579e4a6323e65139210cd72dddc593a72d840211556b60f9703bda8526"}, + {file = "duckdb-1.4.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5e1933fac5293fea5926b0ee75a55b8cfe7f516d867310a5b251831ab61fe62b"}, + {file = "duckdb-1.4.4-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:707530f6637e91dc4b8125260595299ec9dd157c09f5d16c4186c5988bfbd09a"}, + {file = "duckdb-1.4.4-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:453b115f4777467f35103d8081770ac2f223fb5799178db5b06186e3ab51d1f2"}, + {file = "duckdb-1.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:a3c8542db7ffb128aceb7f3b35502ebaddcd4f73f1227569306cc34bad06680c"}, + {file = "duckdb-1.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5ba684f498d4e924c7e8f30dd157da8da34c8479746c5011b6c0e037e9c60ad2"}, + {file = "duckdb-1.4.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5536eb952a8aa6ae56469362e344d4e6403cc945a80bc8c5c2ebdd85d85eb64b"}, + {file = "duckdb-1.4.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:47dd4162da6a2be59a0aef640eb08d6360df1cf83c317dcc127836daaf3b7f7c"}, + {file = "duckdb-1.4.4-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6cb357cfa3403910e79e2eb46c8e445bb1ee2fd62e9e9588c6b999df4256abc1"}, + {file = "duckdb-1.4.4-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c25d5b0febda02b7944e94fdae95aecf952797afc8cb920f677b46a7c251955"}, + {file = "duckdb-1.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:6703dd1bb650025b3771552333d305d62ddd7ff182de121483d4e042ea6e2e00"}, + {file = "duckdb-1.4.4-cp311-cp311-win_arm64.whl", hash = "sha256:bf138201f56e5d6fc276a25138341b3523e2f84733613fc43f02c54465619a95"}, + {file = "duckdb-1.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ddcfd9c6ff234da603a1edd5fd8ae6107f4d042f74951b65f91bc5e2643856b3"}, + {file = "duckdb-1.4.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6792ca647216bd5c4ff16396e4591cfa9b4a72e5ad7cdd312cec6d67e8431a7c"}, + {file = "duckdb-1.4.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1f8d55843cc940e36261689054f7dfb6ce35b1f5b0953b0d355b6adb654b0d52"}, + {file = "duckdb-1.4.4-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c65d15c440c31e06baaebfd2c06d71ce877e132779d309f1edf0a85d23c07e92"}, + {file = "duckdb-1.4.4-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b297eff642503fd435a9de5a9cb7db4eccb6f61d61a55b30d2636023f149855f"}, + {file = "duckdb-1.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:d525de5f282b03aa8be6db86b1abffdceae5f1055113a03d5b50cd2fb8cf2ef8"}, + {file = "duckdb-1.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:50f2eb173c573811b44aba51176da7a4e5c487113982be6a6a1c37337ec5fa57"}, + {file = "duckdb-1.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:337f8b24e89bc2e12dadcfe87b4eb1c00fd920f68ab07bc9b70960d6523b8bc3"}, + {file = "duckdb-1.4.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0509b39ea7af8cff0198a99d206dca753c62844adab54e545984c2e2c1381616"}, + {file = "duckdb-1.4.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:fb94de6d023de9d79b7edc1ae07ee1d0b4f5fa8a9dcec799650b5befdf7aafec"}, + {file = "duckdb-1.4.4-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0d636ceda422e7babd5e2f7275f6a0d1a3405e6a01873f00d38b72118d30c10b"}, + {file = "duckdb-1.4.4-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7df7351328ffb812a4a289732f500d621e7de9942a3a2c9b6d4afcf4c0e72526"}, + {file = "duckdb-1.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:6fb1225a9ea5877421481d59a6c556a9532c32c16c7ae6ca8d127e2b878c9389"}, + {file = "duckdb-1.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:f28a18cc790217e5b347bb91b2cab27aafc557c58d3d8382e04b4fe55d0c3f66"}, + {file = "duckdb-1.4.4-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:25874f8b1355e96178079e37312c3ba6d61a2354f51319dae860cf21335c3a20"}, + {file = "duckdb-1.4.4-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:452c5b5d6c349dc5d1154eb2062ee547296fcbd0c20e9df1ed00b5e1809089da"}, + {file = "duckdb-1.4.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:8e5c2d8a0452df55e092959c0bfc8ab8897ac3ea0f754cb3b0ab3e165cd79aff"}, + {file = "duckdb-1.4.4-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1af6e76fe8bd24875dc56dd8e38300d64dc708cd2e772f67b9fbc635cc3066a3"}, + {file = "duckdb-1.4.4-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d0440f59e0cd9936a9ebfcf7a13312eda480c79214ffed3878d75947fc3b7d6d"}, + {file = "duckdb-1.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:59c8d76016dde854beab844935b1ec31de358d4053e792988108e995b18c08e7"}, + {file = "duckdb-1.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:53cd6423136ab44383ec9955aefe7599b3fb3dd1fe006161e6396d8167e0e0d4"}, + {file = "duckdb-1.4.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8097201bc5fd0779d7fcc2f3f4736c349197235f4cb7171622936343a1aa8dbf"}, + {file = "duckdb-1.4.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:cd1be3d48577f5b40eb9706c6b2ae10edfe18e78eb28e31a3b922dcff1183597"}, + {file = "duckdb-1.4.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e041f2fbd6888da090eca96ac167a7eb62d02f778385dd9155ed859f1c6b6dc8"}, + {file = "duckdb-1.4.4-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7eec0bf271ac622e57b7f6554a27a6e7d1dd2f43d1871f7962c74bcbbede15ba"}, + {file = "duckdb-1.4.4-cp39-cp39-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5cdc4126ec925edf3112bc656ac9ed23745294b854935fa7a643a216e4455af6"}, + {file = "duckdb-1.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:c9566a4ed834ec7999db5849f53da0a7ee83d86830c33f471bf0211a1148ca12"}, + {file = "duckdb-1.4.4.tar.gz", hash = "sha256:8bba52fd2acb67668a4615ee17ee51814124223de836d9e2fdcbc4c9021b3d3c"}, +] [package.extras] -async = ["aiohttp (>=3,<4)"] -develop = ["black", "coverage", "jinja2", "mock", "pytest", "pytest-cov", "pyyaml", "requests (>=2.0.0,<3.0.0)", "sphinx (<1.7)", "sphinx-rtd-theme"] -docs = ["sphinx (<1.7)", "sphinx-rtd-theme"] -requests = ["requests (>=2.4.0,<3.0.0)"] +all = ["adbc-driver-manager", "fsspec", "ipython", "numpy", "pandas", "pyarrow"] + +[[package]] +name = "duckdb-engine" +version = "0.17.0" +description = "SQLAlchemy driver for duckdb" +optional = false +python-versions = "<4,>=3.9" +groups = ["main"] +files = [ + {file = "duckdb_engine-0.17.0-py3-none-any.whl", hash = "sha256:3aa72085e536b43faab635f487baf77ddc5750069c16a2f8d9c6c3cb6083e979"}, + {file = "duckdb_engine-0.17.0.tar.gz", hash = "sha256:396b23869754e536aa80881a92622b8b488015cf711c5a40032d05d2cf08f3cf"}, +] + +[package.dependencies] +duckdb = ">=0.5.0" +packaging = ">=21" +sqlalchemy = ">=1.3.22" [[package]] name = "exceptiongroup" @@ -941,7 +1157,7 @@ version = "1.2.2" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" -groups = ["dev", "docs"] +groups = ["main", "dev", "docs"] markers = "python_version == \"3.10\"" files = [ {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, @@ -1235,6 +1451,18 @@ files = [ {file = "future-1.0.0.tar.gz", hash = "sha256:bd2968309307861edae1458a4f8a4f3598c03be43b97521076aebf5d94c07b05"}, ] +[[package]] +name = "genson" +version = "1.3.0" +description = "GenSON is a powerful, user-friendly JSON Schema generator." +optional = false +python-versions = "*" +groups = ["dev"] +files = [ + {file = "genson-1.3.0-py3-none-any.whl", hash = "sha256:468feccd00274cc7e4c09e84b08704270ba8d95232aa280f65b986139cec67f7"}, + {file = "genson-1.3.0.tar.gz", hash = "sha256:e02db9ac2e3fd29e65b5286f7135762e2cd8a986537c075b06fc5f1517308e37"}, +] + [[package]] name = "geocoder" version = "1.38.1" @@ -1254,13 +1482,81 @@ ratelim = "*" requests = "*" six = "*" +[[package]] +name = "greenlet" +version = "3.3.2" +description = "Lightweight in-process concurrent programming" +optional = false +python-versions = ">=3.10" +groups = ["main"] +markers = "platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\"" +files = [ + {file = "greenlet-3.3.2-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:9bc885b89709d901859cf95179ec9f6bb67a3d2bb1f0e88456461bd4b7f8fd0d"}, + {file = "greenlet-3.3.2-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b568183cf65b94919be4438dc28416b234b678c608cafac8874dfeeb2a9bbe13"}, + {file = "greenlet-3.3.2-cp310-cp310-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:527fec58dc9f90efd594b9b700662ed3fb2493c2122067ac9c740d98080a620e"}, + {file = "greenlet-3.3.2-cp310-cp310-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:508c7f01f1791fbc8e011bd508f6794cb95397fdb198a46cb6635eb5b78d85a7"}, + {file = "greenlet-3.3.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ad0c8917dd42a819fe77e6bdfcb84e3379c0de956469301d9fd36427a1ca501f"}, + {file = "greenlet-3.3.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:97245cc10e5515dbc8c3104b2928f7f02b6813002770cfaffaf9a6e0fc2b94ef"}, + {file = "greenlet-3.3.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8c1fdd7d1b309ff0da81d60a9688a8bd044ac4e18b250320a96fc68d31c209ca"}, + {file = "greenlet-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:5d0e35379f93a6d0222de929a25ab47b5eb35b5ef4721c2b9cbcc4036129ff1f"}, + {file = "greenlet-3.3.2-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:c56692189a7d1c7606cb794be0a8381470d95c57ce5be03fb3d0ef57c7853b86"}, + {file = "greenlet-3.3.2-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ebd458fa8285960f382841da585e02201b53a5ec2bac6b156fc623b5ce4499f"}, + {file = "greenlet-3.3.2-cp311-cp311-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a443358b33c4ec7b05b79a7c8b466f5d275025e750298be7340f8fc63dff2a55"}, + {file = "greenlet-3.3.2-cp311-cp311-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4375a58e49522698d3e70cc0b801c19433021b5c37686f7ce9c65b0d5c8677d2"}, + {file = "greenlet-3.3.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e2cd90d413acbf5e77ae41e5d3c9b3ac1d011a756d7284d7f3f2b806bbd6358"}, + {file = "greenlet-3.3.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:442b6057453c8cb29b4fb36a2ac689382fc71112273726e2423f7f17dc73bf99"}, + {file = "greenlet-3.3.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:45abe8eb6339518180d5a7fa47fa01945414d7cca5ecb745346fc6a87d2750be"}, + {file = "greenlet-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:1e692b2dae4cc7077cbb11b47d258533b48c8fde69a33d0d8a82e2fe8d8531d5"}, + {file = "greenlet-3.3.2-cp311-cp311-win_arm64.whl", hash = "sha256:02b0a8682aecd4d3c6c18edf52bc8e51eacdd75c8eac52a790a210b06aa295fd"}, + {file = "greenlet-3.3.2-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:ac8d61d4343b799d1e526db579833d72f23759c71e07181c2d2944e429eb09cd"}, + {file = "greenlet-3.3.2-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3ceec72030dae6ac0c8ed7591b96b70410a8be370b6a477b1dbc072856ad02bd"}, + {file = "greenlet-3.3.2-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a2a5be83a45ce6188c045bcc44b0ee037d6a518978de9a5d97438548b953a1ac"}, + {file = "greenlet-3.3.2-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ae9e21c84035c490506c17002f5c8ab25f980205c3e61ddb3a2a2a2e6c411fcb"}, + {file = "greenlet-3.3.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43e99d1749147ac21dde49b99c9abffcbc1e2d55c67501465ef0930d6e78e070"}, + {file = "greenlet-3.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4c956a19350e2c37f2c48b336a3afb4bff120b36076d9d7fb68cb44e05d95b79"}, + {file = "greenlet-3.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6c6f8ba97d17a1e7d664151284cb3315fc5f8353e75221ed4324f84eb162b395"}, + {file = "greenlet-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:34308836d8370bddadb41f5a7ce96879b72e2fdfb4e87729330c6ab52376409f"}, + {file = "greenlet-3.3.2-cp312-cp312-win_arm64.whl", hash = "sha256:d3a62fa76a32b462a97198e4c9e99afb9ab375115e74e9a83ce180e7a496f643"}, + {file = "greenlet-3.3.2-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:aa6ac98bdfd716a749b84d4034486863fd81c3abde9aa3cf8eff9127981a4ae4"}, + {file = "greenlet-3.3.2-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ab0c7e7901a00bc0a7284907273dc165b32e0d109a6713babd04471327ff7986"}, + {file = "greenlet-3.3.2-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d248d8c23c67d2291ffd47af766e2a3aa9fa1c6703155c099feb11f526c63a92"}, + {file = "greenlet-3.3.2-cp313-cp313-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ccd21bb86944ca9be6d967cf7691e658e43417782bce90b5d2faeda0ff78a7dd"}, + {file = "greenlet-3.3.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b6997d360a4e6a4e936c0f9625b1c20416b8a0ea18a8e19cabbefc712e7397ab"}, + {file = "greenlet-3.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:64970c33a50551c7c50491671265d8954046cb6e8e2999aacdd60e439b70418a"}, + {file = "greenlet-3.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1a9172f5bf6bd88e6ba5a84e0a68afeac9dc7b6b412b245dd64f52d83c81e55b"}, + {file = "greenlet-3.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:a7945dd0eab63ded0a48e4dcade82939783c172290a7903ebde9e184333ca124"}, + {file = "greenlet-3.3.2-cp313-cp313-win_arm64.whl", hash = "sha256:394ead29063ee3515b4e775216cb756b2e3b4a7e55ae8fd884f17fa579e6b327"}, + {file = "greenlet-3.3.2-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:8d1658d7291f9859beed69a776c10822a0a799bc4bfe1bd4272bb60e62507dab"}, + {file = "greenlet-3.3.2-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:18cb1b7337bca281915b3c5d5ae19f4e76d35e1df80f4ad3c1a7be91fadf1082"}, + {file = "greenlet-3.3.2-cp314-cp314-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c2e47408e8ce1c6f1ceea0dffcdf6ebb85cc09e55c7af407c99f1112016e45e9"}, + {file = "greenlet-3.3.2-cp314-cp314-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e3cb43ce200f59483eb82949bf1835a99cf43d7571e900d7c8d5c62cdf25d2f9"}, + {file = "greenlet-3.3.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:63d10328839d1973e5ba35e98cccbca71b232b14051fd957b6f8b6e8e80d0506"}, + {file = "greenlet-3.3.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:8e4ab3cfb02993c8cc248ea73d7dae6cec0253e9afa311c9b37e603ca9fad2ce"}, + {file = "greenlet-3.3.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:94ad81f0fd3c0c0681a018a976e5c2bd2ca2d9d94895f23e7bb1af4e8af4e2d5"}, + {file = "greenlet-3.3.2-cp314-cp314-win_amd64.whl", hash = "sha256:8c4dd0f3997cf2512f7601563cc90dfb8957c0cff1e3a1b23991d4ea1776c492"}, + {file = "greenlet-3.3.2-cp314-cp314-win_arm64.whl", hash = "sha256:cd6f9e2bbd46321ba3bbb4c8a15794d32960e3b0ae2cc4d49a1a53d314805d71"}, + {file = "greenlet-3.3.2-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:e26e72bec7ab387ac80caa7496e0f908ff954f31065b0ffc1f8ecb1338b11b54"}, + {file = "greenlet-3.3.2-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8b466dff7a4ffda6ca975979bab80bdadde979e29fc947ac3be4451428d8b0e4"}, + {file = "greenlet-3.3.2-cp314-cp314t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b8bddc5b73c9720bea487b3bffdb1840fe4e3656fba3bd40aa1489e9f37877ff"}, + {file = "greenlet-3.3.2-cp314-cp314t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:59b3e2c40f6706b05a9cd299c836c6aa2378cabe25d021acd80f13abf81181cf"}, + {file = "greenlet-3.3.2-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b26b0f4428b871a751968285a1ac9648944cea09807177ac639b030bddebcea4"}, + {file = "greenlet-3.3.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:1fb39a11ee2e4d94be9a76671482be9398560955c9e568550de0224e41104727"}, + {file = "greenlet-3.3.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:20154044d9085151bc309e7689d6f7ba10027f8f5a8c0676ad398b951913d89e"}, + {file = "greenlet-3.3.2-cp314-cp314t-win_amd64.whl", hash = "sha256:c04c5e06ec3e022cbfe2cd4a846e1d4e50087444f875ff6d2c2ad8445495cf1a"}, + {file = "greenlet-3.3.2.tar.gz", hash = "sha256:2eaf067fc6d886931c7962e8c6bede15d2f01965560f3359b27c80bde2d151f2"}, +] + +[package.extras] +docs = ["Sphinx", "furo"] +test = ["objgraph", "psutil", "setuptools"] + [[package]] name = "h11" version = "0.14.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" optional = false python-versions = ">=3.7" -groups = ["docs"] +groups = ["dev", "docs"] files = [ {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, @@ -1272,7 +1568,7 @@ version = "1.0.7" description = "A minimal low-level HTTP client." optional = false python-versions = ">=3.8" -groups = ["docs"] +groups = ["dev", "docs"] files = [ {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"}, {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"}, @@ -1294,7 +1590,7 @@ version = "0.27.2" description = "The next generation HTTP client." optional = false python-versions = ">=3.8" -groups = ["docs"] +groups = ["dev", "docs"] files = [ {file = "httpx-0.27.2-py3-none-any.whl", hash = "sha256:7bb2708e112d8fdd7829cd4243970f0c223274051cb35ee80c03301ee29a3df0"}, {file = "httpx-0.27.2.tar.gz", hash = "sha256:f7c2be1d2f3c3c3160d441802406b206c2b76f5947b11115e6df10c6c65e66c2"}, @@ -1350,7 +1646,7 @@ version = "3.10" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.6" -groups = ["dev", "docs", "geo"] +groups = ["main", "dev", "docs", "geo"] files = [ {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, @@ -1371,6 +1667,30 @@ files = [ {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, ] +[[package]] +name = "inflect" +version = "7.5.0" +description = "Correctly generate plurals, singular nouns, ordinals, indefinite articles" +optional = false +python-versions = ">=3.9" +groups = ["dev"] +files = [ + {file = "inflect-7.5.0-py3-none-any.whl", hash = "sha256:2aea70e5e70c35d8350b8097396ec155ffd68def678c7ff97f51aa69c1d92344"}, + {file = "inflect-7.5.0.tar.gz", hash = "sha256:faf19801c3742ed5a05a8ce388e0d8fe1a07f8d095c82201eb904f5d27ad571f"}, +] + +[package.dependencies] +more_itertools = ">=8.5.0" +typeguard = ">=4.0.1" + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["pygments", "pytest (>=6,!=8.1.*)"] +type = ["pytest-mypy"] + [[package]] name = "iniconfig" version = "2.0.0" @@ -1524,6 +1844,18 @@ MarkupSafe = ">=2.0" [package.extras] i18n = ["Babel (>=2.7)"] +[[package]] +name = "jmespath" +version = "1.1.0" +description = "JSON Matching Expressions" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "jmespath-1.1.0-py3-none-any.whl", hash = "sha256:a5663118de4908c91729bea0acadca56526eb2698e83de10cd116ae0f4e97c64"}, + {file = "jmespath-1.1.0.tar.gz", hash = "sha256:472c87d80f36026ae83c6ddd0f1d05d4e510134ed462851fd5f754c8c3cbb88d"}, +] + [[package]] name = "json5" version = "0.9.28" @@ -1935,6 +2267,27 @@ files = [ {file = "kiwisolver-1.4.7.tar.gz", hash = "sha256:9893ff81bd7107f7b685d3017cc6583daadb4fc26e4a888350df530e41980a60"}, ] +[[package]] +name = "linkify-it-py" +version = "2.1.0" +description = "Links recognition library with FULL unicode support." +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "linkify_it_py-2.1.0-py3-none-any.whl", hash = "sha256:0d252c1594ecba2ecedc444053db5d3a9b7ec1b0dd929c8f1d74dce89f86c05e"}, + {file = "linkify_it_py-2.1.0.tar.gz", hash = "sha256:43360231720999c10e9328dc3691160e27a718e280673d444c38d7d3aaa3b98b"}, +] + +[package.dependencies] +uc-micro-py = "*" + +[package.extras] +benchmark = ["pytest", "pytest-benchmark"] +dev = ["black", "flake8", "isort", "pre-commit", "pyproject-flake8"] +doc = ["myst-parser", "sphinx", "sphinx_book_theme"] +test = ["coverage", "pytest", "pytest-cov"] + [[package]] name = "loguru" version = "0.6.0" @@ -1954,6 +2307,31 @@ win32-setctime = {version = ">=1.0.0", markers = "sys_platform == \"win32\""} [package.extras] dev = ["Sphinx (>=4.1.1) ; python_version >= \"3.6\"", "black (>=19.10b0) ; python_version >= \"3.6\"", "colorama (>=0.3.4)", "docutils (==0.16)", "flake8 (>=3.7.7)", "isort (>=5.1.1) ; python_version >= \"3.6\"", "pytest (>=4.6.2)", "pytest-cov (>=2.7.1)", "sphinx-autobuild (>=0.7.1) ; python_version >= \"3.6\"", "sphinx-rtd-theme (>=0.4.3) ; python_version >= \"3.6\"", "tox (>=3.9.0)"] +[[package]] +name = "markdown-it-py" +version = "4.0.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147"}, + {file = "markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3"}, +] + +[package.dependencies] +linkify-it-py = {version = ">=1,<3", optional = true, markers = "extra == \"linkify\""} +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "markdown-it-pyrs", "mistletoe (>=1.0,<2.0)", "mistune (>=3.0,<4.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] +plugins = ["mdit-py-plugins (>=0.5.0)"] +profiling = ["gprof2dot"] +rtd = ["ipykernel", "jupyter_sphinx", "mdit-py-plugins (>=0.5.0)", "myst-parser", "pyyaml", "sphinx", "sphinx-book-theme (>=1.0,<2.0)", "sphinx-copybutton", "sphinx-design"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions", "requests"] + [[package]] name = "markupsafe" version = "3.0.2" @@ -2116,6 +2494,38 @@ files = [ {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, ] +[[package]] +name = "mdit-py-plugins" +version = "0.5.0" +description = "Collection of plugins for markdown-it-py" +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "mdit_py_plugins-0.5.0-py3-none-any.whl", hash = "sha256:07a08422fc1936a5d26d146759e9155ea466e842f5ab2f7d2266dd084c8dab1f"}, + {file = "mdit_py_plugins-0.5.0.tar.gz", hash = "sha256:f4918cb50119f50446560513a8e311d574ff6aaed72606ddae6d35716fe809c6"}, +] + +[package.dependencies] +markdown-it-py = ">=2.0.0,<5.0.0" + +[package.extras] +code-style = ["pre-commit"] +rtd = ["myst-parser", "sphinx-book-theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +optional = false +python-versions = ">=3.7" +groups = ["main"] +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] + [[package]] name = "mistune" version = "3.0.2" @@ -2128,6 +2538,18 @@ files = [ {file = "mistune-3.0.2.tar.gz", hash = "sha256:fc7f93ded930c92394ef2cb6f04a8aabab4117a91449e72dcc8dfa646a508be8"}, ] +[[package]] +name = "more-itertools" +version = "10.8.0" +description = "More routines for operating on iterables, beyond itertools" +optional = false +python-versions = ">=3.9" +groups = ["dev"] +files = [ + {file = "more_itertools-10.8.0-py3-none-any.whl", hash = "sha256:52d4362373dcf7c52546bc4af9a86ee7c4579df9a8dc268be0a2f949d376cc9b"}, + {file = "more_itertools-10.8.0.tar.gz", hash = "sha256:f638ddf8a1a0d134181275fb5d58b086ead7c6a72429ad725c67503f13ba30bd"}, +] + [[package]] name = "mypy-extensions" version = "1.0.0" @@ -2697,7 +3119,7 @@ version = "4.3.6" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.8" -groups = ["dev", "docs"] +groups = ["main", "dev", "docs"] files = [ {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, @@ -2910,6 +3332,163 @@ files = [ {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, ] +markers = {main = "extra == \"dbc\"", dev = "implementation_name == \"pypy\" or extra == \"dbc\""} + +[[package]] +name = "pydantic" +version = "2.12.5" +description = "Data validation using Python type hints" +optional = false +python-versions = ">=3.9" +groups = ["main", "dev"] +files = [ + {file = "pydantic-2.12.5-py3-none-any.whl", hash = "sha256:e561593fccf61e8a20fc46dfc2dfe075b8be7d0188df33f221ad1f0139180f9d"}, + {file = "pydantic-2.12.5.tar.gz", hash = "sha256:4d351024c75c0f085a9febbb665ce8c0c6ec5d30e903bdb6394b7ede26aebb49"}, +] + +[package.dependencies] +annotated-types = ">=0.6.0" +pydantic-core = "2.41.5" +typing-extensions = ">=4.14.1" +typing-inspection = ">=0.4.2" + +[package.extras] +email = ["email-validator (>=2.0.0)"] +timezone = ["tzdata ; python_version >= \"3.9\" and platform_system == \"Windows\""] + +[[package]] +name = "pydantic-core" +version = "2.41.5" +description = "Core functionality for Pydantic validation and serialization" +optional = false +python-versions = ">=3.9" +groups = ["main", "dev"] +files = [ + {file = "pydantic_core-2.41.5-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:77b63866ca88d804225eaa4af3e664c5faf3568cea95360d21f4725ab6e07146"}, + {file = "pydantic_core-2.41.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dfa8a0c812ac681395907e71e1274819dec685fec28273a28905df579ef137e2"}, + {file = "pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5921a4d3ca3aee735d9fd163808f5e8dd6c6972101e4adbda9a4667908849b97"}, + {file = "pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e25c479382d26a2a41b7ebea1043564a937db462816ea07afa8a44c0866d52f9"}, + {file = "pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f547144f2966e1e16ae626d8ce72b4cfa0caedc7fa28052001c94fb2fcaa1c52"}, + {file = "pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f52298fbd394f9ed112d56f3d11aabd0d5bd27beb3084cc3d8ad069483b8941"}, + {file = "pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:100baa204bb412b74fe285fb0f3a385256dad1d1879f0a5cb1499ed2e83d132a"}, + {file = "pydantic_core-2.41.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:05a2c8852530ad2812cb7914dc61a1125dc4e06252ee98e5638a12da6cc6fb6c"}, + {file = "pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:29452c56df2ed968d18d7e21f4ab0ac55e71dc59524872f6fc57dcf4a3249ed2"}, + {file = "pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:d5160812ea7a8a2ffbe233d8da666880cad0cbaf5d4de74ae15c313213d62556"}, + {file = "pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:df3959765b553b9440adfd3c795617c352154e497a4eaf3752555cfb5da8fc49"}, + {file = "pydantic_core-2.41.5-cp310-cp310-win32.whl", hash = "sha256:1f8d33a7f4d5a7889e60dc39856d76d09333d8a6ed0f5f1190635cbec70ec4ba"}, + {file = "pydantic_core-2.41.5-cp310-cp310-win_amd64.whl", hash = "sha256:62de39db01b8d593e45871af2af9e497295db8d73b085f6bfd0b18c83c70a8f9"}, + {file = "pydantic_core-2.41.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:a3a52f6156e73e7ccb0f8cced536adccb7042be67cb45f9562e12b319c119da6"}, + {file = "pydantic_core-2.41.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7f3bf998340c6d4b0c9a2f02d6a400e51f123b59565d74dc60d252ce888c260b"}, + {file = "pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:378bec5c66998815d224c9ca994f1e14c0c21cb95d2f52b6021cc0b2a58f2a5a"}, + {file = "pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e7b576130c69225432866fe2f4a469a85a54ade141d96fd396dffcf607b558f8"}, + {file = "pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6cb58b9c66f7e4179a2d5e0f849c48eff5c1fca560994d6eb6543abf955a149e"}, + {file = "pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:88942d3a3dff3afc8288c21e565e476fc278902ae4d6d134f1eeda118cc830b1"}, + {file = "pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f31d95a179f8d64d90f6831d71fa93290893a33148d890ba15de25642c5d075b"}, + {file = "pydantic_core-2.41.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c1df3d34aced70add6f867a8cf413e299177e0c22660cc767218373d0779487b"}, + {file = "pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:4009935984bd36bd2c774e13f9a09563ce8de4abaa7226f5108262fa3e637284"}, + {file = "pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:34a64bc3441dc1213096a20fe27e8e128bd3ff89921706e83c0b1ac971276594"}, + {file = "pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c9e19dd6e28fdcaa5a1de679aec4141f691023916427ef9bae8584f9c2fb3b0e"}, + {file = "pydantic_core-2.41.5-cp311-cp311-win32.whl", hash = "sha256:2c010c6ded393148374c0f6f0bf89d206bf3217f201faa0635dcd56bd1520f6b"}, + {file = "pydantic_core-2.41.5-cp311-cp311-win_amd64.whl", hash = "sha256:76ee27c6e9c7f16f47db7a94157112a2f3a00e958bc626e2f4ee8bec5c328fbe"}, + {file = "pydantic_core-2.41.5-cp311-cp311-win_arm64.whl", hash = "sha256:4bc36bbc0b7584de96561184ad7f012478987882ebf9f9c389b23f432ea3d90f"}, + {file = "pydantic_core-2.41.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f41a7489d32336dbf2199c8c0a215390a751c5b014c2c1c5366e817202e9cdf7"}, + {file = "pydantic_core-2.41.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:070259a8818988b9a84a449a2a7337c7f430a22acc0859c6b110aa7212a6d9c0"}, + {file = "pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e96cea19e34778f8d59fe40775a7a574d95816eb150850a85a7a4c8f4b94ac69"}, + {file = "pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed2e99c456e3fadd05c991f8f437ef902e00eedf34320ba2b0842bd1c3ca3a75"}, + {file = "pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:65840751b72fbfd82c3c640cff9284545342a4f1eb1586ad0636955b261b0b05"}, + {file = "pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e536c98a7626a98feb2d3eaf75944ef6f3dbee447e1f841eae16f2f0a72d8ddc"}, + {file = "pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eceb81a8d74f9267ef4081e246ffd6d129da5d87e37a77c9bde550cb04870c1c"}, + {file = "pydantic_core-2.41.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d38548150c39b74aeeb0ce8ee1d8e82696f4a4e16ddc6de7b1d8823f7de4b9b5"}, + {file = "pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c23e27686783f60290e36827f9c626e63154b82b116d7fe9adba1fda36da706c"}, + {file = "pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:482c982f814460eabe1d3bb0adfdc583387bd4691ef00b90575ca0d2b6fe2294"}, + {file = "pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bfea2a5f0b4d8d43adf9d7b8bf019fb46fdd10a2e5cde477fbcb9d1fa08c68e1"}, + {file = "pydantic_core-2.41.5-cp312-cp312-win32.whl", hash = "sha256:b74557b16e390ec12dca509bce9264c3bbd128f8a2c376eaa68003d7f327276d"}, + {file = "pydantic_core-2.41.5-cp312-cp312-win_amd64.whl", hash = "sha256:1962293292865bca8e54702b08a4f26da73adc83dd1fcf26fbc875b35d81c815"}, + {file = "pydantic_core-2.41.5-cp312-cp312-win_arm64.whl", hash = "sha256:1746d4a3d9a794cacae06a5eaaccb4b8643a131d45fbc9af23e353dc0a5ba5c3"}, + {file = "pydantic_core-2.41.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:941103c9be18ac8daf7b7adca8228f8ed6bb7a1849020f643b3a14d15b1924d9"}, + {file = "pydantic_core-2.41.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:112e305c3314f40c93998e567879e887a3160bb8689ef3d2c04b6cc62c33ac34"}, + {file = "pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cbaad15cb0c90aa221d43c00e77bb33c93e8d36e0bf74760cd00e732d10a6a0"}, + {file = "pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:03ca43e12fab6023fc79d28ca6b39b05f794ad08ec2feccc59a339b02f2b3d33"}, + {file = "pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc799088c08fa04e43144b164feb0c13f9a0bc40503f8df3e9fde58a3c0c101e"}, + {file = "pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:97aeba56665b4c3235a0e52b2c2f5ae9cd071b8a8310ad27bddb3f7fb30e9aa2"}, + {file = "pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:406bf18d345822d6c21366031003612b9c77b3e29ffdb0f612367352aab7d586"}, + {file = "pydantic_core-2.41.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b93590ae81f7010dbe380cdeab6f515902ebcbefe0b9327cc4804d74e93ae69d"}, + {file = "pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:01a3d0ab748ee531f4ea6c3e48ad9dac84ddba4b0d82291f87248f2f9de8d740"}, + {file = "pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:6561e94ba9dacc9c61bce40e2d6bdc3bfaa0259d3ff36ace3b1e6901936d2e3e"}, + {file = "pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:915c3d10f81bec3a74fbd4faebe8391013ba61e5a1a8d48c4455b923bdda7858"}, + {file = "pydantic_core-2.41.5-cp313-cp313-win32.whl", hash = "sha256:650ae77860b45cfa6e2cdafc42618ceafab3a2d9a3811fcfbd3bbf8ac3c40d36"}, + {file = "pydantic_core-2.41.5-cp313-cp313-win_amd64.whl", hash = "sha256:79ec52ec461e99e13791ec6508c722742ad745571f234ea6255bed38c6480f11"}, + {file = "pydantic_core-2.41.5-cp313-cp313-win_arm64.whl", hash = "sha256:3f84d5c1b4ab906093bdc1ff10484838aca54ef08de4afa9de0f5f14d69639cd"}, + {file = "pydantic_core-2.41.5-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:3f37a19d7ebcdd20b96485056ba9e8b304e27d9904d233d7b1015db320e51f0a"}, + {file = "pydantic_core-2.41.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1d1d9764366c73f996edd17abb6d9d7649a7eb690006ab6adbda117717099b14"}, + {file = "pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25e1c2af0fce638d5f1988b686f3b3ea8cd7de5f244ca147c777769e798a9cd1"}, + {file = "pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:506d766a8727beef16b7adaeb8ee6217c64fc813646b424d0804d67c16eddb66"}, + {file = "pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4819fa52133c9aa3c387b3328f25c1facc356491e6135b459f1de698ff64d869"}, + {file = "pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b761d210c9ea91feda40d25b4efe82a1707da2ef62901466a42492c028553a2"}, + {file = "pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22f0fb8c1c583a3b6f24df2470833b40207e907b90c928cc8d3594b76f874375"}, + {file = "pydantic_core-2.41.5-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2782c870e99878c634505236d81e5443092fba820f0373997ff75f90f68cd553"}, + {file = "pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:0177272f88ab8312479336e1d777f6b124537d47f2123f89cb37e0accea97f90"}, + {file = "pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:63510af5e38f8955b8ee5687740d6ebf7c2a0886d15a6d65c32814613681bc07"}, + {file = "pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:e56ba91f47764cc14f1daacd723e3e82d1a89d783f0f5afe9c364b8bb491ccdb"}, + {file = "pydantic_core-2.41.5-cp314-cp314-win32.whl", hash = "sha256:aec5cf2fd867b4ff45b9959f8b20ea3993fc93e63c7363fe6851424c8a7e7c23"}, + {file = "pydantic_core-2.41.5-cp314-cp314-win_amd64.whl", hash = "sha256:8e7c86f27c585ef37c35e56a96363ab8de4e549a95512445b85c96d3e2f7c1bf"}, + {file = "pydantic_core-2.41.5-cp314-cp314-win_arm64.whl", hash = "sha256:e672ba74fbc2dc8eea59fb6d4aed6845e6905fc2a8afe93175d94a83ba2a01a0"}, + {file = "pydantic_core-2.41.5-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:8566def80554c3faa0e65ac30ab0932b9e3a5cd7f8323764303d468e5c37595a"}, + {file = "pydantic_core-2.41.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b80aa5095cd3109962a298ce14110ae16b8c1aece8b72f9dafe81cf597ad80b3"}, + {file = "pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3006c3dd9ba34b0c094c544c6006cc79e87d8612999f1a5d43b769b89181f23c"}, + {file = "pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:72f6c8b11857a856bcfa48c86f5368439f74453563f951e473514579d44aa612"}, + {file = "pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cb1b2f9742240e4bb26b652a5aeb840aa4b417c7748b6f8387927bc6e45e40d"}, + {file = "pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd3d54f38609ff308209bd43acea66061494157703364ae40c951f83ba99a1a9"}, + {file = "pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ff4321e56e879ee8d2a879501c8e469414d948f4aba74a2d4593184eb326660"}, + {file = "pydantic_core-2.41.5-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d0d2568a8c11bf8225044aa94409e21da0cb09dcdafe9ecd10250b2baad531a9"}, + {file = "pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:a39455728aabd58ceabb03c90e12f71fd30fa69615760a075b9fec596456ccc3"}, + {file = "pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:239edca560d05757817c13dc17c50766136d21f7cd0fac50295499ae24f90fdf"}, + {file = "pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:2a5e06546e19f24c6a96a129142a75cee553cc018ffee48a460059b1185f4470"}, + {file = "pydantic_core-2.41.5-cp314-cp314t-win32.whl", hash = "sha256:b4ececa40ac28afa90871c2cc2b9ffd2ff0bf749380fbdf57d165fd23da353aa"}, + {file = "pydantic_core-2.41.5-cp314-cp314t-win_amd64.whl", hash = "sha256:80aa89cad80b32a912a65332f64a4450ed00966111b6615ca6816153d3585a8c"}, + {file = "pydantic_core-2.41.5-cp314-cp314t-win_arm64.whl", hash = "sha256:35b44f37a3199f771c3eaa53051bc8a70cd7b54f333531c59e29fd4db5d15008"}, + {file = "pydantic_core-2.41.5-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:8bfeaf8735be79f225f3fefab7f941c712aaca36f1128c9d7e2352ee1aa87bdf"}, + {file = "pydantic_core-2.41.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:346285d28e4c8017da95144c7f3acd42740d637ff41946af5ce6e5e420502dd5"}, + {file = "pydantic_core-2.41.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a75dafbf87d6276ddc5b2bf6fae5254e3d0876b626eb24969a574fff9149ee5d"}, + {file = "pydantic_core-2.41.5-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7b93a4d08587e2b7e7882de461e82b6ed76d9026ce91ca7915e740ecc7855f60"}, + {file = "pydantic_core-2.41.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e8465ab91a4bd96d36dde3263f06caa6a8a6019e4113f24dc753d79a8b3a3f82"}, + {file = "pydantic_core-2.41.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:299e0a22e7ae2b85c1a57f104538b2656e8ab1873511fd718a1c1c6f149b77b5"}, + {file = "pydantic_core-2.41.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:707625ef0983fcfb461acfaf14de2067c5942c6bb0f3b4c99158bed6fedd3cf3"}, + {file = "pydantic_core-2.41.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f41eb9797986d6ebac5e8edff36d5cef9de40def462311b3eb3eeded1431e425"}, + {file = "pydantic_core-2.41.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0384e2e1021894b1ff5a786dbf94771e2986ebe2869533874d7e43bc79c6f504"}, + {file = "pydantic_core-2.41.5-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:f0cd744688278965817fd0839c4a4116add48d23890d468bc436f78beb28abf5"}, + {file = "pydantic_core-2.41.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:753e230374206729bf0a807954bcc6c150d3743928a73faffee51ac6557a03c3"}, + {file = "pydantic_core-2.41.5-cp39-cp39-win32.whl", hash = "sha256:873e0d5b4fb9b89ef7c2d2a963ea7d02879d9da0da8d9d4933dee8ee86a8b460"}, + {file = "pydantic_core-2.41.5-cp39-cp39-win_amd64.whl", hash = "sha256:e4f4a984405e91527a0d62649ee21138f8e3d0ef103be488c1dc11a80d7f184b"}, + {file = "pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:b96d5f26b05d03cc60f11a7761a5ded1741da411e7fe0909e27a5e6a0cb7b034"}, + {file = "pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:634e8609e89ceecea15e2d61bc9ac3718caaaa71963717bf3c8f38bfde64242c"}, + {file = "pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:93e8740d7503eb008aa2df04d3b9735f845d43ae845e6dcd2be0b55a2da43cd2"}, + {file = "pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f15489ba13d61f670dcc96772e733aad1a6f9c429cc27574c6cdaed82d0146ad"}, + {file = "pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:7da7087d756b19037bc2c06edc6c170eeef3c3bafcb8f532ff17d64dc427adfd"}, + {file = "pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:aabf5777b5c8ca26f7824cb4a120a740c9588ed58df9b2d196ce92fba42ff8dc"}, + {file = "pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c007fe8a43d43b3969e8469004e9845944f1a80e6acd47c150856bb87f230c56"}, + {file = "pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76d0819de158cd855d1cbb8fcafdf6f5cf1eb8e470abe056d5d161106e38062b"}, + {file = "pydantic_core-2.41.5-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b5819cd790dbf0c5eb9f82c73c16b39a65dd6dd4d1439dcdea7816ec9adddab8"}, + {file = "pydantic_core-2.41.5-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5a4e67afbc95fa5c34cf27d9089bca7fcab4e51e57278d710320a70b956d1b9a"}, + {file = "pydantic_core-2.41.5-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ece5c59f0ce7d001e017643d8d24da587ea1f74f6993467d85ae8a5ef9d4f42b"}, + {file = "pydantic_core-2.41.5-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:16f80f7abe3351f8ea6858914ddc8c77e02578544a0ebc15b4c2e1a0e813b0b2"}, + {file = "pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:33cb885e759a705b426baada1fe68cbb0a2e68e34c5d0d0289a364cf01709093"}, + {file = "pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:c8d8b4eb992936023be7dee581270af5c6e0697a8559895f527f5b7105ecd36a"}, + {file = "pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:242a206cd0318f95cd21bdacff3fcc3aab23e79bba5cac3db5a841c9ef9c6963"}, + {file = "pydantic_core-2.41.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d3a978c4f57a597908b7e697229d996d77a6d3c94901e9edee593adada95ce1a"}, + {file = "pydantic_core-2.41.5-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b2379fa7ed44ddecb5bfe4e48577d752db9fc10be00a6b7446e9663ba143de26"}, + {file = "pydantic_core-2.41.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:266fb4cbf5e3cbd0b53669a6d1b039c45e3ce651fd5442eff4d07c2cc8d66808"}, + {file = "pydantic_core-2.41.5-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58133647260ea01e4d0500089a8c4f07bd7aa6ce109682b1426394988d8aaacc"}, + {file = "pydantic_core-2.41.5-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:287dad91cfb551c363dc62899a80e9e14da1f0e2b6ebde82c806612ca2a13ef1"}, + {file = "pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:03b77d184b9eb40240ae9fd676ca364ce1085f203e1b1256f8ab9984dca80a84"}, + {file = "pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:a668ce24de96165bb239160b3d854943128f4334822900534f2fe947930e5770"}, + {file = "pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f14f8f046c14563f8eb3f45f499cc658ab8d10072961e07225e507adb700e93f"}, + {file = "pydantic_core-2.41.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:56121965f7a4dc965bff783d70b907ddf3d57f6eba29b6d2e5dabfaf07799c51"}, + {file = "pydantic_core-2.41.5.tar.gz", hash = "sha256:08daa51ea16ad373ffd5e7606252cc32f07bc72b28284b6bc9c6df804816476e"}, +] + +[package.dependencies] +typing-extensions = ">=4.14.1" [[package]] name = "pyflakes" @@ -2925,14 +3504,14 @@ files = [ [[package]] name = "pygments" -version = "2.18.0" +version = "2.20.0" description = "Pygments is a syntax highlighting package written in Python." optional = false -python-versions = ">=3.8" -groups = ["dev", "docs"] +python-versions = ">=3.9" +groups = ["main", "dev", "docs"] files = [ - {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, - {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, + {file = "pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176"}, + {file = "pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f"}, ] [package.extras] @@ -2957,9 +3536,10 @@ diagrams = ["jinja2", "railroad-diagrams"] name = "pyreaddbc" version = "1.2.0" description = "pyreaddbc package" -optional = false +optional = true python-versions = ">=3.9,<4" groups = ["main"] +markers = "extra == \"dbc\"" files = [ {file = "pyreaddbc-1.2.0-cp311-cp311-manylinux_2_37_x86_64.whl", hash = "sha256:48446cbd497da0b4ec2ad272c050cfad366844af5da8fd7113851c8856e40ace"}, {file = "pyreaddbc-1.2.0.tar.gz", hash = "sha256:5a4733ceeeec2409829e281e738d69e063f5dbdd38b05fb6254d7e8454a0fe80"}, @@ -2994,6 +3574,27 @@ tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] +[[package]] +name = "pytest-asyncio" +version = "1.3.0" +description = "Pytest support for asyncio" +optional = false +python-versions = ">=3.10" +groups = ["dev"] +files = [ + {file = "pytest_asyncio-1.3.0-py3-none-any.whl", hash = "sha256:611e26147c7f77640e6d0a92a38ed17c3e9848063698d5c93d5aa7aa11cebff5"}, + {file = "pytest_asyncio-1.3.0.tar.gz", hash = "sha256:d7f52f36d231b80ee124cd216ffb19369aa168fc10095013c6b014a34d3ee9e5"}, +] + +[package.dependencies] +backports-asyncio-runner = {version = ">=1.1,<2", markers = "python_version < \"3.11\""} +pytest = ">=8.2,<10" +typing-extensions = {version = ">=4.12", markers = "python_version < \"3.13\""} + +[package.extras] +docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1)"] +testing = ["coverage (>=6.2)", "hypothesis (>=5.7.1)"] + [[package]] name = "pytest-retry" version = "1.7.0" @@ -3042,6 +3643,21 @@ files = [ [package.dependencies] six = ">=1.5" +[[package]] +name = "python-dotenv" +version = "1.2.2" +description = "Read key-value pairs from a .env file and set them as environment variables" +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a"}, + {file = "python_dotenv-1.2.2.tar.gz", hash = "sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3"}, +] + +[package.extras] +cli = ["click (>=5.0)"] + [[package]] name = "python-json-logger" version = "2.0.7" @@ -3054,6 +3670,18 @@ files = [ {file = "python_json_logger-2.0.7-py3-none-any.whl", hash = "sha256:f380b826a991ebbe3de4d897aeec42760035ac760345e57b812938dc8b35e2bd"}, ] +[[package]] +name = "python-magic" +version = "0.4.27" +description = "File type identification using libmagic" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +groups = ["main"] +files = [ + {file = "python-magic-0.4.27.tar.gz", hash = "sha256:c1ba14b08e4a5f5c31a302b7721239695b2f0f058d125bd5ce1ee36b9d9d3c3b"}, + {file = "python_magic-0.4.27-py2.py3-none-any.whl", hash = "sha256:c212960ad306f700aa0d01e5d7a325d20548ff97eb9920dcd29513174f0294d3"}, +] + [[package]] name = "pytz" version = "2024.2" @@ -3174,6 +3802,7 @@ files = [ {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, ] +markers = {main = "extra == \"dbc\""} [[package]] name = "pyzmq" @@ -3481,6 +4110,25 @@ files = [ {file = "rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"}, ] +[[package]] +name = "rich" +version = "14.3.3" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +optional = false +python-versions = ">=3.8.0" +groups = ["main"] +files = [ + {file = "rich-14.3.3-py3-none-any.whl", hash = "sha256:793431c1f8619afa7d3b52b2cdec859562b950ea0d4b6b505397612db8d5362d"}, + {file = "rich-14.3.3.tar.gz", hash = "sha256:b8daa0b9e4eef54dd8cf7c86c03713f53241884e814f4e2f5fb342fe520f639b"}, +] + +[package.dependencies] +markdown-it-py = ">=2.2.0" +pygments = ">=2.13.0,<3.0.0" + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<9)"] + [[package]] name = "rpds-py" version = "0.21.0" @@ -3581,6 +4229,24 @@ files = [ {file = "rpds_py-0.21.0.tar.gz", hash = "sha256:ed6378c9d66d0de903763e7706383d60c33829581f0adff47b6535f1802fa6db"}, ] +[[package]] +name = "s3transfer" +version = "0.16.0" +description = "An Amazon S3 Transfer Manager" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "s3transfer-0.16.0-py3-none-any.whl", hash = "sha256:18e25d66fed509e3868dc1572b3f427ff947dd2c56f844a5bf09481ad3f3b2fe"}, + {file = "s3transfer-0.16.0.tar.gz", hash = "sha256:8e990f13268025792229cd52fa10cb7163744bf56e719e0b9cb925ab79abf920"}, +] + +[package.dependencies] +botocore = ">=1.37.4,<2.0a.0" + +[package.extras] +crt = ["botocore[crt] (>=1.37.4,<2.0a.0)"] + [[package]] name = "seaborn" version = "0.12.2" @@ -3659,7 +4325,7 @@ version = "1.3.1" description = "Sniff out which async library your code is running under" optional = false python-versions = ">=3.7" -groups = ["docs"] +groups = ["dev", "docs"] files = [ {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, @@ -3859,6 +4525,108 @@ lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] standalone = ["Sphinx (>=5)"] test = ["pytest"] +[[package]] +name = "sqlalchemy" +version = "2.0.48" +description = "Database Abstraction Library" +optional = false +python-versions = ">=3.7" +groups = ["main"] +files = [ + {file = "sqlalchemy-2.0.48-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7001dc9d5f6bb4deb756d5928eaefe1930f6f4179da3924cbd95ee0e9f4dce89"}, + {file = "sqlalchemy-2.0.48-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1a89ce07ad2d4b8cfc30bd5889ec40613e028ed80ef47da7d9dd2ce969ad30e0"}, + {file = "sqlalchemy-2.0.48-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:10853a53a4a00417a00913d270dddda75815fcb80675874285f41051c094d7dd"}, + {file = "sqlalchemy-2.0.48-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:fac0fa4e4f55f118fd87177dacb1c6522fe39c28d498d259014020fec9164c29"}, + {file = "sqlalchemy-2.0.48-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3713e21ea67bca727eecd4a24bf68bcd414c403faae4989442be60994301ded0"}, + {file = "sqlalchemy-2.0.48-cp310-cp310-win32.whl", hash = "sha256:d404dc897ce10e565d647795861762aa2d06ca3f4a728c5e9a835096c7059018"}, + {file = "sqlalchemy-2.0.48-cp310-cp310-win_amd64.whl", hash = "sha256:841a94c66577661c1f088ac958cd767d7c9bf507698f45afffe7a4017049de76"}, + {file = "sqlalchemy-2.0.48-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b4c575df7368b3b13e0cebf01d4679f9a28ed2ae6c1cd0b1d5beffb6b2007dc"}, + {file = "sqlalchemy-2.0.48-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e83e3f959aaa1c9df95c22c528096d94848a1bc819f5d0ebf7ee3df0ca63db6c"}, + {file = "sqlalchemy-2.0.48-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6f7b7243850edd0b8b97043f04748f31de50cf426e939def5c16bedb540698f7"}, + {file = "sqlalchemy-2.0.48-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:82745b03b4043e04600a6b665cb98697c4339b24e34d74b0a2ac0a2488b6f94d"}, + {file = "sqlalchemy-2.0.48-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e5e088bf43f6ee6fec7dbf1ef7ff7774a616c236b5c0cb3e00662dd71a56b571"}, + {file = "sqlalchemy-2.0.48-cp311-cp311-win32.whl", hash = "sha256:9c7d0a77e36b5f4b01ca398482230ab792061d243d715299b44a0b55c89fe617"}, + {file = "sqlalchemy-2.0.48-cp311-cp311-win_amd64.whl", hash = "sha256:583849c743e0e3c9bb7446f5b5addeacedc168d657a69b418063dfdb2d90081c"}, + {file = "sqlalchemy-2.0.48-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:348174f228b99f33ca1f773e85510e08927620caa59ffe7803b37170df30332b"}, + {file = "sqlalchemy-2.0.48-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:53667b5f668991e279d21f94ccfa6e45b4e3f4500e7591ae59a8012d0f010dcb"}, + {file = "sqlalchemy-2.0.48-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:34634e196f620c7a61d18d5cf7dc841ca6daa7961aed75d532b7e58b309ac894"}, + {file = "sqlalchemy-2.0.48-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:546572a1793cc35857a2ffa1fe0e58571af1779bcc1ffa7c9fb0839885ed69a9"}, + {file = "sqlalchemy-2.0.48-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:07edba08061bc277bfdc772dd2a1a43978f5a45994dd3ede26391b405c15221e"}, + {file = "sqlalchemy-2.0.48-cp312-cp312-win32.whl", hash = "sha256:908a3fa6908716f803b86896a09a2c4dde5f5ce2bb07aacc71ffebb57986ce99"}, + {file = "sqlalchemy-2.0.48-cp312-cp312-win_amd64.whl", hash = "sha256:68549c403f79a8e25984376480959975212a670405e3913830614432b5daa07a"}, + {file = "sqlalchemy-2.0.48-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e3070c03701037aa418b55d36532ecb8f8446ed0135acb71c678dbdf12f5b6e4"}, + {file = "sqlalchemy-2.0.48-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2645b7d8a738763b664a12a1542c89c940daa55196e8d73e55b169cc5c99f65f"}, + {file = "sqlalchemy-2.0.48-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b19151e76620a412c2ac1c6f977ab1b9fa7ad43140178345136456d5265b32ed"}, + {file = "sqlalchemy-2.0.48-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5b193a7e29fd9fa56e502920dca47dffe60f97c863494946bd698c6058a55658"}, + {file = "sqlalchemy-2.0.48-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:36ac4ddc3d33e852da9cb00ffb08cea62ca05c39711dc67062ca2bb1fae35fd8"}, + {file = "sqlalchemy-2.0.48-cp313-cp313-win32.whl", hash = "sha256:389b984139278f97757ea9b08993e7b9d1142912e046ab7d82b3fbaeb0209131"}, + {file = "sqlalchemy-2.0.48-cp313-cp313-win_amd64.whl", hash = "sha256:d612c976cbc2d17edfcc4c006874b764e85e990c29ce9bd411f926bbfb02b9a2"}, + {file = "sqlalchemy-2.0.48-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:69f5bc24904d3bc3640961cddd2523e361257ef68585d6e364166dfbe8c78fae"}, + {file = "sqlalchemy-2.0.48-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fd08b90d211c086181caed76931ecfa2bdfc83eea3cfccdb0f82abc6c4b876cb"}, + {file = "sqlalchemy-2.0.48-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:1ccd42229aaac2df431562117ac7e667d702e8e44afdb6cf0e50fa3f18160f0b"}, + {file = "sqlalchemy-2.0.48-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f0dcbc588cd5b725162c076eb9119342f6579c7f7f55057bb7e3c6ff27e13121"}, + {file = "sqlalchemy-2.0.48-cp313-cp313t-win32.whl", hash = "sha256:9764014ef5e58aab76220c5664abb5d47d5bc858d9debf821e55cfdd0f128485"}, + {file = "sqlalchemy-2.0.48-cp313-cp313t-win_amd64.whl", hash = "sha256:e2f35b4cccd9ed286ad62e0a3c3ac21e06c02abc60e20aa51a3e305a30f5fa79"}, + {file = "sqlalchemy-2.0.48-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:e2d0d88686e3d35a76f3e15a34e8c12d73fc94c1dea1cd55782e695cc14086dd"}, + {file = "sqlalchemy-2.0.48-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:49b7bddc1eebf011ea5ab722fdbe67a401caa34a350d278cc7733c0e88fecb1f"}, + {file = "sqlalchemy-2.0.48-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:426c5ca86415d9b8945c7073597e10de9644802e2ff502b8e1f11a7a2642856b"}, + {file = "sqlalchemy-2.0.48-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:288937433bd44e3990e7da2402fabc44a3c6c25d3704da066b85b89a85474ae0"}, + {file = "sqlalchemy-2.0.48-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:8183dc57ae7d9edc1346e007e840a9f3d6aa7b7f165203a99e16f447150140d2"}, + {file = "sqlalchemy-2.0.48-cp314-cp314-win32.whl", hash = "sha256:1182437cb2d97988cfea04cf6cdc0b0bb9c74f4d56ec3d08b81e23d621a28cc6"}, + {file = "sqlalchemy-2.0.48-cp314-cp314-win_amd64.whl", hash = "sha256:144921da96c08feb9e2b052c5c5c1d0d151a292c6135623c6b2c041f2a45f9e0"}, + {file = "sqlalchemy-2.0.48-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5aee45fd2c6c0f2b9cdddf48c48535e7471e42d6fb81adfde801da0bd5b93241"}, + {file = "sqlalchemy-2.0.48-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7cddca31edf8b0653090cbb54562ca027c421c58ddde2c0685f49ff56a1690e0"}, + {file = "sqlalchemy-2.0.48-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7a936f1bb23d370b7c8cc079d5fce4c7d18da87a33c6744e51a93b0f9e97e9b3"}, + {file = "sqlalchemy-2.0.48-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e004aa9248e8cb0a5f9b96d003ca7c1c0a5da8decd1066e7b53f59eb8ce7c62b"}, + {file = "sqlalchemy-2.0.48-cp314-cp314t-win32.whl", hash = "sha256:b8438ec5594980d405251451c5b7ea9aa58dda38eb7ac35fb7e4c696712ee24f"}, + {file = "sqlalchemy-2.0.48-cp314-cp314t-win_amd64.whl", hash = "sha256:d854b3970067297f3a7fbd7a4683587134aa9b3877ee15aa29eea478dc68f933"}, + {file = "sqlalchemy-2.0.48-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f8649a14caa5f8a243628b1d61cf530ad9ae4578814ba726816adb1121fc493e"}, + {file = "sqlalchemy-2.0.48-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6bb85c546591569558571aa1b06aba711b26ae62f111e15e56136d69920e1616"}, + {file = "sqlalchemy-2.0.48-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a6b764fb312bd35e47797ad2e63f0d323792837a6ac785a4ca967019357d2bc7"}, + {file = "sqlalchemy-2.0.48-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:7c998f2ace8bf76b453b75dbcca500d4f4b9dd3908c13e89b86289b37784848b"}, + {file = "sqlalchemy-2.0.48-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:d64177f443594c8697369c10e4bbcac70ef558e0f7921a1de7e4a3d1734bcf67"}, + {file = "sqlalchemy-2.0.48-cp38-cp38-win32.whl", hash = "sha256:01f6bbd4308b23240cf7d3ef117557c8fd097ec9549d5d8a52977544e35b40ad"}, + {file = "sqlalchemy-2.0.48-cp38-cp38-win_amd64.whl", hash = "sha256:858e433f12b0e5b3ed2f8da917433b634f4937d0e8793e5cb33c54a1a01df565"}, + {file = "sqlalchemy-2.0.48-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4599a95f9430ae0de82b52ff0d27304fe898c17cb5f4099f7438a51b9998ac77"}, + {file = "sqlalchemy-2.0.48-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f27f9da0a7d22b9f981108fd4b62f8b5743423388915a563e651c20d06c1f457"}, + {file = "sqlalchemy-2.0.48-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d8fcccbbc0c13c13702c471da398b8cd72ba740dca5859f148ae8e0e8e0d3e7e"}, + {file = "sqlalchemy-2.0.48-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:a5b429eb84339f9f05e06083f119ad814e6d85e27ecbdf9c551dfdbb128eaf8a"}, + {file = "sqlalchemy-2.0.48-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:bcb8ebbf2e2c36cfe01a94f2438012c6a9d494cf80f129d9753bcdf33bfc35a6"}, + {file = "sqlalchemy-2.0.48-cp39-cp39-win32.whl", hash = "sha256:e214d546c8ecb5fc22d6e6011746082abf13a9cf46eefb45769c7b31407c97b5"}, + {file = "sqlalchemy-2.0.48-cp39-cp39-win_amd64.whl", hash = "sha256:b8fc3454b4f3bd0a368001d0e968852dad45a873f8b4babd41bc302ec851a099"}, + {file = "sqlalchemy-2.0.48-py3-none-any.whl", hash = "sha256:a66fe406437dd65cacd96a72689a3aaaecaebbcd62d81c5ac1c0fdbeac835096"}, + {file = "sqlalchemy-2.0.48.tar.gz", hash = "sha256:5ca74f37f3369b45e1f6b7b06afb182af1fd5dde009e4ffd831830d98cbe5fe7"}, +] + +[package.dependencies] +greenlet = {version = ">=1", markers = "platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\""} +typing-extensions = ">=4.6.0" + +[package.extras] +aiomysql = ["aiomysql (>=0.2.0)", "greenlet (>=1)"] +aioodbc = ["aioodbc", "greenlet (>=1)"] +aiosqlite = ["aiosqlite", "greenlet (>=1)", "typing_extensions (!=3.10.0.1)"] +asyncio = ["greenlet (>=1)"] +asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (>=1)"] +mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5,!=1.1.10)"] +mssql = ["pyodbc"] +mssql-pymssql = ["pymssql"] +mssql-pyodbc = ["pyodbc"] +mypy = ["mypy (>=0.910)"] +mysql = ["mysqlclient (>=1.4.0)"] +mysql-connector = ["mysql-connector-python"] +oracle = ["cx_oracle (>=8)"] +oracle-oracledb = ["oracledb (>=1.0.1)"] +postgresql = ["psycopg2 (>=2.7)"] +postgresql-asyncpg = ["asyncpg", "greenlet (>=1)"] +postgresql-pg8000 = ["pg8000 (>=1.29.1)"] +postgresql-psycopg = ["psycopg (>=3.0.7)"] +postgresql-psycopg2binary = ["psycopg2-binary"] +postgresql-psycopg2cffi = ["psycopg2cffi"] +postgresql-psycopgbinary = ["psycopg[binary] (>=3.0.7)"] +pymysql = ["pymysql"] +sqlcipher = ["sqlcipher3_binary"] + [[package]] name = "stack-data" version = "0.6.3" @@ -3901,6 +4669,45 @@ docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] test = ["pre-commit", "pytest (>=7.0)", "pytest-timeout"] typing = ["mypy (>=1.6,<2.0)", "traitlets (>=5.11.1)"] +[[package]] +name = "textual" +version = "8.2.1" +description = "Modern Text User Interface framework" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +files = [ + {file = "textual-8.2.1-py3-none-any.whl", hash = "sha256:746cbf947a8ca875afc09779ef38cadbc7b9f15ac886a5090f7099fef5ade990"}, + {file = "textual-8.2.1.tar.gz", hash = "sha256:4176890e9cd5c95dcdd206541b2956b0808e74c8c36381c88db53dcb45237451"}, +] + +[package.dependencies] +markdown-it-py = {version = ">=2.1.0", extras = ["linkify"]} +mdit-py-plugins = "*" +platformdirs = ">=3.6.0,<5" +pygments = ">=2.19.2,<3.0.0" +rich = ">=14.2.0" +tree-sitter = {version = ">=0.25.0", optional = true, markers = "python_version >= \"3.10\" and extra == \"syntax\""} +tree-sitter-bash = {version = ">=0.23.0", optional = true, markers = "python_version >= \"3.10\" and extra == \"syntax\""} +tree-sitter-css = {version = ">=0.23.0", optional = true, markers = "python_version >= \"3.10\" and extra == \"syntax\""} +tree-sitter-go = {version = ">=0.23.0", optional = true, markers = "python_version >= \"3.10\" and extra == \"syntax\""} +tree-sitter-html = {version = ">=0.23.0", optional = true, markers = "python_version >= \"3.10\" and extra == \"syntax\""} +tree-sitter-java = {version = ">=0.23.0", optional = true, markers = "python_version >= \"3.10\" and extra == \"syntax\""} +tree-sitter-javascript = {version = ">=0.23.0", optional = true, markers = "python_version >= \"3.10\" and extra == \"syntax\""} +tree-sitter-json = {version = ">=0.24.0", optional = true, markers = "python_version >= \"3.10\" and extra == \"syntax\""} +tree-sitter-markdown = {version = ">=0.3.0", optional = true, markers = "python_version >= \"3.10\" and extra == \"syntax\""} +tree-sitter-python = {version = ">=0.23.0", optional = true, markers = "python_version >= \"3.10\" and extra == \"syntax\""} +tree-sitter-regex = {version = ">=0.24.0", optional = true, markers = "python_version >= \"3.10\" and extra == \"syntax\""} +tree-sitter-rust = {version = ">=0.23.0", optional = true, markers = "python_version >= \"3.10\" and extra == \"syntax\""} +tree-sitter-sql = {version = ">=0.3.11", optional = true, markers = "python_version >= \"3.10\" and extra == \"syntax\""} +tree-sitter-toml = {version = ">=0.6.0", optional = true, markers = "python_version >= \"3.10\" and extra == \"syntax\""} +tree-sitter-xml = {version = ">=0.7.0", optional = true, markers = "python_version >= \"3.10\" and extra == \"syntax\""} +tree-sitter-yaml = {version = ">=0.6.0", optional = true, markers = "python_version >= \"3.10\" and extra == \"syntax\""} +typing-extensions = ">=4.4.0,<5.0.0" + +[package.extras] +syntax = ["tree-sitter (>=0.25.0) ; python_version >= \"3.10\"", "tree-sitter-bash (>=0.23.0) ; python_version >= \"3.10\"", "tree-sitter-css (>=0.23.0) ; python_version >= \"3.10\"", "tree-sitter-go (>=0.23.0) ; python_version >= \"3.10\"", "tree-sitter-html (>=0.23.0) ; python_version >= \"3.10\"", "tree-sitter-java (>=0.23.0) ; python_version >= \"3.10\"", "tree-sitter-javascript (>=0.23.0) ; python_version >= \"3.10\"", "tree-sitter-json (>=0.24.0) ; python_version >= \"3.10\"", "tree-sitter-markdown (>=0.3.0) ; python_version >= \"3.10\"", "tree-sitter-python (>=0.23.0) ; python_version >= \"3.10\"", "tree-sitter-regex (>=0.24.0) ; python_version >= \"3.10\"", "tree-sitter-rust (>=0.23.0) ; python_version >= \"3.10\"", "tree-sitter-sql (>=0.3.11) ; python_version >= \"3.10\"", "tree-sitter-toml (>=0.6.0) ; python_version >= \"3.10\"", "tree-sitter-xml (>=0.7.0) ; python_version >= \"3.10\"", "tree-sitter-yaml (>=0.6.0) ; python_version >= \"3.10\""] + [[package]] name = "tinycss2" version = "1.4.0" @@ -3922,16 +4729,61 @@ test = ["pytest", "ruff"] [[package]] name = "tomli" -version = "2.1.0" +version = "2.4.0" description = "A lil' TOML parser" optional = false python-versions = ">=3.8" groups = ["dev", "docs"] files = [ - {file = "tomli-2.1.0-py3-none-any.whl", hash = "sha256:a5c57c3d1c56f5ccdf89f6523458f60ef716e210fc47c4cfb188c5ba473e0391"}, - {file = "tomli-2.1.0.tar.gz", hash = "sha256:3f646cae2aec94e17d04973e4249548320197cfabdf130015d023de4b74d8ab8"}, -] -markers = {dev = "python_version == \"3.10\""} + {file = "tomli-2.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b5ef256a3fd497d4973c11bf142e9ed78b150d36f5773f1ca6088c230ffc5867"}, + {file = "tomli-2.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5572e41282d5268eb09a697c89a7bee84fae66511f87533a6f88bd2f7b652da9"}, + {file = "tomli-2.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:551e321c6ba03b55676970b47cb1b73f14a0a4dce6a3e1a9458fd6d921d72e95"}, + {file = "tomli-2.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5e3f639a7a8f10069d0e15408c0b96a2a828cfdec6fca05296ebcdcc28ca7c76"}, + {file = "tomli-2.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1b168f2731796b045128c45982d3a4874057626da0e2ef1fdd722848b741361d"}, + {file = "tomli-2.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:133e93646ec4300d651839d382d63edff11d8978be23da4cc106f5a18b7d0576"}, + {file = "tomli-2.4.0-cp311-cp311-win32.whl", hash = "sha256:b6c78bdf37764092d369722d9946cb65b8767bfa4110f902a1b2542d8d173c8a"}, + {file = "tomli-2.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:d3d1654e11d724760cdb37a3d7691f0be9db5fbdaef59c9f532aabf87006dbaa"}, + {file = "tomli-2.4.0-cp311-cp311-win_arm64.whl", hash = "sha256:cae9c19ed12d4e8f3ebf46d1a75090e4c0dc16271c5bce1c833ac168f08fb614"}, + {file = "tomli-2.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:920b1de295e72887bafa3ad9f7a792f811847d57ea6b1215154030cf131f16b1"}, + {file = "tomli-2.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7d6d9a4aee98fac3eab4952ad1d73aee87359452d1c086b5ceb43ed02ddb16b8"}, + {file = "tomli-2.4.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:36b9d05b51e65b254ea6c2585b59d2c4cb91c8a3d91d0ed0f17591a29aaea54a"}, + {file = "tomli-2.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1c8a885b370751837c029ef9bc014f27d80840e48bac415f3412e6593bbc18c1"}, + {file = "tomli-2.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8768715ffc41f0008abe25d808c20c3d990f42b6e2e58305d5da280ae7d1fa3b"}, + {file = "tomli-2.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7b438885858efd5be02a9a133caf5812b8776ee0c969fea02c45e8e3f296ba51"}, + {file = "tomli-2.4.0-cp312-cp312-win32.whl", hash = "sha256:0408e3de5ec77cc7f81960c362543cbbd91ef883e3138e81b729fc3eea5b9729"}, + {file = "tomli-2.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:685306e2cc7da35be4ee914fd34ab801a6acacb061b6a7abca922aaf9ad368da"}, + {file = "tomli-2.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:5aa48d7c2356055feef06a43611fc401a07337d5b006be13a30f6c58f869e3c3"}, + {file = "tomli-2.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:84d081fbc252d1b6a982e1870660e7330fb8f90f676f6e78b052ad4e64714bf0"}, + {file = "tomli-2.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9a08144fa4cba33db5255f9b74f0b89888622109bd2776148f2597447f92a94e"}, + {file = "tomli-2.4.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c73add4bb52a206fd0c0723432db123c0c75c280cbd67174dd9d2db228ebb1b4"}, + {file = "tomli-2.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fb2945cbe303b1419e2706e711b7113da57b7db31ee378d08712d678a34e51e"}, + {file = "tomli-2.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bbb1b10aa643d973366dc2cb1ad94f99c1726a02343d43cbc011edbfac579e7c"}, + {file = "tomli-2.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4cbcb367d44a1f0c2be408758b43e1ffb5308abe0ea222897d6bfc8e8281ef2f"}, + {file = "tomli-2.4.0-cp313-cp313-win32.whl", hash = "sha256:7d49c66a7d5e56ac959cb6fc583aff0651094ec071ba9ad43df785abc2320d86"}, + {file = "tomli-2.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:3cf226acb51d8f1c394c1b310e0e0e61fecdd7adcb78d01e294ac297dd2e7f87"}, + {file = "tomli-2.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:d20b797a5c1ad80c516e41bc1fb0443ddb5006e9aaa7bda2d71978346aeb9132"}, + {file = "tomli-2.4.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:26ab906a1eb794cd4e103691daa23d95c6919cc2fa9160000ac02370cc9dd3f6"}, + {file = "tomli-2.4.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:20cedb4ee43278bc4f2fee6cb50daec836959aadaf948db5172e776dd3d993fc"}, + {file = "tomli-2.4.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:39b0b5d1b6dd03684b3fb276407ebed7090bbec989fa55838c98560c01113b66"}, + {file = "tomli-2.4.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a26d7ff68dfdb9f87a016ecfd1e1c2bacbe3108f4e0f8bcd2228ef9a766c787d"}, + {file = "tomli-2.4.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:20ffd184fb1df76a66e34bd1b36b4a4641bd2b82954befa32fe8163e79f1a702"}, + {file = "tomli-2.4.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:75c2f8bbddf170e8effc98f5e9084a8751f8174ea6ccf4fca5398436e0320bc8"}, + {file = "tomli-2.4.0-cp314-cp314-win32.whl", hash = "sha256:31d556d079d72db7c584c0627ff3a24c5d3fb4f730221d3444f3efb1b2514776"}, + {file = "tomli-2.4.0-cp314-cp314-win_amd64.whl", hash = "sha256:43e685b9b2341681907759cf3a04e14d7104b3580f808cfde1dfdb60ada85475"}, + {file = "tomli-2.4.0-cp314-cp314-win_arm64.whl", hash = "sha256:3d895d56bd3f82ddd6faaff993c275efc2ff38e52322ea264122d72729dca2b2"}, + {file = "tomli-2.4.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:5b5807f3999fb66776dbce568cc9a828544244a8eb84b84b9bafc080c99597b9"}, + {file = "tomli-2.4.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c084ad935abe686bd9c898e62a02a19abfc9760b5a79bc29644463eaf2840cb0"}, + {file = "tomli-2.4.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f2e3955efea4d1cfbcb87bc321e00dc08d2bcb737fd1d5e398af111d86db5df"}, + {file = "tomli-2.4.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e0fe8a0b8312acf3a88077a0802565cb09ee34107813bba1c7cd591fa6cfc8d"}, + {file = "tomli-2.4.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:413540dce94673591859c4c6f794dfeaa845e98bf35d72ed59636f869ef9f86f"}, + {file = "tomli-2.4.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:0dc56fef0e2c1c470aeac5b6ca8cc7b640bb93e92d9803ddaf9ea03e198f5b0b"}, + {file = "tomli-2.4.0-cp314-cp314t-win32.whl", hash = "sha256:d878f2a6707cc9d53a1be1414bbb419e629c3d6e67f69230217bb663e76b5087"}, + {file = "tomli-2.4.0-cp314-cp314t-win_amd64.whl", hash = "sha256:2add28aacc7425117ff6364fe9e06a183bb0251b03f986df0e78e974047571fd"}, + {file = "tomli-2.4.0-cp314-cp314t-win_arm64.whl", hash = "sha256:2b1e3b80e1d5e52e40e9b924ec43d81570f0e7d09d11081b797bc4692765a3d4"}, + {file = "tomli-2.4.0-py3-none-any.whl", hash = "sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a"}, + {file = "tomli-2.4.0.tar.gz", hash = "sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c"}, +] +markers = {dev = "python_version < \"3.12\""} [[package]] name = "tornado" @@ -3956,21 +4808,22 @@ files = [ [[package]] name = "tqdm" -version = "4.64.0" +version = "4.67.3" description = "Fast, Extensible Progress Meter" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" +python-versions = ">=3.7" groups = ["main"] files = [ - {file = "tqdm-4.64.0-py2.py3-none-any.whl", hash = "sha256:74a2cdefe14d11442cedf3ba4e21a3b84ff9a2dbdc6cfae2c34addb2a14a5ea6"}, - {file = "tqdm-4.64.0.tar.gz", hash = "sha256:40be55d30e200777a307a7585aee69e4eabb46b4ec6a4b4a5f2d9f11e7d5408d"}, + {file = "tqdm-4.67.3-py3-none-any.whl", hash = "sha256:ee1e4c0e59148062281c49d80b25b67771a127c85fc9676d3be5f243206826bf"}, + {file = "tqdm-4.67.3.tar.gz", hash = "sha256:7d825f03f89244ef73f1d4ce193cb1774a8179fd96f31d7e1dcde62092b960bb"}, ] [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} [package.extras] -dev = ["py-make (>=0.1.0)", "twine", "wheel"] +dev = ["nbval", "pytest (>=6)", "pytest-asyncio (>=0.24)", "pytest-cov", "pytest-timeout"] +discord = ["requests"] notebook = ["ipywidgets (>=6)"] slack = ["slack-sdk"] telegram = ["requests"] @@ -3991,6 +4844,396 @@ files = [ docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<8.2)", "pytest-mock", "pytest-mypy-testing"] +[[package]] +name = "tree-sitter" +version = "0.25.2" +description = "Python bindings to the Tree-sitter parsing library" +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "tree-sitter-0.25.2.tar.gz", hash = "sha256:fe43c158555da46723b28b52e058ad444195afd1db3ca7720c59a254544e9c20"}, + {file = "tree_sitter-0.25.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72a510931c3c25f134aac2daf4eb4feca99ffe37a35896d7150e50ac3eee06c7"}, + {file = "tree_sitter-0.25.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:44488e0e78146f87baaa009736886516779253d6d6bac3ef636ede72bc6a8234"}, + {file = "tree_sitter-0.25.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c2f8e7d6b2f8489d4a9885e3adcaef4bc5ff0a275acd990f120e29c4ab3395c5"}, + {file = "tree_sitter-0.25.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:20b570690f87f1da424cd690e51cc56728d21d63f4abd4b326d382a30353acc7"}, + {file = "tree_sitter-0.25.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:a0ec41b895da717bc218a42a3a7a0bfcfe9a213d7afaa4255353901e0e21f696"}, + {file = "tree_sitter-0.25.2-cp310-cp310-win_amd64.whl", hash = "sha256:7712335855b2307a21ae86efe949c76be36c6068d76df34faa27ce9ee40ff444"}, + {file = "tree_sitter-0.25.2-cp310-cp310-win_arm64.whl", hash = "sha256:a925364eb7fbb9cdce55a9868f7525a1905af512a559303bd54ef468fd88cb37"}, + {file = "tree_sitter-0.25.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b8ca72d841215b6573ed0655b3a5cd1133f9b69a6fa561aecad40dca9029d75b"}, + {file = "tree_sitter-0.25.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cc0351cfe5022cec5a77645f647f92a936b38850346ed3f6d6babfbeeeca4d26"}, + {file = "tree_sitter-0.25.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1799609636c0193e16c38f366bda5af15b1ce476df79ddaae7dd274df9e44266"}, + {file = "tree_sitter-0.25.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3e65ae456ad0d210ee71a89ee112ac7e72e6c2e5aac1b95846ecc7afa68a194c"}, + {file = "tree_sitter-0.25.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:49ee3c348caa459244ec437ccc7ff3831f35977d143f65311572b8ba0a5f265f"}, + {file = "tree_sitter-0.25.2-cp311-cp311-win_amd64.whl", hash = "sha256:56ac6602c7d09c2c507c55e58dc7026b8988e0475bd0002f8a386cce5e8e8adc"}, + {file = "tree_sitter-0.25.2-cp311-cp311-win_arm64.whl", hash = "sha256:b3d11a3a3ac89bb8a2543d75597f905a9926f9c806f40fcca8242922d1cc6ad5"}, + {file = "tree_sitter-0.25.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ddabfff809ffc983fc9963455ba1cecc90295803e06e140a4c83e94c1fa3d960"}, + {file = "tree_sitter-0.25.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c0c0ab5f94938a23fe81928a21cc0fac44143133ccc4eb7eeb1b92f84748331c"}, + {file = "tree_sitter-0.25.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dd12d80d91d4114ca097626eb82714618dcdfacd6a5e0955216c6485c350ef99"}, + {file = "tree_sitter-0.25.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b43a9e4c89d4d0839de27cd4d6902d33396de700e9ff4c5ab7631f277a85ead9"}, + {file = "tree_sitter-0.25.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fbb1706407c0e451c4f8cc016fec27d72d4b211fdd3173320b1ada7a6c74c3ac"}, + {file = "tree_sitter-0.25.2-cp312-cp312-win_amd64.whl", hash = "sha256:6d0302550bbe4620a5dc7649517c4409d74ef18558276ce758419cf09e578897"}, + {file = "tree_sitter-0.25.2-cp312-cp312-win_arm64.whl", hash = "sha256:0c8b6682cac77e37cfe5cf7ec388844957f48b7bd8d6321d0ca2d852994e10d5"}, + {file = "tree_sitter-0.25.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0628671f0de69bb279558ef6b640bcfc97864fe0026d840f872728a86cd6b6cd"}, + {file = "tree_sitter-0.25.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f5ddcd3e291a749b62521f71fc953f66f5fd9743973fd6dd962b092773569601"}, + {file = "tree_sitter-0.25.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bd88fbb0f6c3a0f28f0a68d72df88e9755cf5215bae146f5a1bdc8362b772053"}, + {file = "tree_sitter-0.25.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b878e296e63661c8e124177cc3084b041ba3f5936b43076d57c487822426f614"}, + {file = "tree_sitter-0.25.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d77605e0d353ba3fe5627e5490f0fbfe44141bafa4478d88ef7954a61a848dae"}, + {file = "tree_sitter-0.25.2-cp313-cp313-win_amd64.whl", hash = "sha256:463c032bd02052d934daa5f45d183e0521ceb783c2548501cf034b0beba92c9b"}, + {file = "tree_sitter-0.25.2-cp313-cp313-win_arm64.whl", hash = "sha256:b3f63a1796886249bd22c559a5944d64d05d43f2be72961624278eff0dcc5cb8"}, + {file = "tree_sitter-0.25.2-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:65d3c931013ea798b502782acab986bbf47ba2c452610ab0776cf4a8ef150fc0"}, + {file = "tree_sitter-0.25.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:bda059af9d621918efb813b22fb06b3fe00c3e94079c6143fcb2c565eb44cb87"}, + {file = "tree_sitter-0.25.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eac4e8e4c7060c75f395feec46421eb61212cb73998dbe004b7384724f3682ab"}, + {file = "tree_sitter-0.25.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:260586381b23be33b6191a07cea3d44ecbd6c01aa4c6b027a0439145fcbc3358"}, + {file = "tree_sitter-0.25.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7d2ee1acbacebe50ba0f85fff1bc05e65d877958f00880f49f9b2af38dce1af0"}, + {file = "tree_sitter-0.25.2-cp314-cp314-win_amd64.whl", hash = "sha256:4973b718fcadfb04e59e746abfbb0288694159c6aeecd2add59320c03368c721"}, + {file = "tree_sitter-0.25.2-cp314-cp314-win_arm64.whl", hash = "sha256:b8d4429954a3beb3e844e2872610d2a4800ba4eb42bb1990c6a4b1949b18459f"}, +] + +[package.extras] +docs = ["sphinx (>=8.1,<9.0)", "sphinx-book-theme"] +tests = ["tree-sitter-html (>=0.23.2)", "tree-sitter-javascript (>=0.23.1)", "tree-sitter-json (>=0.24.8)", "tree-sitter-python (>=0.23.6)", "tree-sitter-rust (>=0.23.2)"] + +[[package]] +name = "tree-sitter-bash" +version = "0.25.1" +description = "Bash grammar for tree-sitter" +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "tree_sitter_bash-0.25.1-cp310-abi3-macosx_10_9_x86_64.whl", hash = "sha256:0e6235f59e366d220dde7d830196bed597d01e853e44d8ccd1a82c5dd2500acf"}, + {file = "tree_sitter_bash-0.25.1-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:f4a34a6504c7c5b2a9b8c5c4065531dea19ca2c35026e706cf2eeeebe2c92512"}, + {file = "tree_sitter_bash-0.25.1-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e76c4cfb20b076552406782b7f8c2a3946835993df0a44df006de54b7030c7dc"}, + {file = "tree_sitter_bash-0.25.1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3f484c4bb8796cde7a87ca351e6116f09653edac0eb3c6d238566359dd28b117"}, + {file = "tree_sitter_bash-0.25.1-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:5e76af6df46d958c7f5b6d5884c9743218e3902a00ccb493ec92728b1084430b"}, + {file = "tree_sitter_bash-0.25.1-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a3332d71c7b7d5f78259b19d02d0ea111fcb82b72712ee4a93aaa5b226d3f0a8"}, + {file = "tree_sitter_bash-0.25.1-cp310-abi3-win_amd64.whl", hash = "sha256:52a6802d9218f86278aa3e8b459c3abdad67eed0fde1f9f13aca5b6c634217a6"}, + {file = "tree_sitter_bash-0.25.1-cp310-abi3-win_arm64.whl", hash = "sha256:59115057ec2bae319e8082ff29559861045002964c3431ccb0fc92aa4bc9bccb"}, + {file = "tree_sitter_bash-0.25.1.tar.gz", hash = "sha256:bfc0bdaa77bc1e86e3c6652e5a6e140c40c0a16b84185c2b63ad7cd809b88f14"}, +] + +[package.extras] +core = ["tree-sitter (>=0.24,<1.0)"] + +[[package]] +name = "tree-sitter-css" +version = "0.25.0" +description = "CSS grammar for tree-sitter" +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "tree_sitter_css-0.25.0-cp310-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ddce6f84eeb0bb2877b4587b07bffb0753040c44d811ed9ab2af978c313beda8"}, + {file = "tree_sitter_css-0.25.0-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:5a2a9c875037ef5f9da57697fb8075086476d42a49d25a88dcca60dfc09bd092"}, + {file = "tree_sitter_css-0.25.0-cp310-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:4f5e1135bfd01bce24e2fc7bca1381f52bdd6c6282ee28f7aa77185340bcd135"}, + {file = "tree_sitter_css-0.25.0-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b6d0084536828c733a66524a43c9df89f335971d5b1b973e9d1c42ba9dd426b"}, + {file = "tree_sitter_css-0.25.0-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:8a83825daf538656cb88f4f7a0dd9963e3f204e83e7f8d92131f17e5bd712a77"}, + {file = "tree_sitter_css-0.25.0-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b486c097d250a598fba5f1f46f62697c7f4428252c8bdaad696a907ee913421d"}, + {file = "tree_sitter_css-0.25.0-cp310-abi3-win_amd64.whl", hash = "sha256:fe319e4ad1b8327afbd9758b3ae22b09226d6c28dc9b022bcadabdaf6ea3716c"}, + {file = "tree_sitter_css-0.25.0-cp310-abi3-win_arm64.whl", hash = "sha256:4fc2c82645cd593f1c695b4d6b678d71e633212ca030f26dedee4f92434bfe21"}, + {file = "tree_sitter_css-0.25.0.tar.gz", hash = "sha256:2fc996bf05b04e06061e88ee4c60837783dc4e62a695205acbc262ee30454138"}, +] + +[package.extras] +core = ["tree-sitter (>=0.24,<1.0)"] + +[[package]] +name = "tree-sitter-go" +version = "0.25.0" +description = "Go grammar for tree-sitter" +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "tree_sitter_go-0.25.0-cp310-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b852993063a3429a443e7bd0aa376dd7dd329d595819fabf56ac4cf9d7257b54"}, + {file = "tree_sitter_go-0.25.0-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:503b81a2b4c31e302869a1de3a352ad0912ccab3df9ac9950197b0a9ceeabd8f"}, + {file = "tree_sitter_go-0.25.0-cp310-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:04b3b3cb4aff18e74e28d49b716c6f24cb71ddfdd66768987e26e4d0fa812f74"}, + {file = "tree_sitter_go-0.25.0-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:148255aca2f54b90d48c48a9dbb4c7faad6cad310a980b2c5a5a9822057ed145"}, + {file = "tree_sitter_go-0.25.0-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:4d338116cdf8a6c6ff990d2441929b41323ef17c710407abe0993c13417d6aad"}, + {file = "tree_sitter_go-0.25.0-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5608e089d2a29fa8d2b327abeb2ad1cdb8e223c440a6b0ceab0d3fa80bdeebae"}, + {file = "tree_sitter_go-0.25.0-cp310-abi3-win_amd64.whl", hash = "sha256:30d4ada57a223dfc2c32d942f44d284d40f3d1215ddcf108f96807fd36d53022"}, + {file = "tree_sitter_go-0.25.0-cp310-abi3-win_arm64.whl", hash = "sha256:d5d62362059bf79997340773d47cc7e7e002883b527a05cca829c46e40b70ded"}, + {file = "tree_sitter_go-0.25.0.tar.gz", hash = "sha256:a7466e9b8d94dda94cae8d91629f26edb2d26166fd454d4831c3bf6dfa2e8d68"}, +] + +[package.extras] +core = ["tree-sitter (>=0.24,<1.0)"] + +[[package]] +name = "tree-sitter-html" +version = "0.23.2" +description = "HTML grammar for tree-sitter" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "tree_sitter_html-0.23.2-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:9e1641d5edf5568a246c6c47b947ed524b5bf944664e6473b21d4ae568e28ee9"}, + {file = "tree_sitter_html-0.23.2-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:3d0a83dd6cd1c7d4bcf6287b5145c92140f0194f8516f329ae8b9e952fbfa8ff"}, + {file = "tree_sitter_html-0.23.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81b3775732fffc0abd275a419ef018fd4c1ad4044b2a2e422f3378d93c30eded"}, + {file = "tree_sitter_html-0.23.2-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4bdaa7ac5030d416aea0c512d4810ef847bbbd62d61e3d213f370b64ce147293"}, + {file = "tree_sitter_html-0.23.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:d2e9631b66041a4fd792d7f79a0c4128adb3bfc71f3dcb7e1a3eab5dbee77d67"}, + {file = "tree_sitter_html-0.23.2-cp39-abi3-win_amd64.whl", hash = "sha256:85095f49f9e57f0ac9087a3e830783352c8447fdda55b1c1139aa47e5eaa0e21"}, + {file = "tree_sitter_html-0.23.2-cp39-abi3-win_arm64.whl", hash = "sha256:0f65ed9e877144d0f04ade5644e5b0e88bf98a9e60bce65235c99905623e2f1a"}, + {file = "tree_sitter_html-0.23.2.tar.gz", hash = "sha256:bc9922defe23144d9146bc1509fcd00d361bf6b3303f9effee6532c6a0296961"}, +] + +[package.extras] +core = ["tree-sitter (>=0.22,<1.0)"] + +[[package]] +name = "tree-sitter-java" +version = "0.23.5" +description = "Java grammar for tree-sitter" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "tree_sitter_java-0.23.5-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:355ce0308672d6f7013ec913dee4a0613666f4cda9044a7824240d17f38209df"}, + {file = "tree_sitter_java-0.23.5-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:24acd59c4720dedad80d548fe4237e43ef2b7a4e94c8549b0ca6e4c4d7bf6e69"}, + {file = "tree_sitter_java-0.23.5-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9401e7271f0b333df39fc8a8336a0caf1b891d9a2b89ddee99fae66b794fc5b7"}, + {file = "tree_sitter_java-0.23.5-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:370b204b9500b847f6d0c5ad584045831cee69e9a3e4d878535d39e4a7e4c4f1"}, + {file = "tree_sitter_java-0.23.5-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:aae84449e330363b55b14a2af0585e4e0dae75eb64ea509b7e5b0e1de536846a"}, + {file = "tree_sitter_java-0.23.5-cp39-abi3-win_amd64.whl", hash = "sha256:1ee45e790f8d31d416bc84a09dac2e2c6bc343e89b8a2e1d550513498eedfde7"}, + {file = "tree_sitter_java-0.23.5-cp39-abi3-win_arm64.whl", hash = "sha256:402efe136104c5603b429dc26c7e75ae14faaca54cfd319ecc41c8f2534750f4"}, + {file = "tree_sitter_java-0.23.5.tar.gz", hash = "sha256:f5cd57b8f1270a7f0438878750d02ccc79421d45cca65ff284f1527e9ef02e38"}, +] + +[package.extras] +core = ["tree-sitter (>=0.22,<1.0)"] + +[[package]] +name = "tree-sitter-javascript" +version = "0.25.0" +description = "JavaScript grammar for tree-sitter" +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "tree_sitter_javascript-0.25.0-cp310-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b70f887fb269d6e58c349d683f59fa647140c410cfe2bee44a883b20ec92e3dc"}, + {file = "tree_sitter_javascript-0.25.0-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:8264a996b8845cfce06965152a013b5d9cbb7d199bc3503e12b5682e62bb1de1"}, + {file = "tree_sitter_javascript-0.25.0-cp310-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9dc04ba91fc8583344e57c1f1ed5b2c97ecaaf47480011b92fbeab8dda96db75"}, + {file = "tree_sitter_javascript-0.25.0-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:199d09985190852e0912da2b8d26c932159be314bc04952cf917ed0e4c633e6b"}, + {file = "tree_sitter_javascript-0.25.0-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:dfcf789064c58dc13c0a4edb550acacfc6f0f280577f1e7a00de3e89fc7f8ddc"}, + {file = "tree_sitter_javascript-0.25.0-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:1b852d3aee8a36186dbcc32c798b11b4869f9b5041743b63b65c2ef793db7a54"}, + {file = "tree_sitter_javascript-0.25.0-cp310-abi3-win_amd64.whl", hash = "sha256:e5ed840f5bd4a3f0272e441d19429b26eedc257abe5574c8546da6b556865e3c"}, + {file = "tree_sitter_javascript-0.25.0-cp310-abi3-win_arm64.whl", hash = "sha256:622a69d677aa7f6ee2931d8c77c981a33f0ebb6d275aa9d43d3397c879a9bb0b"}, + {file = "tree_sitter_javascript-0.25.0.tar.gz", hash = "sha256:329b5414874f0588a98f1c291f1b28138286617aa907746ffe55adfdcf963f38"}, +] + +[package.extras] +core = ["tree-sitter (>=0.24,<1.0)"] + +[[package]] +name = "tree-sitter-json" +version = "0.24.8" +description = "JSON grammar for tree-sitter" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "tree_sitter_json-0.24.8-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:59ac06c6db1877d0e2076bce54a5fddcdd2fc38ca778905662e80fa9ffcea2ab"}, + {file = "tree_sitter_json-0.24.8-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:62b4c45b561db31436a81a3f037f71ec29049f4fc9bf5269b6ec3ebaaa35a1cd"}, + {file = "tree_sitter_json-0.24.8-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8627f7d375fda9fc193ebee368c453f374f65c2f25c58b6fea4e6b49a7fccbc"}, + {file = "tree_sitter_json-0.24.8-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85cca779872f7278f3a74eb38533d34b9c4de4fd548615e3361fa64fe350ad0a"}, + {file = "tree_sitter_json-0.24.8-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:deeb45850dcc52990fbb52c80196492a099e3fa3512d928a390a91cf061068cc"}, + {file = "tree_sitter_json-0.24.8-cp39-abi3-win_amd64.whl", hash = "sha256:e4849a03cd7197267b2688a4506a90a13568a8e0e8588080bd0212fcb38974e3"}, + {file = "tree_sitter_json-0.24.8-cp39-abi3-win_arm64.whl", hash = "sha256:591e0096c882d12668b88f30d3ca6f85b9db3406910eaaab6afb6b17d65367dd"}, + {file = "tree_sitter_json-0.24.8.tar.gz", hash = "sha256:ca8486e52e2d261819311d35cf98656123d59008c3b7dcf91e61d2c0c6f3120e"}, +] + +[package.extras] +core = ["tree-sitter (>=0.22,<1.0)"] + +[[package]] +name = "tree-sitter-markdown" +version = "0.5.1" +description = "Markdown grammar for tree-sitter" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "tree_sitter_markdown-0.5.1-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:f00ce3f48f127377983859fcb93caf0693cbc7970f8c41f1e2bd21e4d56bdfd8"}, + {file = "tree_sitter_markdown-0.5.1-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:1ec4cc5d7b0d188bad22247501ab13663bb1bf1a60c2c020a22877fabce8daa9"}, + {file = "tree_sitter_markdown-0.5.1-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:727242a70c46222092eba86c102301646f21ba32aee221f4b1f70e2020755e81"}, + {file = "tree_sitter_markdown-0.5.1-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c0b2fde19e692bb90e300d9788887528c624b659c794de6337f8193396de4399"}, + {file = "tree_sitter_markdown-0.5.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:13da82db04cec7910b6afd4a67d02da9ef402df8d56fc6ed85e00584af1730ee"}, + {file = "tree_sitter_markdown-0.5.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b8a8a04a5d942c177cc590ec40074fcf3658f3a7c0a3388a8575990003665d8c"}, + {file = "tree_sitter_markdown-0.5.1-cp39-abi3-win_amd64.whl", hash = "sha256:b1b0e4cbcf5a7b85005f1e9266fc2ed9b649b41a6048f3b1abae3612368d97a6"}, + {file = "tree_sitter_markdown-0.5.1-cp39-abi3-win_arm64.whl", hash = "sha256:2296ef53a757d8f5b848616706d0518e04d487bc7748bd05755d4a3a65711542"}, + {file = "tree_sitter_markdown-0.5.1.tar.gz", hash = "sha256:6c69d7270a7e09be8988ced44584c09a6a4f541cea0dc394dd1c1a5ac3b5601d"}, +] + +[package.extras] +core = ["tree-sitter (>=0.23,<1.0)"] + +[[package]] +name = "tree-sitter-python" +version = "0.25.0" +description = "Python grammar for tree-sitter" +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "tree_sitter_python-0.25.0-cp310-abi3-macosx_10_9_x86_64.whl", hash = "sha256:14a79a47ddef72f987d5a2c122d148a812169d7484ff5c75a3db9609d419f361"}, + {file = "tree_sitter_python-0.25.0-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:480c21dbd995b7fe44813e741d71fed10ba695e7caab627fb034e3828469d762"}, + {file = "tree_sitter_python-0.25.0-cp310-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:86f118e5eecad616ecdb81d171a36dde9bef5a0b21ed71ea9c3e390813c3baf5"}, + {file = "tree_sitter_python-0.25.0-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:be71650ca2b93b6e9649e5d65c6811aad87a7614c8c1003246b303f6b150f61b"}, + {file = "tree_sitter_python-0.25.0-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e6d5b5799628cc0f24691ab2a172a8e676f668fe90dc60468bee14084a35c16d"}, + {file = "tree_sitter_python-0.25.0-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:71959832fc5d9642e52c11f2f7d79ae520b461e63334927e93ca46cd61cd9683"}, + {file = "tree_sitter_python-0.25.0-cp310-abi3-win_amd64.whl", hash = "sha256:9bcde33f18792de54ee579b00e1b4fe186b7926825444766f849bf7181793a76"}, + {file = "tree_sitter_python-0.25.0-cp310-abi3-win_arm64.whl", hash = "sha256:0fbf6a3774ad7e89ee891851204c2e2c47e12b63a5edbe2e9156997731c128bb"}, + {file = "tree_sitter_python-0.25.0.tar.gz", hash = "sha256:b13e090f725f5b9c86aa455a268553c65cadf325471ad5b65cd29cac8a1a68ac"}, +] + +[package.extras] +core = ["tree-sitter (>=0.24,<1.0)"] + +[[package]] +name = "tree-sitter-regex" +version = "0.25.0" +description = "Regex grammar for tree-sitter" +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "tree_sitter_regex-0.25.0-cp310-abi3-macosx_10_9_x86_64.whl", hash = "sha256:3fa11bbd76b29ac8ca2dbf85ad082f9b18ae6352251d805eb2d4191e1706a9d5"}, + {file = "tree_sitter_regex-0.25.0-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:df5713649b89c5758649398053c306c41565f22a6f267cb5ec25596504bcf012"}, + {file = "tree_sitter_regex-0.25.0-cp310-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:cdd92400fd9d8229e584c55e12410251561f0d47eea49db17805e2f64a8b2490"}, + {file = "tree_sitter_regex-0.25.0-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cceab1c14deeec9c5899babcb2b7942f0607b4355e66eab4083514f644f1bd52"}, + {file = "tree_sitter_regex-0.25.0-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:253436be178150ca4a0603720e0c246e08b5bdd2dc6df313667d97e6c0fce846"}, + {file = "tree_sitter_regex-0.25.0-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:883eacc46fd7eaffc328efd5865f1fe8825711892d3a89fccc2c414b061e806d"}, + {file = "tree_sitter_regex-0.25.0-cp310-abi3-win_amd64.whl", hash = "sha256:f0f2ebf9a6bb5d0d0da2a8ac51d7e5a985b87cdb24d86db5ddc6a58baf115d5d"}, + {file = "tree_sitter_regex-0.25.0-cp310-abi3-win_arm64.whl", hash = "sha256:d5a36150daa452f8aec1c2d6d1f2d26255dc05d1490f9618b14c12a6a648cda4"}, + {file = "tree_sitter_regex-0.25.0.tar.gz", hash = "sha256:5d29111b3f27d4afb31496476d392d1f562fe0bfe954e8968f1d8683424fc331"}, +] + +[package.extras] +core = ["tree-sitter (>=0.24,<1.0)"] + +[[package]] +name = "tree-sitter-rust" +version = "0.24.2" +description = "Rust grammar for tree-sitter" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "tree_sitter_rust-0.24.2-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:3620cfd12340efa43082d45df76349ff511893a9c361da2f8d6d51e307020a59"}, + {file = "tree_sitter_rust-0.24.2-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:01a46622735498493f29f3e628a90de95c96a07bfbeb88996243eb986b1cee36"}, + {file = "tree_sitter_rust-0.24.2-cp39-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:e033c5a93b57c88e0a835880de39fc802909ff69f57aaff6000211c196ea5190"}, + {file = "tree_sitter_rust-0.24.2-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9d76d1208c3638b871236090759dfc13d478921320653a6c9da5336e7c58f65a"}, + {file = "tree_sitter_rust-0.24.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:87930163a462408c49ab62c667e74029bc26b4cc7123dd1bdc7352215786c64a"}, + {file = "tree_sitter_rust-0.24.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:da2b86099028fd42c6cd32878b7b16b01f8aac0f7b0e98742b7fa6bc3cf09b89"}, + {file = "tree_sitter_rust-0.24.2-cp39-abi3-win_amd64.whl", hash = "sha256:4529c125d928882ddfb879fdc6bc0704913261ecc078b6fa7902559e0daf200d"}, + {file = "tree_sitter_rust-0.24.2-cp39-abi3-win_arm64.whl", hash = "sha256:66ba90f61bd54f4c4f5d30434957daf64507c16b0313df76becb37d63f70a227"}, + {file = "tree_sitter_rust-0.24.2.tar.gz", hash = "sha256:54fb02a5911e345308b405174465112479f56dc39e3f1e7744d7568595f00db9"}, +] + +[package.extras] +core = ["tree-sitter (>=0.22,<1.0)"] + +[[package]] +name = "tree-sitter-sql" +version = "0.3.11" +description = "Tree-sitter Grammar for SQL" +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "tree_sitter_sql-0.3.11-cp310-abi3-macosx_10_9_x86_64.whl", hash = "sha256:cf1b0c401756940bf47544ad7c4cc97373fc0dac118f821820953e7015a115e3"}, + {file = "tree_sitter_sql-0.3.11-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:a33cd6880ab2debef036f80365c32becb740ec79946805598488732b6c515fff"}, + {file = "tree_sitter_sql-0.3.11-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:344e99b59c8c8d72f7154041e9d054400f4a3fccc16c2c96ac106dde0e7f8d0c"}, + {file = "tree_sitter_sql-0.3.11-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5128b12f71ac0f5ebcc607f67a62cdc56a187c1a5ba7553feeb9c5f6f9bc3c72"}, + {file = "tree_sitter_sql-0.3.11-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:03cc164fcf7b1f711e7d939aeb4d1f62c76f4162e081c70b860b4fcd91806a38"}, + {file = "tree_sitter_sql-0.3.11-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:0e22ea8de690dd9960d8c0c36c4cd25417b084e1e29c91ac0235fbdb3abb4664"}, + {file = "tree_sitter_sql-0.3.11-cp310-abi3-win_amd64.whl", hash = "sha256:c57b877702d218c0856592d33320c02b2dc8411d8820b3bf7b81be86c54fa0bb"}, + {file = "tree_sitter_sql-0.3.11-cp310-abi3-win_arm64.whl", hash = "sha256:8a1e42f0a2c9b01b23074708ecf5b8d21b9a0440e3dff279d8cf466cdf1a877e"}, + {file = "tree_sitter_sql-0.3.11.tar.gz", hash = "sha256:700b93be2174c3c83d174ec3e10b682f72a4fb451f0076c7ce5012f1d5a76cbc"}, +] + +[package.extras] +core = ["tree-sitter (>=0.24,<1.0)"] + +[[package]] +name = "tree-sitter-toml" +version = "0.7.0" +description = "TOML grammar for tree-sitter" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "tree_sitter_toml-0.7.0-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b9ae5c3e7c5b6bb05299dd73452ceafa7fa0687d5af3012332afa7757653b676"}, + {file = "tree_sitter_toml-0.7.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:18be09538e9775cddc0290392c4e2739de2201260af361473ca60b5c21f7bd22"}, + {file = "tree_sitter_toml-0.7.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a045e0acfcf91b7065066f7e51ea038ed7385c1e35e7e8fae18f252d3f8adb8c"}, + {file = "tree_sitter_toml-0.7.0-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a2f8cf9d73f07b6628093b35e5c5fbac039247e32cb075eaa5289a5914e73af"}, + {file = "tree_sitter_toml-0.7.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:860ffa4513b2dc3083d8e412bd815a350b0a9490624b37e7c8f6ed5c6f9ce63c"}, + {file = "tree_sitter_toml-0.7.0-cp39-abi3-win_amd64.whl", hash = "sha256:2760a04f06937b01b1562a2135cd7e8207e399e73ef75bbebc77e37b1ad3b15d"}, + {file = "tree_sitter_toml-0.7.0-cp39-abi3-win_arm64.whl", hash = "sha256:fd00fd8a51c65aa19c40539431cb1773d87c30af5757b4041fa6c229058420b4"}, + {file = "tree_sitter_toml-0.7.0.tar.gz", hash = "sha256:29e257612fa8f0c1fcbc4e7e08ddc561169f1725265302e64d81086354144a70"}, +] + +[package.extras] +core = ["tree-sitter (>=0.22,<1.0)"] + +[[package]] +name = "tree-sitter-xml" +version = "0.7.0" +description = "XML & DTD grammars for tree-sitter" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "tree_sitter_xml-0.7.0-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:cc3e516d4c1e0860fb22172c172148debb825ba638971bc48bad15b22e5b0bae"}, + {file = "tree_sitter_xml-0.7.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:0674fdf4cc386e4d323cb287d3b072663de0f20a9e9af5d5e09821aae56a9e5c"}, + {file = "tree_sitter_xml-0.7.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c0fe5f2d6cc09974c8375c8ea9b24909f493b5bf04aacdc4c694b5d2ae6b040"}, + {file = "tree_sitter_xml-0.7.0-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd3209516a4d84dff90bc91d2ad2ce246de8504cede4358849687fa8e71536e7"}, + {file = "tree_sitter_xml-0.7.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:87578e15fa55f44ecd9f331233b6f8a2cbde3546b354c830ecb862a632379455"}, + {file = "tree_sitter_xml-0.7.0-cp39-abi3-win_amd64.whl", hash = "sha256:9ba2dafc6ce9feaf4ccc617d3aeea57f8e0ca05edad34953e788001ebff79133"}, + {file = "tree_sitter_xml-0.7.0-cp39-abi3-win_arm64.whl", hash = "sha256:fc759f710a8fd7a01c23e2d7cb013679199045bea3dc0e5151650a11322aaf40"}, + {file = "tree_sitter_xml-0.7.0.tar.gz", hash = "sha256:ab0ff396f20230ad8483d968151ce0c35abe193eb023b20fbd8b8ce4cf9e9f61"}, +] + +[package.extras] +core = ["tree-sitter (>=0.22,<1.0)"] + +[[package]] +name = "tree-sitter-yaml" +version = "0.7.2" +description = "YAML grammar for tree-sitter" +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "tree_sitter_yaml-0.7.2-cp310-abi3-macosx_10_9_x86_64.whl", hash = "sha256:7e269ddcfcab8edb14fbb1f1d34eed1e1e26888f78f94eedfe7cc98c60f8bc9f"}, + {file = "tree_sitter_yaml-0.7.2-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:0807b7966e23ddf7dddc4545216e28b5a58cdadedcecca86b8d8c74271a07870"}, + {file = "tree_sitter_yaml-0.7.2-cp310-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f1a5c60c98b6c4c037aae023569f020d0c489fad8dc26fdfd5510363c9c29a41"}, + {file = "tree_sitter_yaml-0.7.2-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:88636d19d0654fd24f4f242eaaafa90f6f5ebdba8a62e4b32d251ed156c51a2a"}, + {file = "tree_sitter_yaml-0.7.2-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:1d2e8f0bb14aa4537320952d0f9607eef3021d5aada8383c34ebeece17db1e06"}, + {file = "tree_sitter_yaml-0.7.2-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:74ca712c50fc9d7dbc68cb36b4a7811d6e67a5466b5a789f19bf8dd6084ef752"}, + {file = "tree_sitter_yaml-0.7.2-cp310-abi3-win_amd64.whl", hash = "sha256:7587b5ca00fc4f9a548eff649697a3b395370b2304b399ceefa2087d8a6c9186"}, + {file = "tree_sitter_yaml-0.7.2-cp310-abi3-win_arm64.whl", hash = "sha256:f63c227b18e7ce7587bce124578f0bbf1f890ac63d3e3cd027417574273642c4"}, + {file = "tree_sitter_yaml-0.7.2.tar.gz", hash = "sha256:756db4c09c9d9e97c81699e8f941cb8ce4e51104927f6090eefe638ee567d32c"}, +] + +[package.extras] +core = ["tree-sitter (>=0.24,<1.0)"] + +[[package]] +name = "typeguard" +version = "4.5.1" +description = "Run-time type checker for Python" +optional = false +python-versions = ">=3.9" +groups = ["dev"] +files = [ + {file = "typeguard-4.5.1-py3-none-any.whl", hash = "sha256:44d2bf329d49a244110a090b55f5f91aa82d9a9834ebfd30bcc73651e4a8cc40"}, + {file = "typeguard-4.5.1.tar.gz", hash = "sha256:f6f8ecbbc819c9bc749983cc67c02391e16a9b43b8b27f15dc70ed7c4a007274"}, +] + +[package.dependencies] +typing_extensions = ">=4.14.0" + [[package]] name = "types-python-dateutil" version = "2.9.0.20241003" @@ -4005,16 +5248,30 @@ files = [ [[package]] name = "typing-extensions" -version = "4.12.2" -description = "Backported and Experimental Type Hints for Python 3.8+" +version = "4.15.0" +description = "Backported and Experimental Type Hints for Python 3.9+" optional = false -python-versions = ">=3.8" -groups = ["main", "docs"] +python-versions = ">=3.9" +groups = ["main", "dev", "docs"] files = [ - {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, - {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, + {file = "typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548"}, + {file = "typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466"}, ] -markers = {docs = "python_version < \"3.12\""} + +[[package]] +name = "typing-inspection" +version = "0.4.2" +description = "Runtime typing introspection tools" +optional = false +python-versions = ">=3.9" +groups = ["main", "dev"] +files = [ + {file = "typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7"}, + {file = "typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464"}, +] + +[package.dependencies] +typing-extensions = ">=4.12.0" [[package]] name = "tzdata" @@ -4046,16 +5303,31 @@ tzdata = {version = "*", markers = "platform_system == \"Windows\""} [package.extras] devenv = ["check-manifest", "pytest (>=4.3)", "pytest-cov", "pytest-mock (>=3.3)", "zest.releaser"] +[[package]] +name = "uc-micro-py" +version = "2.0.0" +description = "Micro subset of unicode data files for linkify-it-py projects." +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "uc_micro_py-2.0.0-py3-none-any.whl", hash = "sha256:3603a3859af53e5a39bc7677713c78ea6589ff188d70f4fee165db88e22b242c"}, + {file = "uc_micro_py-2.0.0.tar.gz", hash = "sha256:c53691e495c8db60e16ffc4861a35469b0ba0821fe409a8a7a0a71864d33a811"}, +] + +[package.extras] +test = ["coverage", "pytest", "pytest-cov"] + [[package]] name = "unidecode" -version = "1.3.8" +version = "1.4.0" description = "ASCII transliterations of Unicode text" optional = false -python-versions = ">=3.5" +python-versions = ">=3.7" groups = ["main"] files = [ - {file = "Unidecode-1.3.8-py3-none-any.whl", hash = "sha256:d130a61ce6696f8148a3bd8fe779c99adeb4b870584eeb9526584e9aa091fd39"}, - {file = "Unidecode-1.3.8.tar.gz", hash = "sha256:cfdb349d46ed3873ece4586b96aa75258726e2fa8ec21d6f00a591d98806c2f4"}, + {file = "Unidecode-1.4.0-py3-none-any.whl", hash = "sha256:c3c7606c27503ad8d501270406e345ddb480a7b5f38827eafe4fa82a137f0021"}, + {file = "Unidecode-1.4.0.tar.gz", hash = "sha256:ce35985008338b676573023acc382d62c264f307c8f7963733405add37ea2b23"}, ] [[package]] @@ -4090,32 +5362,6 @@ brotli = ["brotli (==1.0.9) ; os_name != \"nt\" and python_version < \"3\" and p secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress ; python_version == \"2.7\"", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] -[[package]] -name = "urwid" -version = "2.6.16" -description = "A full-featured console (xterm et al.) user interface library" -optional = false -python-versions = ">3.7" -groups = ["main"] -files = [ - {file = "urwid-2.6.16-py3-none-any.whl", hash = "sha256:de14896c6df9eb759ed1fd93e0384a5279e51e0dde8f621e4083f7a8368c0797"}, - {file = "urwid-2.6.16.tar.gz", hash = "sha256:93ad239939e44c385e64aa00027878b9e5c486d59e855ec8ab5b1e1adcdb32a2"}, -] - -[package.dependencies] -typing-extensions = "*" -wcwidth = "*" - -[package.extras] -curses = ["windows-curses ; sys_platform == \"win32\""] -glib = ["PyGObject"] -lcd = ["pyserial"] -serial = ["pyserial"] -tornado = ["tornado (>=5.0)"] -trio = ["exceptiongroup", "trio (>=0.22.0)"] -twisted = ["twisted"] -zmq = ["zmq"] - [[package]] name = "virtualenv" version = "20.27.1" @@ -4143,7 +5389,7 @@ version = "0.2.13" description = "Measures the displayed width of unicode strings in a terminal" optional = false python-versions = "*" -groups = ["main", "docs"] +groups = ["docs"] files = [ {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, @@ -4218,9 +5464,9 @@ files = [ dev = ["black (>=19.3b0) ; python_version >= \"3.6\"", "pytest (>=4.6.2)"] [extras] -preprocessing = [] +dbc = ["pycparser", "pyreaddbc"] [metadata] lock-version = "2.1" python-versions = ">=3.10,<3.14" -content-hash = "366b0eac64aa0a754cb64d4b487807570e290a57ca811bad2295b3efa5e593a0" +content-hash = "c10e96ec269fd3691bdcfd4e5e73ca916188cf33bbfea95388fb30e18904b904" diff --git a/pyproject.toml b/pyproject.toml index 0e57d815..80f05940 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,32 +2,51 @@ name = "pysus" version = "1.0.1" # changed by semantic-release description = "Tools for dealing with Brazil's Public health data" -authors = ["Flavio Codeco Coelho "] +authors = ["Flavio Codeco Coelho ", "Luã Bida Vacaro "] license = "GPL" -packages = [{include='pysus'}] +packages = [{ include = "pysus"}] + +exclude = [ + "pysus/tests", + "pysus/tests/**", + "pysus/management", + "pysus/management/**" +] [tool.poetry.dependencies] python = ">=3.10,<3.14" python-dateutil = "2.8.2" -dbfread = "2.0.7" fastparquet = ">=2023.10.1,<=2024.11.0" -numpy = ">1,<3" pyarrow = ">=11.0.0" -pycparser = "2.21" -pyreaddbc = ">=1.1.0" -tqdm = "4.64.0" +numpy = ">1,<3" +tqdm = ">=4.67.0" wget = "^3.2" loguru = "^0.6.0" Unidecode = "^1.3.6" dateparser = "^1.1.8" pandas = "^2.2.2" -urwid = "^2.1.2" -# FTP -bigtree = "^0.12.2" -aioftp = "^0.21.4" +typing-extensions = ">=4.10.0" +pydantic = "^2.12.5" +duckdb = "^1.4.4" +duckdb-engine = "^0.17.0" +sqlalchemy = "^2.0.48" +textual = {extras = ["syntax"], version = "^8.2.1"} +python-magic = "^0.4.27" +chardet = "^7.4.0.post2" +anyio = "^4.13.0" humanize = "^4.8.0" -typing-extensions = "^4.9.0" +aioftp = "^0.21.4" +dbfread = "2.0.7" +bigtree = "^0.12.2" + +pyreaddbc = { version = ">=1.1.0", optional = true } +pycparser = { version = "2.21", optional = true } +dotenv = "^0.9.9" +boto3 = "^1.42.89" + +[tool.poetry.extras] +dbc = ["pyreaddbc", "pycparser"] [tool.poetry.group.dev.dependencies] pytest = ">=6.1.0" @@ -38,6 +57,8 @@ pre-commit = "^2.20.0" pytest-timeout = "^2.1.0" nbsphinx = "^0.9.3" pytest-retry = "1.7.0" +datamodel-code-generator = {extras = ["http"], version = "^0.54.0"} +pytest-asyncio = "^1.3.0" [tool.poetry.group.docs.dependencies] sphinx = "^5.1.1" @@ -81,5 +102,7 @@ testpaths = [ exclude = ["*.git", "docs/"] -[tool.poetry.extras] -preprocessing = ["geobr", "geocoder"] +[[tool.mypy.overrides]] +module = "tests.*" +disallow_untyped_defs = false +check_untyped_defs = false diff --git a/pysus/__init__.py b/pysus/__init__.py index 19a54a36..d80a43c7 100644 --- a/pysus/__init__.py +++ b/pysus/__init__.py @@ -1,24 +1,26 @@ -# type: ignore[attr-defined] """PySUS Python package""" +import os +import pathlib from importlib import metadata as importlib_metadata +from typing import Final -from pysus.ftp.databases import * # noqa -from pysus.ftp.databases import AVAILABLE_DATABASES +CACHEPATH: Final[pathlib.Path] = pathlib.Path( + os.getenv( + "PYSUS_CACHEPATH", + os.path.join(str(pathlib.Path.home()), "pysus"), + ) +) + +# from pysus.api.ftp.databases import * # noqa def get_version() -> str: try: return importlib_metadata.version(__name__) except importlib_metadata.PackageNotFoundError: # pragma: no cover - return "1.0.1" # changed by semantic-release + return "1.0.1" version: str = get_version() __version__: str = version - -__all__ = [ - "AVAILABLE_DATABASES", - "version", - "__version__", -] diff --git a/pysus/utilities/__init__.py b/pysus/api/README.ipynb similarity index 100% rename from pysus/utilities/__init__.py rename to pysus/api/README.ipynb diff --git a/pysus/api/__init__.py b/pysus/api/__init__.py new file mode 100644 index 00000000..1af15464 --- /dev/null +++ b/pysus/api/__init__.py @@ -0,0 +1 @@ +from .client import PySUS as PySUSClient # noqa diff --git a/pysus/api/client.py b/pysus/api/client.py new file mode 100644 index 00000000..a2f0b423 --- /dev/null +++ b/pysus/api/client.py @@ -0,0 +1,338 @@ +import enum +from collections.abc import Callable +from datetime import datetime +from pathlib import Path + +from pysus import CACHEPATH +from sqlalchemy import DateTime, Enum, Integer, String, create_engine +from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, sessionmaker + +from .dadosgov import DadosGovClient +from .ducklake import DuckLakeClient +from .extensions import Parquet +from .ftp import FTPClient +from .models import BaseLocalFile, BaseRemoteFile, BaseTabularFile + + +class Base(DeclarativeBase): + pass + + +class DownloadStatus(enum.Enum): + PENDING = "pending" + DOWNLOADING = "downloading" + COMPLETED = "completed" + FAILED = "failed" + MISSING = "missing" + + +class LocalFileState(Base): + __tablename__ = "local_file_state" + path: Mapped[str] = mapped_column(String, primary_key=True) + remote_path: Mapped[str] = mapped_column(String, nullable=False) + client_name: Mapped[str] = mapped_column(String, nullable=False) + + year: Mapped[int | None] = mapped_column(Integer, nullable=True) + month: Mapped[int | None] = mapped_column(Integer, nullable=True) + state: Mapped[str | None] = mapped_column(String, nullable=True) + group: Mapped[str | None] = mapped_column(String, nullable=True) + + status: Mapped[DownloadStatus] = mapped_column( + Enum(DownloadStatus), + default=DownloadStatus.PENDING, + ) + sha256: Mapped[str | None] = mapped_column(String, nullable=True) + last_synced: Mapped[datetime] = mapped_column( + DateTime, + default=datetime.utcnow, + ) + + +class PySUS: + def __init__(self, db_path: Path = CACHEPATH / "config.db"): + db_path = Path(db_path) + db_path.parent.mkdir(parents=True, exist_ok=True) + + self.cachepath = db_path.parent + self.engine = create_engine(f"duckdb:///{db_path}") + Base.metadata.create_all(self.engine) + self.Session = sessionmaker(bind=self.engine) + + self._ducklake: DuckLakeClient | None = None + self._ftp: FTPClient | None = None + self._dadosgov: DadosGovClient | None = None + + async def __aenter__(self): + self._ducklake = DuckLakeClient() + await self._ducklake._load_catalog() + self._attach_client_catalog( + "ducklake", str(self._ducklake.catalog_path) + ) + return self + + async def get_ducklake(self) -> DuckLakeClient: + if self._ducklake is None: + self._ducklake = DuckLakeClient() + await self._ducklake._load_catalog() + self._attach_client_catalog( + "ducklake", + str(self._ducklake.catalog_path), + ) + return self._ducklake + + async def get_dadosgov(self, access_token: str | None) -> DadosGovClient: + if self._dadosgov is None: + self._dadosgov = DadosGovClient() + await self._dadosgov.connect(token=access_token) + return self._dadosgov + + async def get_ftp(self) -> FTPClient: + if self._ftp is None: + self._ftp = FTPClient() + await self._ftp.connect() + return self._ftp + + async def get_local_file( + self, + file: BaseRemoteFile, + ) -> BaseLocalFile | None: + from pysus.api.extensions import ExtensionFactory + + client_name = file.client.name.lower() + remote_path = file.path + + with self.Session() as session: + records = ( + session.query(LocalFileState) + .filter_by( + remote_path=str(remote_path), + client_name=str(client_name), + status=DownloadStatus.COMPLETED, + ) + .all() + ) + + if not records: + return None + + parquet_version = next( + (r for r in records if str(r.path).endswith(".parquet")), None + ) + record = parquet_version or records[0] + + return await ExtensionFactory.instantiate(str(record.path)) + + def _attach_client_catalog(self, name: str, path: str): + abs_path = str(Path(path).absolute()) + with self.engine.connect() as conn: + q = "SELECT database_name FROM duckdb_databases() WHERE path = ?" + existing = conn.exec_driver_sql(q, (abs_path,)).fetchone() + + if not existing: + conn.exec_driver_sql( + f"ATTACH '{abs_path}' AS {name} (READ_ONLY)", + ) + + async def __aexit__(self, exc_type, exc_val, exc_tb): + if self._ducklake: + await self._ducklake.close() + if self._ftp: + await self._ftp.close() + if self._dadosgov: + await self._dadosgov.close() + self.engine.dispose() + + def _get_dest_path(self, file: BaseRemoteFile) -> Path: + client_name = file.client.name.lower() + dataset_name = file.dataset.name.lower() + + group_name = "" + if hasattr(file, "group") and file.group: + group_name = getattr(file.group, "name", "") + + base_dir = self.cachepath / "downloads" / client_name / dataset_name + + if group_name: + return base_dir / group_name / file.basename + + return base_dir / file.basename + + async def _update_state( + self, + local_path: Path, + remote_path: str, + client_name: str, + status: DownloadStatus, + year: int | None = None, + month: int | None = None, + state: str | None = None, + group: str | None = None, + ): + with self.Session() as session: + record = ( + session.query(LocalFileState) + .filter_by( + path=str(local_path), + ) + .first() + ) + if not record: + record = LocalFileState( + path=str(local_path), + remote_path=str(remote_path), + client_name=client_name, + year=year, + month=month, + state=state, + group=group, + ) + session.add(record) + + record.status = status + record.last_synced = datetime.utcnow() + session.commit() + + async def download( + self, + file: BaseRemoteFile, + token: str | None = None, + callback: Callable | None = None, + ): + from pysus.api.extensions import ExtensionFactory + + existing_local = await self.get_local_file(file) + if existing_local and existing_local.path.exists(): + return existing_local + + client_name = file.client.name.lower() + remote_path = file.path + local_path = self._get_dest_path(file) + + local_path.parent.mkdir(parents=True, exist_ok=True) + + await self._update_state( + local_path, + str(remote_path), + client_name, + DownloadStatus.DOWNLOADING, + ) + + client: DuckLakeClient | FTPClient | DadosGovClient + + try: + if client_name == "ducklake": + client = await self.get_ducklake() + elif client_name == "ftp": + client = await self.get_ftp() + elif client_name == "dadosgov": + client = await self.get_dadosgov(token) + else: + raise ValueError( + f"No download logic for client: {client_name}", + ) + + await client._download_file(file, local_path, callback) + + await self._update_state( + local_path=local_path, + remote_path=str(remote_path), + client_name=client_name, + status=DownloadStatus.DOWNLOADING, + year=file.year, + month=file.month, + state=file.state, + group=getattr(file.group, "name", None), + ) + return await ExtensionFactory.instantiate(local_path) + + except Exception as e: # noqa: B902 + await self._update_state( + local_path, str(remote_path), client_name, DownloadStatus.FAILED + ) + raise RuntimeError( + f"Unexpected error downloading {file.basename}: {e}", + ) from e + + async def _delete_record(self, path: str): + with self.Session() as session: + record = session.query(LocalFileState).filter_by(path=path).first() + if record: + session.delete(record) + session.commit() + + async def download_to_parquet( + self, + file: BaseRemoteFile, + token: str | None = None, + callback: Callable[[int, int], None] | None = None, + ) -> Parquet: + local_file = await self.download( + file=file, + token=token, + callback=callback, + ) + + if not isinstance(local_file, BaseTabularFile): + raise NotImplementedError( + f"{local_file} can't be converted to Parquet", + ) + + original_path = local_file.path + + parquet_file = await local_file.to_parquet(callback=callback) + + await self._update_state( + local_path=parquet_file.path, + remote_path=str(file.path), + client_name=file.client.name.lower(), + status=DownloadStatus.COMPLETED, + year=file.year, + month=file.month, + state=file.state, + group=getattr(file.group, "name", None), + ) + + if original_path.exists() and original_path != parquet_file.path: + original_path.unlink() + await self._delete_record(str(original_path)) + + return parquet_file + + def get_local_hierarchy(self): + with self.Session() as session: + records = session.query(LocalFileState).all() + + hierarchy = {} + for r in records: + client = r.client_name.upper() + path_obj = Path(str(r.path)) + parts = path_obj.parts + + dataset = parts[-2] if len(parts) > 2 else "Other" + has_group = getattr(r, "group", None) is not None + + if path_obj.is_file() and len(parts) > 3: + dataset = parts[-2] if has_group else parts[-3] + + client_dict = hierarchy.setdefault(client, {}) + ds_dict = client_dict.setdefault(dataset, {}) + group_list = ds_dict.setdefault(r.group or "", []) + + group_list.append( + { + "name": path_obj.name, + "status": r.status, + "path": r.path, + "record": r, + } + ) + return hierarchy + + def get_completed_remote_paths(self) -> set[str]: + with self.Session() as session: + records = ( + session.query(LocalFileState.remote_path) + .filter(LocalFileState.status == DownloadStatus.COMPLETED) + .all() + ) + return {str(r.remote_path) for r in records} diff --git a/pysus/api/dadosgov/README.ipynb b/pysus/api/dadosgov/README.ipynb new file mode 100644 index 00000000..e69de29b diff --git a/pysus/api/dadosgov/__init__.py b/pysus/api/dadosgov/__init__.py new file mode 100644 index 00000000..1efe5d57 --- /dev/null +++ b/pysus/api/dadosgov/__init__.py @@ -0,0 +1 @@ +from .client import DadosGov as DadosGovClient # noqa diff --git a/pysus/api/dadosgov/client.py b/pysus/api/dadosgov/client.py new file mode 100644 index 00000000..0051d9e5 --- /dev/null +++ b/pysus/api/dadosgov/client.py @@ -0,0 +1,191 @@ +from __future__ import annotations + +import pathlib +from collections.abc import Callable +from datetime import datetime +from typing import TYPE_CHECKING, Annotated, Any, Optional + +import httpx +from pydantic import BaseModel, BeforeValidator, ConfigDict, Field, PrivateAttr +from pysus import __version__ +from pysus.api.models import BaseRemoteClient, BaseRemoteFile + +if TYPE_CHECKING: + from .models import Dataset + + +def to_datetime(value: Any) -> datetime | None: + if not value or not isinstance(value, str) or "Indisponível" in value: + return None + for fmt in ("%d/%m/%Y %H:%M:%S", "%d/%m/%Y"): + try: + return datetime.strptime(value, fmt) + except ValueError: + continue + return None + + +def to_bool(value: Any) -> bool: + if isinstance(value, bool): + return value + return str(value).lower() in ("sim", "true", "1") + + +DateTime = Annotated[Optional[datetime], BeforeValidator(to_datetime)] +Bool = Annotated[bool, BeforeValidator(to_bool)] + + +class DadosGov(BaseRemoteClient): + base_url: str = "https://dados.gov.br/dados/api" + + _token: str | None = PrivateAttr(default=None) + _client: httpx.AsyncClient | None = PrivateAttr(default=None) + + def __init__(self, **data): + super().__init__(**data) + + @property + def name(self) -> str: + return "DadosGov" + + @property + def long_name(self) -> str: + return "Portal Brasileiro de Dados Abertos" + + @property + def description(self) -> str: + return "Interface de acesso ao API do Portal de Dados Abertos" + + async def connect(self, token: str | None = None) -> None: + _token = token or self._token + + if not _token: + raise ValueError( + "A token is required to connect to DadosGov. " + "Pass it to connect(token=...) or login(token=...)." + ) + + self._token = _token + + if self._client: + await self.close() + + headers = { + "Accept": "application/json", + "User-Agent": f"PySUS/{__version__}", + "chave-api-dados-abertos": self._token, + } + + self._client = httpx.AsyncClient( + base_url=self.base_url, + headers=headers, + timeout=30.0, + follow_redirects=True, + ) + + async def login(self, token: str | None = None, **kwargs) -> None: + await self.connect(token=token) + + async def close(self) -> None: + if self._client: + await self._client.aclose() + self._client = None + + async def datasets(self, **kwargs) -> list[Dataset]: + from .databases import AVAILABLE_DATABASES + + return [db_class(client=self) for db_class in AVAILABLE_DATABASES] + + async def list_datasets(self, **kwargs) -> list[ConjuntoDados]: + if self._client is None: + raise ConnectionError( + "Client not connected. Call login(token=...) first.", + ) + + params = { + "pagina": kwargs.get("pagina", 1), + "nomeConjuntoDados": kwargs.get("nome_conjunto"), + "dadosAbertos": kwargs.get("dados_abertos"), + "isPrivado": kwargs.get("is_privado", False), + "idOrganizacao": kwargs.get("id_organizacao"), + } + params = {k: v for k, v in params.items() if v is not None} + + response = await self._client.get( + "publico/conjuntos-dados", + params=params, + ) + response.raise_for_status() + + data = response.json() + return [ConjuntoDados(**item, client=self) for item in data] + + async def get_dataset(self, id: str) -> ConjuntoDados: + if self._client is None: + raise ConnectionError( + "Client not connected. Call login(token=...) first.", + ) + + response = await self._client.get(f"publico/conjuntos-dados/{id}") + response.raise_for_status() + + return ConjuntoDados( + **response.json(), + client=self, + ) + + async def _download_file( + self, + file: BaseRemoteFile, + output: pathlib.Path, + callback: Callable[[int], None] | None = None, + ) -> pathlib.Path: + if self._client is None: + raise ConnectionError( + "Client not connected. Call login(token=...) first.", + ) + + async with self._client.stream("GET", str(file.path)) as response: + response.raise_for_status() + with open(output, "wb") as f: + async for chunk in response.aiter_bytes(): + f.write(chunk) + if callback: + callback(len(chunk)) + return output + + +class Recurso(BaseModel): + model_config = ConfigDict(populate_by_name=True) + + id: str + title: str = Field(alias="titulo") + url: str = Field(alias="link") + api_size: int = Field(alias="tamanho") + last_modified: datetime | None = Field( + None, alias="dataUltimaAtualizacaoArquivo" + ) + file_name: str | None = Field(None, alias="nomeArquivo") + + async def get_size(self) -> int: + async with httpx.AsyncClient(follow_redirects=True) as client: + response = await client.head(self.url) + + if response.status_code == 405: + response = await client.get( + self.url, + headers={"Range": "bytes=0-0"}, + ) + + size = response.headers.get("Content-Length") + return int(size) if size else 0 + + +class ConjuntoDados(BaseModel): + model_config = ConfigDict(populate_by_name=True) + client: BaseRemoteClient | None = None + + id: str + title: str = Field(alias="titulo") + slug: str = Field(alias="nome") + resources: list[Recurso] = Field(default_factory=list, alias="recursos") diff --git a/pysus/api/dadosgov/databases.py b/pysus/api/dadosgov/databases.py new file mode 100644 index 00000000..f8f033bb --- /dev/null +++ b/pysus/api/dadosgov/databases.py @@ -0,0 +1,163 @@ +from typing import Any + +from .models import Dataset + + +class CNES(Dataset): + ids: list[str] = [ + "40a0d093-b12f-44a4-bdc7-bae8eb54dd04", + "9455b341-b06e-408e-8e10-54b32b3d74ec", + ] + + @property + def name(self) -> str: + return "CNES" + + @property + def long_name(self) -> str: + return "Cadastro Nacional de Estabelecimentos de Saúde" + + @property + def description(self) -> str: + return ( + "O Cadastro Nacional de Estabelecimentos de Saúde (CNES) é o " + "sistema de informação oficial de cadastramento de informações " + "de todos os estabelecimentos de saúde no país." + ) + + def formatter(self, filename: str) -> dict[str, Any]: + raise NotImplementedError() + + +class PNI(Dataset): + ids: list[str] = [ + "2989d396-cb09-47e7-a3b8-a4b951ca0200", + "543aa08a-46c4-44e8-802e-198daa30753d", + "04292d08-ee4f-463a-b7b5-76cfb76775b3", + "7ed6eecc-c254-475c-92c5-daba5727596b", + "783b7456-6a6c-4025-a8bd-8e9caa0fb962", + "c6c3c6f3-2026-48a2-84ac-d8039714a0ba", + "9a25b796-80e3-444a-a4e7-405f5596d8ab", + ] + + @property + def name(self) -> str: + return "PNI" + + @property + def long_name(self) -> str: + return "Programa Nacional de Imunizações" + + @property + def description(self) -> str: + return "O PNI monitora a cobertura vacinal e doses aplicadas no Brasil." + + def formatter(self, filename: str) -> dict[str, Any]: + raise NotImplementedError() + + +class SIA(Dataset): + ids: list[str] = [ + "9a335cb7-2b4f-4fce-8947-e8441b4a90af", + ] + + @property + def name(self) -> str: + return "SIA" + + @property + def long_name(self) -> str: + return "Sistema de Informações Ambulatoriais" + + @property + def description(self) -> str: + return """ + O SIA acompanha as ações de saúde produzidas no âmbito ambulatorial. + """ + + def formatter(self, filename: str) -> dict[str, Any]: + raise NotImplementedError() + + +class SINAN(Dataset): + ids: list[str] = [ + "4d5e5d44-58a8-4d67-b8aa-4ef1e4b00a1c", + "5699abe0-0510-4da8-b47d-209b3bb32b34", + "4557ba96-7d52-4a56-bd6f-f99a5af09f77", + "740ce8f4-7a5d-4351-aad4-7623f2490ada", + ] + + @property + def name(self) -> str: + return "SINAN" + + @property + def long_name(self) -> str: + return "Sistema de Informação de Agravos de Notificação" + + @property + def description(self) -> str: + return """ + O SINAN é alimentado pela notificação de doenças de notificação + compulsória + """ + + def formatter(self, filename: str) -> dict[str, Any]: + raise NotImplementedError() + + +class SIM(Dataset): + ids: list[str] = [ + "5f121f4d-47c6-428e-8ec6-e8ec56417172", + ] + + @property + def name(self) -> str: + return "SIM" + + @property + def long_name(self) -> str: + return "Sistema de Informação sobre Mortalidade" + + @property + def description(self) -> str: + return """ + O SIM coleta dados sobre óbitos no país para análise epidemiológica. + """ + + def formatter(self, filename: str) -> dict[str, Any]: + raise NotImplementedError() + + +class SINASC(Dataset): + ids: list[str] = [ + "441cc6bd-684a-4afd-a88b-ba4734c9e83e", + ] + + @property + def name(self) -> str: + return "SINASC" + + @property + def long_name(self) -> str: + return "Sistema de Informações sobre Nascidos Vivos" + + @property + def description(self) -> str: + return """ + O SINASC fornece subsídios para o diagnóstico de saúde e + planejamento de políticas de natalidade. + """ + + def formatter(self, filename: str) -> dict[str, Any]: + raise NotImplementedError() + + +AVAILABLE_DATABASES: list[type[Dataset]] = [ + CNES, + PNI, + SIA, + SIM, + SINAN, + SINASC, +] diff --git a/pysus/api/dadosgov/models.py b/pysus/api/dadosgov/models.py new file mode 100644 index 00000000..314ddaa4 --- /dev/null +++ b/pysus/api/dadosgov/models.py @@ -0,0 +1,201 @@ +import asyncio +import pathlib +from abc import abstractmethod +from collections.abc import Callable +from datetime import datetime +from typing import TYPE_CHECKING, Any + +import httpx +from dateparser import parse # type: ignore[import-untyped] +from pydantic import PrivateAttr +from pysus import CACHEPATH +from pysus.api.models import BaseRemoteDataset, BaseRemoteFile, BaseRemoteGroup +from pysus.api.types import State + +from .client import ConjuntoDados, Recurso + +if TYPE_CHECKING: + from .client import DadosGov + + +class File(BaseRemoteFile): + record: Recurso + type: str = "File" + _metadata: dict[str, Any] = PrivateAttr(default_factory=dict) + + def __init__(self, **data): + metadata = data.pop("_metadata", {}) + super().__init__(**data) + self._metadata = metadata + self._path = self.record.url + + def __repr__(self): + return self.basename + + def model_post_init(self, __context: Any) -> None: + if not self.record.api_size or not self.record.last_modified: + try: + loop = asyncio.get_running_loop() + loop.create_task(self.fetch_metadata()) + except RuntimeError: + pass + + return + + @property + def extension(self) -> str: + if self.record.file_name: + return pathlib.Path(self.record.file_name).suffix + return pathlib.Path(self.record.url.split("/")[-1].split("?")[0]).suffix + + @property + def size(self) -> int: + return self.record.api_size or 0 + + @property + def modify(self) -> datetime: + m = self.record.last_modified + if not m: + raise ValueError("File requires a modify date") + return m + + @property + def year(self) -> int | None: + return self._metadata.get("year") + + @property + def month(self) -> int | None: + return self._metadata.get("month") + + @property + def state(self) -> State | None: + return self._metadata.get("state") + + async def fetch_metadata(self) -> None: + try: + async with httpx.AsyncClient( + follow_redirects=True, + timeout=5, + ) as client: + response = await client.head(str(self.path)) + + if response.status_code == 405: + response = await client.get( + str(self.path), headers={"Range": "bytes=0-0"} + ) + + size_str = response.headers.get("Content-Length") + if size_str: + self.record.api_size = int(size_str) + + last_mod_str = response.headers.get("Last-Modified") + if last_mod_str: + try: + self.record.last_modified = parse(last_mod_str) + except (TypeError, ValueError): + pass + except Exception: # noqa: B902 + pass + + async def _download( + self, + output: pathlib.Path | None = None, + callback: Callable[[int], None] | None = None, + ) -> pathlib.Path: + if not output: + output = CACHEPATH / self.name + return await self.client._download_file(self, output, callback=callback) + + async def fetch_size(self) -> int: + try: + async with httpx.AsyncClient( + follow_redirects=True, + timeout=3, + ) as client: + response = await client.head(str(self.path)) + + if response.status_code == 405: + response = await client.get( + str(self.path), headers={"Range": "bytes=0-0"} + ) + + remote_size = int(response.headers.get("Content-Length", 0)) + + if remote_size > 0: + self.record.api_size = remote_size + + return remote_size + except Exception: # noqa: B902 + return 0 + + +class Group(BaseRemoteGroup): + record: ConjuntoDados + _formatter: ( + Callable[ + [Recurso, "Group"], + dict[str, Any], + ] + | None + ) = PrivateAttr(default=None) + + def __init__( + self, + record: ConjuntoDados, + dataset: BaseRemoteDataset, + formatter: Callable | None = None, + ): + super().__init__(dataset=dataset) + self.record = record + self._formatter = formatter + + def __repr__(self): + return self.name + + @property + def name(self) -> str: + return self.record.slug + + @property + def long_name(self) -> str: + return self.record.title + + @property + def description(self) -> str: + return "" + + async def _fetch_files(self) -> list[BaseRemoteFile]: + files: list[BaseRemoteFile] = [] + for recurso in self.record.resources: + metadata = self._formatter(recurso, self) if self._formatter else {} + file = File( + record=recurso, + dataset=self.dataset, + group=self, + _metadata=metadata, + ) + files.append(file) + return files + + +class Dataset(BaseRemoteDataset): + ids: list[str] = [] + client: "DadosGov" + + def __repr__(self): + return self.name + + @abstractmethod + def formatter(self, filename: str) -> dict[str, Any]: + pass + + async def _fetch_content(self) -> list[Group]: + items: list[Group] = [] + client: "DadosGov" = self.client + if self.ids: + for group_id in self.ids: + record = await client.get_dataset(group_id) + items.append( + Group(record=record, dataset=self, formatter=self.formatter) + ) + return items diff --git a/pysus/api/ducklake/README.ipynb b/pysus/api/ducklake/README.ipynb new file mode 100644 index 00000000..e69de29b diff --git a/pysus/api/ducklake/__init__.py b/pysus/api/ducklake/__init__.py new file mode 100644 index 00000000..2d2f5d16 --- /dev/null +++ b/pysus/api/ducklake/__init__.py @@ -0,0 +1 @@ +from .client import DuckLake as DuckLakeClient # noqa diff --git a/pysus/api/ducklake/catalog.py b/pysus/api/ducklake/catalog.py new file mode 100644 index 00000000..b6d7d06d --- /dev/null +++ b/pysus/api/ducklake/catalog.py @@ -0,0 +1,222 @@ +import enum +from datetime import datetime +from typing import Optional + +from sqlalchemy import ( + Boolean, + Column, + DateTime, + Enum, + ForeignKey, + Index, + Integer, + Sequence, + String, + Table, +) +from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, relationship + + +class Base(DeclarativeBase): + pass + + +file_columns = Table( + "file_columns", + Base.metadata, + Column( + "file_id", + Integer, + ForeignKey("pysus.files.id"), + primary_key=True, + ), + Column( + "column_id", + Integer, + ForeignKey("pysus.dataset_columns.id"), + primary_key=True, + ), + schema="pysus", +) + + +class CatalogTable(Base): + __abstract__ = True + __table_args__: tuple = ({"schema": "pysus"},) + + +class Origin(enum.Enum): + FTP = "ftp" + API = "api" + + +class CatalogDataset(CatalogTable): + __tablename__ = "datasets" + + id = Column( + Integer, + Sequence("datasets_id_seq", schema="pysus"), + primary_key=True, + ) + name = Column(String, nullable=False, unique=True, index=True) + long_name = Column(String, nullable=False) + description = Column(String, nullable=True) + origin = Column(Enum(Origin), nullable=False) + + groups = relationship( + "DatasetGroup", + back_populates="dataset", + cascade="all, delete-orphan", + ) + files = relationship( + "CatalogFile", + back_populates="dataset", + cascade="all, delete-orphan", + ) + columns = relationship( + "ColumnDefinition", + back_populates="dataset", + cascade="all, delete-orphan", + ) + + +class ColumnDefinition(CatalogTable): + __tablename__ = "dataset_columns" + + id = Column( + Integer, + Sequence("columns_id_seq", schema="pysus"), + primary_key=True, + ) + dataset_id = Column( + Integer, + ForeignKey("pysus.datasets.id"), + nullable=False, + index=True, + ) + name = Column(String, nullable=False) + type = Column(String, nullable=False) + description = Column(String, nullable=True) + nullable = Column(Boolean, nullable=False, default=True) + + dataset = relationship("CatalogDataset", back_populates="columns") + files = relationship( + "CatalogFile", + secondary=file_columns, + back_populates="columns", + ) + + __table_args__ = ( + Index("ix_columns_dataset_name", "dataset_id", "name"), + {"schema": "pysus"}, + ) + + +class DatasetGroup(CatalogTable): + __tablename__ = "dataset_groups" + + id = Column( + Integer, + Sequence("groups_id_seq", schema="pysus"), + primary_key=True, + ) + name = Column(String, nullable=False) + dataset_id = Column( + Integer, + ForeignKey("pysus.datasets.id"), + nullable=False, + index=True, + ) + long_name = Column(String, nullable=False) + description = Column(String, nullable=True) + + dataset = relationship("CatalogDataset", back_populates="groups") + files = relationship( + "CatalogFile", + back_populates="group", + cascade="all, delete-orphan", + ) + + __table_args__ = ( + Index("ix_groups_dataset_name", "dataset_id", "name"), + {"schema": "pysus"}, + ) + + +class CatalogFile(CatalogTable): + __tablename__ = "files" + + id: Mapped[int] = mapped_column( + Integer, + Sequence("files_id_seq", schema="pysus"), + primary_key=True, + ) + dataset_id: Mapped[int] = mapped_column( + Integer, ForeignKey("pysus.datasets.id"), nullable=False, index=True + ) + group_id: Mapped[int | None] = mapped_column( + Integer, + ForeignKey("pysus.dataset_groups.id"), + nullable=True, + index=True, + ) + + path: Mapped[str] = mapped_column(String, nullable=False, unique=True) + size: Mapped[int] = mapped_column(Integer, nullable=False) + rows: Mapped[int] = mapped_column(Integer, nullable=False) + modified: Mapped[datetime] = mapped_column(DateTime, nullable=False) + origin_modified: Mapped[datetime | None] = mapped_column( + DateTime, + nullable=True, + ) + origin_path: Mapped[str] = mapped_column(String, nullable=False) + sha256: Mapped[str | None] = mapped_column( + String(64), + nullable=True, + index=True, + ) + + year: Mapped[int | None] = mapped_column( + Integer, + nullable=True, + index=True, + ) + month: Mapped[int | None] = mapped_column( + Integer, + nullable=True, + index=True, + ) + state: Mapped[str | None] = mapped_column( + String(2), + nullable=True, + index=True, + ) + + dataset: Mapped["CatalogDataset"] = relationship( + "CatalogDataset", + back_populates="files", + ) + group: Mapped[Optional["DatasetGroup"]] = relationship( + "DatasetGroup", + back_populates="files", + ) + columns: Mapped[list["ColumnDefinition"]] = relationship( + "ColumnDefinition", + secondary=file_columns, + back_populates="files", + cascade="all, delete", + ) + + __table_args__ = ( + Index("ix_files_dataset_group", "dataset_id", "group_id"), + Index("ix_files_temporal", "year", "month"), + Index( + "ix_files_lookup", + "dataset_id", + "group_id", + "year", + "month", + "state", + ), + {"schema": "pysus"}, + ) diff --git a/pysus/api/ducklake/client.py b/pysus/api/ducklake/client.py new file mode 100644 index 00000000..f7436c66 --- /dev/null +++ b/pysus/api/ducklake/client.py @@ -0,0 +1,248 @@ +from collections.abc import Callable +from pathlib import Path +from typing import Any + +import boto3 +import httpx +from anyio import to_thread +from botocore.config import Config +from pydantic import BaseModel, PrivateAttr, SecretStr +from pysus import CACHEPATH +from pysus.api.models import BaseRemoteClient, BaseRemoteFile +from sqlalchemy import create_engine +from sqlalchemy.orm import joinedload, sessionmaker +from sqlalchemy.pool import StaticPool + +from .catalog import CatalogDataset, DatasetGroup +from .models import Dataset, File + + +class DuckLakeCredentials(BaseModel): + access_key: SecretStr + secret_key: SecretStr + + +class DuckLake(BaseRemoteClient): + endpoint: str = "nbg1.your-objectstorage.com" + region: str = "nbg1" + bucket: str = "pysus" + credentials: DuckLakeCredentials | None = None + + _cache_dir: Path = PrivateAttr() + _catalog_local: Path = PrivateAttr() + _catalog_remote: str = "public/catalog.db" + _s3_client: Any = PrivateAttr(default=None) + _engine: Any = PrivateAttr(default=None) + _Session: Any = PrivateAttr(default=None) + + def __init__(self, engine=None, **data): + super().__init__(**data) + self._engine = engine + self._cache_dir = Path(CACHEPATH) / "ducklake" + self._cache_dir.mkdir(parents=True, exist_ok=True) + self._catalog_local = self._cache_dir / "catalog.db" + + @property + def name(self) -> str: + return "DuckLake" + + @property + def long_name(self) -> str: + return "PySUS s3 Client" + + @property + def description(self) -> str: + return "" # TODO: + + @property + def catalog_path(self) -> Path: + return self._catalog_local + + @property + def _catalog_url(self) -> str: + return f"https://{self.endpoint}/{self.bucket}/{self._catalog_remote}" + + @property + def _is_authenticated(self) -> bool: + return self.credentials is not None + + async def datasets(self, **kwargs) -> list[Dataset]: + if not self._Session: + await self.connect() + + def _fetch(): + with self._Session() as session: + results = ( + session.query(CatalogDataset) + .options( + joinedload(CatalogDataset.groups).joinedload( + DatasetGroup.files + ), + joinedload(CatalogDataset.files), + ) + .all() + ) + session.expunge_all() + return results + + records = await to_thread.run_sync(_fetch) + return [Dataset(record=rec, client=self) for rec in records] + + async def login( + self, + access_key: str | None = None, + secret_key: str | None = None, + **kwargs, + ) -> None: + if access_key and secret_key: + self.credentials = DuckLakeCredentials( + access_key=SecretStr(access_key), + secret_key=SecretStr(secret_key), + ) + else: + self.credentials = None + + await self.connect(force=True) + + if self._is_authenticated: + self._s3_client = await to_thread.run_sync( + self._get_s3_client, + ) + + def _setup_engine(self): + engine = create_engine( + f"duckdb:///{self._catalog_local}", + poolclass=StaticPool, + ) + + with engine.connect() as conn: + conn.exec_driver_sql("INSTALL ducklake; LOAD ducklake;") + + has_pysus = conn.exec_driver_sql( + """ + SELECT 1 FROM information_schema.schemata WHERE + schema_name = 'pysus' + """ + ).fetchone() + + if has_pysus: + conn.exec_driver_sql("SET search_path='pysus,main';") + else: + conn.exec_driver_sql("SET search_path='main';") + + s3_cfg = { + "s3_endpoint": self.endpoint, + "s3_region": self.region, + "s3_url_style": "path", + "s3_use_ssl": "true", + } + + if self.credentials and self._is_authenticated: + s3_cfg["s3_access_key_id"] = ( + self.credentials.access_key.get_secret_value() + ) + s3_cfg["s3_secret_access_key"] = ( + self.credentials.secret_key.get_secret_value() + ) + + for key, value in s3_cfg.items(): + conn.exec_driver_sql(f"SET {key}='{value}';") + + conn.commit() + + return engine + + async def connect(self, force: bool = False): + if self._engine and not force: + if not self._Session: + self._Session = sessionmaker(bind=self._engine) + return + + await self._load_catalog() + self._engine = await to_thread.run_sync(self._setup_engine) + self._Session = sessionmaker(bind=self._engine) + + async def close(self): + if self._engine: + await to_thread.run_sync(self._engine.dispose) + + self._engine = None + self._Session = None + + if self._is_authenticated: + await self._upload_catalog() + + self._s3_client = None + + async def _download_file( + self, + file: BaseRemoteFile, + output: Path, + callback: Callable[[int], None] | None = None, + ) -> Path: + if not isinstance(file, File): + raise ValueError("FTP File was not properly instantiated") + + url = f"https://{self.endpoint}/{self.bucket}/{file.record.path}" + async with httpx.AsyncClient(follow_redirects=True) as client: + async with client.stream("GET", url) as r: + r.raise_for_status() + with open(output, "wb") as f: + async for chunk in r.aiter_bytes(chunk_size=1024 * 1024): + await to_thread.run_sync(f.write, chunk) + if callback: + callback(len(chunk)) + return output + + async def _download_catalog(self, client: httpx.AsyncClient): + async with client.stream("GET", self._catalog_url) as r: + r.raise_for_status() + with open(self._catalog_local, "wb") as f: + async for chunk in r.aiter_bytes(chunk_size=1024 * 1024): + await to_thread.run_sync(f.write, chunk) + + def _get_s3_client(self): + if not self.credentials: + raise ConnectionError("S3 Credentials not found") + return boto3.client( + "s3", + endpoint_url=f"https://{self.endpoint}", + aws_access_key_id=self.credentials.access_key.get_secret_value(), + aws_secret_access_key=( + self.credentials.secret_key.get_secret_value() + ), + region_name=self.region, + config=Config(signature_version="s3v4"), + ) + + async def _load_catalog(self): + async with httpx.AsyncClient(follow_redirects=True) as client: + local_size = -1 + if self._catalog_local.exists(): + try: + local_size = self._catalog_local.stat().st_size + except OSError: + pass + try: + head = await client.head(self._catalog_url) + head.raise_for_status() + remote_size = int(head.headers.get("content-length", 0)) + except Exception: # noqa: B902 + remote_size = 0 + if remote_size != local_size: + await self._download_catalog(client) + + async def _upload_catalog(self): + if not self._is_authenticated: + raise PermissionError( + "Admin credentials required to upload catalog.", + ) + + def _upload(): + self._s3_client.upload_file( + str(self._catalog_local), + self.bucket, + self._catalog_remote, + ) + + await to_thread.run_sync(_upload) diff --git a/pysus/api/ducklake/models.py b/pysus/api/ducklake/models.py new file mode 100644 index 00000000..d0038712 --- /dev/null +++ b/pysus/api/ducklake/models.py @@ -0,0 +1,162 @@ +import hashlib +from collections.abc import Callable +from datetime import datetime +from pathlib import Path +from typing import Union + +import anyio +from pydantic import Field +from pysus import CACHEPATH +from pysus.api.models import ( + BaseRemoteClient, + BaseRemoteDataset, + BaseRemoteFile, + BaseRemoteGroup, +) + +from .catalog import CatalogDataset, CatalogFile, DatasetGroup + + +class File(BaseRemoteFile): + record: CatalogFile = Field(exclude=True) + parent: Union["Dataset", "Group"] = Field(exclude=True) + + type: str = "remote" + + @property + def basename(self) -> str: + return self.path.name + + @property + def extension(self) -> str: + return self.path.suffix + + @property + def size(self) -> int: + return self.record.size + + @property + def modify(self) -> datetime: + return self.record.modified + + @property + def rows(self) -> int: + return self.record.rows + + @property + def sha256(self) -> str | None: + return self.record.sha256 + + async def _download( + self, + output: Path | None = None, + callback: Callable[[int], None] | None = None, + ) -> Path: + if not output: + output = CACHEPATH / self.name + return await self.client._download_file( + self, + output, + callback=callback, + ) + + async def verify(self, path: Path) -> bool: + if not self.sha256: + return True + + def _calculate(): + sha256_hash = hashlib.sha256() + with open(path, "rb") as f: + for byte_block in iter(lambda: f.read(8192), b""): + sha256_hash.update(byte_block) + return sha256_hash.hexdigest() + + actual_hash = await anyio.to_thread.run_sync(_calculate) + return actual_hash == self.sha256 + + +class Group(BaseRemoteGroup): + record: DatasetGroup = Field(exclude=True) + dataset: "Dataset" = Field(exclude=True) + + @property + def name(self) -> str: + return self.record.name + + @property + def long_name(self) -> str: + return ( + self.record.group_metadata.long_name + if self.record.group_metadata + else self.name + ) + + @property + def description(self) -> str: + if self.record.group_metadata: + return self.record.group_metadata.description + return "" + + async def _fetch_files(self) -> list[BaseRemoteFile]: + return [ + File( + path=f.path, + record=f, + parent=self, + dataset=self.dataset, + ) + for f in self.record.files + ] + + +class Dataset(BaseRemoteDataset): + record: CatalogDataset = Field(exclude=True) + client: BaseRemoteClient = Field(exclude=True) + + def __repr__(self) -> str: + return self.name.upper() + + @property + def name(self) -> str: + return self.record.name + + @property + def long_name(self) -> str: + return ( + self.record.dataset_metadata.long_name + if self.record.dataset_metadata + else self.name + ) + + @property + def description(self) -> str: + return ( + self.record.dataset_metadata.description + if self.record.dataset_metadata + else "" + ) + + async def _fetch_content( + self, + ) -> list[Group | File]: + items: list[Group | File] = [] + + if self.record.groups: + items.extend( + [Group(record=g, dataset=self) for g in self.record.groups], + ) + + if self.record.files: + items.extend( + [ + File( + path=f.path, + record=f, + parent=self, + dataset=self, + ) + for f in self.record.files + ], + ) + + return items diff --git a/pysus/api/extensions.py b/pysus/api/extensions.py new file mode 100644 index 00000000..90d3a196 --- /dev/null +++ b/pysus/api/extensions.py @@ -0,0 +1,748 @@ +import asyncio +import csv +import ctypes.util +import gzip +import shutil +import sys +import tarfile +import zipfile +from collections.abc import AsyncGenerator, Callable +from datetime import datetime +from pathlib import Path +from typing import ClassVar + +import chardet +import magic +import pandas as pd +import pyarrow as pa +import pyarrow.parquet as pq +from anyio import to_thread +from dbfread import DBF as DBFReader +from pydantic import Field, PrivateAttr +from pysus import CACHEPATH +from pysus.api.models import BaseCompressedFile, BaseLocalFile, BaseTabularFile + +from .types import FileType + +try: + LIBFFI = True + if sys.platform.startswith("linux"): + LIBFFI = ctypes.util.find_library("ffi") is not None + + if LIBFFI: + from pyreaddbc import dbc2dbf + + DBC_IMPORT = True + else: + DBC_IMPORT = False +except ImportError: + DBC_IMPORT = False + + +class File(BaseLocalFile): + type: FileType = Field("FILE") + + async def load(self) -> bytes: + return await to_thread.run_sync(self.path.read_bytes) + + async def stream( + self, + chunk_size: int = 1024 * 1024, + ) -> AsyncGenerator[bytes, None]: + def _read_sync(): + with open(self.path, "rb") as f: + while chunk := f.read(chunk_size): + yield chunk + + for chunk in _read_sync(): + yield chunk + await asyncio.sleep(0) + + +class Directory(BaseLocalFile): + type: FileType = Field("DIR") + + def __repr__(self) -> str: + return f"{self.basename}/" + + async def load(self) -> list[BaseLocalFile]: + from pysus.api.extensions import ExtensionFactory + + if not self.path.exists(): + return [] + + paths = list(self.path.iterdir()) + tasks = [ExtensionFactory.instantiate(p) for p in paths] + return list(await asyncio.gather(*tasks)) + + async def stream( + self, + chunksize: int = 10000, + ) -> AsyncGenerator[BaseLocalFile, None]: + from pysus.api.extensions import ExtensionFactory + + for p in self.path.iterdir(): + yield await ExtensionFactory.instantiate(p) + + +class CSV(BaseTabularFile): + type: FileType = Field("CSV") + _encoding: str | None = PrivateAttr(default=None) + _sep: str | None = PrivateAttr(default=None) + + @property + def columns(self) -> list[str]: + df = pd.read_csv(self.path, sep=",", nrows=0) + return df.columns.tolist() + + @property + def rows(self) -> int: + count = 0 + with open(self.path, "rb") as f: + for _ in f: + count += 1 + return max(0, count - 1) + + async def _get_encoding(self) -> str: + if self._encoding is None: + + def detect(): + with open(self.path, "rb") as f: + return chardet.detect(f.read(1024 * 300)) + + result = await to_thread.run_sync(detect) + self._encoding = result["encoding"] or "utf-8" + return self._encoding + + async def _get_sep(self) -> str: + if self._sep is None: + encoding = await self._get_encoding() + + def sniff(): + try: + with open(self.path, encoding=encoding) as f: + sample = f.read(1024 * 10) + dialect = csv.Sniffer().sniff(sample) + return dialect.delimiter + except ValueError: + return "," + + self._sep = await to_thread.run_sync(sniff) + return self._sep + + async def load(self) -> pd.DataFrame: + encoding = await self._get_encoding() + separator = await self._get_sep() + + def _read_sync(): + return pd.read_csv( + self.path, sep=separator, encoding=encoding, low_memory=False + ) + + return await to_thread.run_sync(_read_sync) + + async def stream( + self, + chunk_size: int = 10000, + ) -> AsyncGenerator[pd.DataFrame, None]: + encoding = await self._get_encoding() + separator = await self._get_sep() + + def _get_reader_sync(): + return pd.read_csv( + self.path, + sep=separator, + encoding=encoding, + chunksize=chunk_size, + dtype=str, + low_memory=False, + ) + + reader = await to_thread.run_sync(_get_reader_sync) + for chunk in reader: + yield chunk + await asyncio.sleep(0) + + +class Parquet(BaseTabularFile): + type: FileType = Field("PARQUET") + + @property + def schema(self) -> pa.Schema: + return pq.read_schema(self.path) + + @property + def columns(self) -> list[str]: + return pq.read_schema(self.path).names + + @property + def rows(self) -> int: + return pq.read_metadata(self.path).num_rows + + async def load(self, parse: bool = True) -> pd.DataFrame: + def _load(): + df = pd.read_parquet(self.path, engine="pyarrow") + return self.parse_dftypes(df) if parse else df + + return await to_thread.run_sync(_load) + + async def stream( + self, chunk_size: int = 10000, parse: bool = False + ) -> AsyncGenerator[pd.DataFrame, None]: + parquet_file = await to_thread.run_sync(pq.ParquetFile, self.path) + + for batch in parquet_file.iter_batches(batch_size=chunk_size): + df = batch.to_pandas() + if parse: + df = self.parse_dftypes(df) + yield df + await asyncio.sleep(0) + + @staticmethod + def parse_dftypes(df: pd.DataFrame) -> pd.DataFrame: + def str_to_int(string): + if pd.isna(string): + return string + clean = str(string).replace(" ", "") + return int(clean) if clean.isnumeric() else string + + def str_to_date(string): + if isinstance(string, str): + try: + return datetime.strptime(string, "%Y%m%d").date() + except ValueError: + return string + return string + + cols_to_date = ["DT_NOTIFIC", "DT_SIN_PRI", "DT_NASC", "DT_INTER"] + cols_to_int = ["CODMUNRES", "IDADE"] + + for col in df.columns: + if col in cols_to_date: + df[col] = df[col].map(str_to_date) + elif col in cols_to_int: + df[col] = df[col].map(str_to_int) + + df = df.replace(r"^\s+$", "", regex=True) + + return df.convert_dtypes() + + +class DBF(BaseTabularFile): + type: FileType = Field("DBF") + + @property + def columns(self) -> list[str]: + return DBFReader(self.path, load=False).field_names + + @property + def rows(self) -> int: + return len(DBFReader(self.path, load=False)) + + def decode_column(self, value): + if isinstance(value, bytes): + return ( + value.decode(encoding="cp1252", errors="replace") + .replace("\x00", "") + .strip() + ) + if isinstance(value, str): + return value.replace("\x00", "").strip() + return value + + async def load(self) -> pd.DataFrame: + def _load(): + dbf = DBFReader(self.path, encoding="cp1252", raw=True) + df = pd.DataFrame(iter(dbf)) + return df.map(self.decode_column) + + return await to_thread.run_sync(_load) + + async def stream( + self, + chunk_size: int = 30000, + ) -> AsyncGenerator[pd.DataFrame, None]: + def _get_db(): + return DBFReader(self.path, encoding="cp1252", raw=True) + + dbf_file = await to_thread.run_sync(_get_db) + records = [] + for i, record in enumerate(dbf_file): + records.append(record) + if (i + 1) % chunk_size == 0: + df = pd.DataFrame(records).map(self.decode_column) + yield df + records = [] + await asyncio.sleep(0) + if records: + yield pd.DataFrame(records).map(self.decode_column) + + async def to_parquet( + self, + output_path: str | Path | None = None, + chunk_size: int = 30000, + callback: Callable[[int, int], None] | None = None, + ) -> "Parquet": + from pysus.api.extensions import ExtensionFactory + + out = ( + Path(output_path or self.path.with_suffix(".parquet")) + .expanduser() + .resolve() + ) + + if out.exists(): + file = await ExtensionFactory.instantiate(out) + if not isinstance(file, Parquet): + raise RuntimeError(f"Could not parse {out} to Parquet") + + async def _stream_to_single_file(): + dbf_reader = DBFReader(self.path, encoding="cp1252", raw=True) + total_rows = len(dbf_reader) + writer = None + records = [] + + try: + for i, record in enumerate(dbf_reader): + records.append(record) + current_count = i + 1 + + if current_count % chunk_size == 0: + df = pd.DataFrame(records).map(self.decode_column) + table = pa.Table.from_pandas(df) + if writer is None: + writer = pq.ParquetWriter(str(out), table.schema) + writer.write_table(table) + records = [] + + if callback: + callback(current_count, total_rows) + await asyncio.sleep(0) + + if records: + df = pd.DataFrame(records).map(self.decode_column) + table = pa.Table.from_pandas(df) + if writer is None: + writer = pq.ParquetWriter(str(out), table.schema) + writer.write_table(table) + + if callback: + callback(total_rows, total_rows) + + if writer is None: + df_empty = pd.DataFrame(columns=pd.Index(self.columns)) + table_empty = pa.Table.from_pandas(df_empty) + writer = pq.ParquetWriter(str(out), table_empty.schema) + + finally: + if writer: + writer.close() + + await _stream_to_single_file() + file = await ExtensionFactory.instantiate(out) + if not isinstance(file, Parquet): + raise RuntimeError(f"Could not parse {out} to Parquet") + return file + + +class DBC(BaseTabularFile): + type: FileType = Field("DBC") + + @property + def columns(self) -> list[str]: + raise NotImplementedError( + "DBC metadata cannot be read directly. Convert to Parquet first." + ) + + @property + def rows(self) -> int: + raise NotImplementedError( + "DBC metadata cannot be read directly. Convert to Parquet first." + ) + + async def load(self) -> pd.DataFrame: + parquet = await self.to_parquet() + return await parquet.load() + + async def stream( + self, + chunk_size: int = 10000, + ) -> AsyncGenerator[pd.DataFrame, None]: + parquet = await self.to_parquet() + async for chunk in parquet.stream(chunk_size=chunk_size): + yield chunk + + async def to_parquet( + self, + output_path: str | Path | None = None, + chunk_size: int = 30000, + callback: Callable[[int, int], None] | None = None, + ) -> "Parquet": + from pysus.api.extensions import ExtensionFactory + + if output_path is None: + output_path = self.path.with_suffix(".parquet") + + output_path = Path(output_path).expanduser().resolve() + if output_path.exists(): + file = await ExtensionFactory.instantiate(output_path) + if not isinstance(file, Parquet): + raise RuntimeError(f"Could not parse {output_path} to parquet") + return file + + tmp_dbf_path = self.path.with_suffix(".dbf") + try: + await to_thread.run_sync( + dbc2dbf, + str(self.path), + str(tmp_dbf_path), + ) + dbf_ext = await ExtensionFactory.instantiate(tmp_dbf_path) + if not isinstance(dbf_ext, BaseTabularFile): + raise RuntimeError(f"Not a DBF: {dbf_ext}") + return await dbf_ext.to_parquet( + output_path=output_path, + chunk_size=chunk_size, + callback=callback, + ) + finally: + if tmp_dbf_path.exists(): + await to_thread.run_sync(tmp_dbf_path.unlink) + + +class JSON(BaseTabularFile): + type: FileType = Field("JSON") + + @property + def columns(self) -> list[str]: + df = ( + pd.read_json(self.path, nrows=0) + if self.path.stat().st_size > 0 + else pd.DataFrame() + ) + return df.columns.tolist() + + @property + def rows(self) -> int: + return len(pd.read_json(self.path)) + + async def load(self) -> pd.DataFrame: + return await to_thread.run_sync(pd.read_json, self.path) + + async def stream( + self, + chunk_size: int = 10000, + ) -> AsyncGenerator[pd.DataFrame, None]: + yield await self.load() + + +class PDF(BaseLocalFile): + type: FileType = Field("PDF") + + async def load(self) -> bytes: + return await to_thread.run_sync(self.path.read_bytes) + + async def stream( + self, chunk_size: int | None = None + ) -> AsyncGenerator[bytes, None]: + def _read(): + with open(self.path, "rb") as f: + if chunk_size: + while chunk := f.read(chunk_size): + yield chunk + else: + yield f.read() + + for chunk in _read(): + yield chunk + await asyncio.sleep(0) + + +class Zip(BaseCompressedFile): + type: FileType = Field("ZIP") + + async def load(self) -> zipfile.ZipFile: + return await to_thread.run_sync(zipfile.ZipFile, self.path) + + async def list_members(self) -> list[str]: + def _list(): + with zipfile.ZipFile(self.path) as z: + return z.namelist() + + return await to_thread.run_sync(_list) + + async def open_member(self, member_name: str) -> bytes: + def _read(): + with zipfile.ZipFile(self.path) as z: + return z.read(member_name) + + return await to_thread.run_sync(_read) + + async def extract( + self, + target_dir: Path = CACHEPATH, + ) -> list[BaseLocalFile]: + from pysus.api.extensions import ExtensionFactory + + target_dir = Path(target_dir).expanduser().resolve() + target_dir.mkdir(parents=True, exist_ok=True) + + def _extract_sync(): + with zipfile.ZipFile(self.path) as z: + z.extractall(target_dir) + + await to_thread.run_sync(_extract_sync) + + members = await self.list_members() + tasks = [ExtensionFactory.instantiate(target_dir / m) for m in members] + return list(await asyncio.gather(*tasks)) + + async def to_parquet( + self, + output_path: str | Path | None = None, + chunk_size: int = 30000, + callback: Callable[[int, int], None] | None = None, + ) -> "Parquet": + final_output = ( + Path(output_path or self.path.with_suffix(".parquet")) + .expanduser() + .resolve() + ) + temp_dir = self.path.with_suffix(".tmp_extract") + + try: + extracted_files = await self.extract(target_dir=temp_dir) + + tabular_file = next( + (f for f in extracted_files if isinstance(f, BaseTabularFile)), + None, + ) + + if not tabular_file: + raise ValueError( + f"No tabular file found inside {self.path.name}", + ) + + return await tabular_file.to_parquet( + output_path=final_output, + chunk_size=chunk_size, + callback=callback, + ) + finally: + await self._safe_cleanup(temp_dir) + + async def _safe_cleanup(self, directory: Path): + def _cleanup(): + if not directory.exists(): + return + + for item in directory.iterdir(): + if item.is_file(): + item.unlink() + elif item.is_dir(): + for subitem in item.iterdir(): + if subitem.is_file(): + subitem.unlink() + item.rmdir() + + if directory.exists(): + directory.rmdir() + + await to_thread.run_sync(_cleanup) + + +class GZip(BaseCompressedFile): + type: FileType = Field("ZIP") + + async def load(self) -> bytes: + def _read(): + with gzip.open(self.path, "rb") as f: + return f.read() + + return await to_thread.run_sync(_read) + + async def list_members(self) -> list[str]: + return [self.path.stem] + + async def open_member(self, member_name: str) -> bytes: + return await self.load() + + async def extract( + self, + target_dir: Path = CACHEPATH, + ) -> list[BaseLocalFile]: + from pysus.api.extensions import ExtensionFactory + + target_dir.mkdir(parents=True, exist_ok=True) + out_file = target_dir / self.path.stem + + def _decompress(): + with ( + gzip.open(self.path, "rb") as f_in, + open( + out_file, + "wb", + ) as f_out, + ): + shutil.copyfileobj(f_in, f_out) + + await to_thread.run_sync(_decompress) + return [await ExtensionFactory.instantiate(out_file)] + + +class Tar(BaseCompressedFile): + type: FileType = Field("ZIP") + + async def load(self) -> tarfile.TarFile: + return await to_thread.run_sync(tarfile.open, self.path) + + async def list_members(self) -> list[str]: + def _list(): + with tarfile.open(self.path) as t: + return t.getnames() + + return await to_thread.run_sync(_list) + + async def open_member(self, member_name: str) -> bytes: + def _read(): + with tarfile.open(self.path) as t: + f = t.extractfile(member_name) + return f.read() if f else b"" + + return await to_thread.run_sync(_read) + + async def extract( + self, + target_dir: Path = CACHEPATH, + ) -> list[BaseLocalFile]: + from pysus.api.extensions import ExtensionFactory + + target_dir.mkdir(parents=True, exist_ok=True) + members = await self.list_members() + + def _extract(): + with tarfile.open(self.path) as t: + t.extractall(target_dir) + + await to_thread.run_sync(_extract) + tasks = [ExtensionFactory.instantiate(target_dir / m) for m in members] + return list(await asyncio.gather(*tasks)) + + +class FTPNotImported(BaseTabularFile): + path: Path = Field(default_factory=lambda: Path("...")) + type: str | FileType = Field(default="remote") + import_err: ClassVar[ + str + ] = """ + run "pip install pysus[dbc]" to handle DBC files. + Make sure you also have libffi installed on the system. It may not work + on Windows + """ + + @property + def name(self) -> str: + raise ImportError(self.import_err) + + @property + def extension(self) -> str: + return ".dbc" + + @property + def size(self) -> int: + raise ImportError(self.import_err) + + @property + def modify(self) -> datetime: + raise ImportError(self.import_err) + + @property + def columns(self) -> list[str]: + raise ImportError(self.import_err) + + @property + def rows(self) -> int: + raise ImportError(self.import_err) + + async def load(self) -> pd.DataFrame: + raise ImportError(self.import_err) + + def stream( + self, + chunk_size: int = 10000, + ) -> AsyncGenerator[pd.DataFrame, None]: + async def _internal_gen(): + raise ImportError(self.import_err) + yield pd.DataFrame() + + return _internal_gen() + + async def to_parquet( + self, + output_path: str | Path | None = None, + chunk_size: int = 10000, + callback: Callable[[int, int], None] | None = None, + ) -> Parquet: + + raise ImportError(self.import_err) + + +class ExtensionFactory: + _mime: dict[str, type[BaseLocalFile]] = { + "application/zip": Zip, + "application/x-gzip": GZip, + "application/x-tar": Tar, + "text/csv": CSV, + "application/pdf": PDF, + "application/json": JSON, + } + + _extensions: dict[str, type[BaseLocalFile]] = { + ".zip": Zip, + ".gz": GZip, + ".tar": Tar, + ".tgz": Tar, + ".tar.gz": Tar, + ".csv": CSV, + ".parquet": Parquet, + ".dbf": DBF, + ".dbc": DBC if DBC_IMPORT else FTPNotImported, # type: ignore + ".pdf": PDF, + ".json": JSON, + } + + @classmethod + async def _identify(cls, path: Path) -> type[BaseLocalFile] | None: + try: + mime = await to_thread.run_sync( + magic.from_file, + str(path), + True, + ) + return cls._mime.get(mime) + except (magic.MagicException, OSError): + return None + + @classmethod + async def get_file_class(cls, path: Path) -> type[BaseLocalFile]: + mime_class = await cls._identify(path) + if mime_class: + return mime_class + extension = "".join(path.suffixes).lower() + if extension in cls._extensions: + return cls._extensions[extension] + return cls._extensions.get(path.suffix.lower(), File) + + @classmethod + async def instantiate(cls, path: str | Path) -> BaseLocalFile: + path = Path(path).expanduser().resolve() + if await to_thread.run_sync(path.is_dir): + return Directory(path=path, type="DIR") + + FileClass = await cls.get_file_class(path) + file_type = getattr(FileClass, "type", "FILE") + + if not isinstance(file_type, str): + file_type = "FILE" + + return FileClass(path=path, type=file_type) diff --git a/pysus/api/ftp/README.ipynb b/pysus/api/ftp/README.ipynb new file mode 100644 index 00000000..e69de29b diff --git a/pysus/api/ftp/__init__.py b/pysus/api/ftp/__init__.py new file mode 100644 index 00000000..d30edd44 --- /dev/null +++ b/pysus/api/ftp/__init__.py @@ -0,0 +1 @@ +from .client import FTP as FTPClient # noqa diff --git a/pysus/api/ftp/client.py b/pysus/api/ftp/client.py new file mode 100644 index 00000000..e7d348ae --- /dev/null +++ b/pysus/api/ftp/client.py @@ -0,0 +1,174 @@ +from __future__ import annotations + +import pathlib +from collections.abc import Callable +from datetime import datetime +from ftplib import FTP as FTPLib +from typing import TYPE_CHECKING, Any, TypedDict + +from anyio import to_thread +from pydantic import PrivateAttr +from pysus.api.models import BaseRemoteClient, BaseRemoteFile + +if TYPE_CHECKING: + from pysus.api.types import State + + from .models import Dataset + + +class FTPGroupInfo(TypedDict): + name: str + long_name: str | None + description: str | None + + +class FTPFileInfo(TypedDict): + name: str + size: int + type: str + modify: datetime + group: FTPGroupInfo | None + year: int | None + month: int | None + state: State | None + + +class FTP(BaseRemoteClient): + host: str = "ftp.datasus.gov.br" + + _ftp: FTPLib | None = PrivateAttr(default=None) + + @property + def name(self) -> str: + return "FTP" + + @property + def long_name(self) -> str: + return "Pysus FTP Client" + + @property + def description(self) -> str: + return """ + O cliente FTP do pysus foi desenvolvido para fornecer uma interface + assíncrona e moderna para navegação e extração de dados diretamente + dos servidores do DATASUS. Ele resolve a complexidade de lidar com + o protocolo FTP legado, transformando listagens de diretórios brutas + em objetos Python estruturados e pesquisáveis. + """ + + @property + def ftp(self) -> FTPLib | None: + return self._ftp + + async def connect(self) -> None: + def _connect(): + if self.ftp is None: + self._ftp = FTPLib(self.host) + self.ftp.login() + + await to_thread.run_sync(_connect) + + async def login(self, **kwargs) -> None: + await self.connect() + + async def close(self) -> None: + def _close(): + if self.ftp: + try: + self.ftp.quit() + except Exception: # noqa + self.ftp.close() + finally: + self._ftp = None + + await to_thread.run_sync(_close) + + async def datasets(self, **kwargs) -> list[Dataset]: + from .databases import AVAILABLE_DATABASES + + if self.ftp is None: + raise ConnectionError( + "FTP client is not connected. Call 'await client.login()'" + " before accessing datasets." + ) + + return [d(client=self) for d in AVAILABLE_DATABASES] + + async def _download_file( + self, + file: BaseRemoteFile, + output: pathlib.Path, + callback: Callable[..., None] | None = None, + ) -> pathlib.Path: + async def _fetch(): + try: + self.ftp.voidcmd("NOOP") + except BrokenPipeError: + await self.connect() + + total_size = self.ftp.size(str(file.path)) or 0 + current_size = 0 + + with open(output, "wb") as f: + + def _write_and_callback(chunk): + nonlocal current_size + f.write(chunk) + current_size += len(chunk) + if callback: + callback(current_size, total_size) + + self.ftp.retrbinary(f"RETR {file.path}", _write_and_callback) + return output + + return await _fetch() + + @staticmethod + def _line_parser( + file_line: str, + formatter: Callable[[str], dict[str, Any]] | None = None, + ) -> FTPFileInfo: + parts = file_line.strip().split() + if len(parts) < 4: + raise ValueError(f"Invalid FTP line: {file_line}") + + date_str, time_str = parts[0], parts[1] + is_dir = parts[2].upper() == "" + name = " ".join(parts[3:]) + + try: + modify = datetime.strptime( + f"{date_str} {time_str}", + "%m-%d-%y %I:%M%p", + ) + except ValueError: + modify = datetime.now() + + info: FTPFileInfo = { + "name": name, + "size": 0 if is_dir else int(parts[2]), + "type": "dir" if is_dir else "file", + "modify": modify, + "group": None, + "year": None, + "month": None, + "state": None, + } + + if formatter and not is_dir: + info.update(formatter(name)) # type: ignore + + return info + + async def _list_directory( + self, + path: str, + formatter: Callable[[str], dict[str, Any]] | None = None, + ) -> list[FTPFileInfo]: + def _list(): + self.ftp.cwd(path) + lines = [] + self.ftp.retrlines("LIST", lines.append) + return [self._line_parser(line, formatter) for line in lines] + + return await to_thread.run_sync(_list) diff --git a/pysus/api/ftp/databases.py b/pysus/api/ftp/databases.py new file mode 100644 index 00000000..a4a4692f --- /dev/null +++ b/pysus/api/ftp/databases.py @@ -0,0 +1,438 @@ +from typing import Any + +from pysus.api.ftp.models import Dataset, Directory +from pysus.utils import zfill_year + + +class CIHA(Dataset): + paths: list[Directory] = [ + Directory("/dissemin/publicos/CIHA/201101_/Dados"), + ] + + group_definitions: dict[str, str] = { + "CIHA": "Comunicação de Internação Hospitalar e Ambulatorial", + } + + @property + def name(self) -> str: + return "CIHA" + + @property + def long_name(self) -> str: + return "Comunicação de Internação Hospitalar e Ambulatorial" + + @property + def description(self) -> str: + return ( + "A CIHA foi criada para ampliar o processo de planejamento, " + "programação, controle, avaliação e regulação da assistência à " + "saúde permitindo um conhecimento mais abrangente e profundo dos " + "perfis nosológico e epidemiológico da população brasileira." + ) + + def formatter(self, filename: str) -> dict[str, Any]: + try: + name = filename.split(".")[0].upper() + group_code = name[:4] + state = name[4:6] + year_short = name[6:8] + month = name[8:10] + + group_info = None + if group_code in self.group_definitions: + group_info = { + "name": group_code, + "long_name": self.group_definitions[group_code], + "description": None, + } + + return { + "group": group_info, + "state": state, + "year": int(zfill_year(year_short)), + "month": int(month), + } + except (IndexError, ValueError): + return {"group": None, "state": None, "year": None, "month": None} + + +class CNES(Dataset): + paths: list[Directory] = [ + Directory("/dissemin/publicos/CNES/200508_/Dados"), + ] + group_definitions: dict[str, str] = { + "DC": "Dados Complementares", + "EE": "Estabelecimento de Ensino", + "EF": "Estabelecimento Filantrópico", + "EP": "Equipes", + "EQ": "Equipamentos", + "GM": "Gestão e Metas", + "HB": "Habilitação", + "IN": "Incentivos", + "LT": "Leitos", + "PF": "Profissional", + "RC": "Regra Contratual", + "SR": "Serviço Especializado", + "ST": "Estabelecimentos", + } + + @property + def name(self) -> str: + return "CNES" + + @property + def long_name(self) -> str: + return "Cadastro Nacional de Estabelecimentos de Saúde" + + @property + def description(self) -> str: + return ( + "O Cadastro Nacional de Estabelecimentos de Saúde (CNES) é o " + "sistema de informação oficial de cadastramento de informações " + "de todos os estabelecimentos de saúde no país." + ) + + def formatter(self, filename: str) -> dict[str, Any]: + try: + name = filename.split(".")[0].upper() + group_code = name[:2] + state = name[2:4] + year_short = name[4:6] + month = name[6:8] + + group_info = None + if group_code in self.group_definitions: + group_info = { + "name": group_code, + "long_name": self.group_definitions[group_code], + } + + return { + "group": group_info, + "state": state, + "year": int(zfill_year(year_short)), + "month": int(month), + } + except (IndexError, ValueError): + return {"group": None, "state": None, "year": None, "month": None} + + +class SINASC(Dataset): + paths: list[Directory] = [ + Directory("/dissemin/publicos/SINASC/NOV/DNRES"), + Directory("/dissemin/publicos/SINASC/ANT/DNRES"), + ] + group_definitions: dict[str, str] = { + "DN": "Declarações de Nascidos Vivos", + "DNR": "Nascidos Vivos por UF de residência", + } + + @property + def name(self) -> str: + return "SINASC" + + @property + def long_name(self) -> str: + return "Sistema de Informações sobre Nascidos Vivos" + + @property + def description(self) -> str: + return """ + O SINASC fornece subsídios para o diagnóstico de saúde e + planejamento de políticas. + """ + + def formatter(self, filename: str) -> dict[str, Any]: + try: + name = filename.split(".")[0].upper() + year_short = name[-2:] + charname = "".join([c for c in name if not c.isnumeric()]) + group_code, state = charname[:-2], charname[-2:] + + return { + "group": { + "name": group_code, + "long_name": self.group_definitions.get(group_code), + }, + "state": state, + "year": int(zfill_year(year_short)), + } + except (IndexError, ValueError): + return {"group": None, "state": None, "year": None} + + +class SIM(Dataset): + paths: list[Directory] = [ + Directory("/dissemin/publicos/SIM/CID10/DORES"), + Directory("/dissemin/publicos/SIM/CID9/DORES"), + ] + group_definitions: dict[str, str] = { + "DO": "Mortalidade Geral (CID-10)", + "DOR": "Mortalidade Geral (CID-9)", + } + + @property + def name(self) -> str: + return "SIM" + + @property + def long_name(self) -> str: + return "Sistema de Informação sobre Mortalidade" + + @property + def description(self) -> str: + return """ + O SIM coleta dados sobre óbitos no país para análise epidemiológica. + """ + + def formatter(self, filename: str) -> dict[str, Any]: + try: + name = filename.split(".")[0].upper() + if "CID9" in filename: + group_code, state, year = name[:-4], name[-4:-2], name[-2:] + else: + group_code, state, year = name[:-6], name[-6:-4], name[-4:] + + return { + "group": { + "name": group_code, + "long_name": self.group_definitions.get(group_code), + }, + "state": state, + "year": int(zfill_year(year)), + } + except (IndexError, ValueError): + return {"group": None, "state": None, "year": None} + + +class PNI(Dataset): + paths: list[Directory] = [ + Directory("/dissemin/publicos/PNI/DADOS"), + ] + group_definitions: dict[str, str] = { + "CPNI": "Cobertura Vacinal", + "DPNI": "Doses Aplicadas", + } + + @property + def name(self) -> str: + return "PNI" + + @property + def long_name(self) -> str: + return "Programa Nacional de Imunizações" + + @property + def description(self) -> str: + return "O SI-PNI monitora a cobertura vacinal e doses aplicadas." + + def formatter(self, filename: str) -> dict[str, Any]: + try: + name = filename.split(".")[0].upper() + group_code, state, year_short = name[:4], name[4:6], name[-2:] + + return { + "group": { + "name": group_code, + "long_name": self.group_definitions.get(group_code), + }, + "state": state, + "year": int(zfill_year(year_short)), + } + except (IndexError, ValueError): + return {"group": None, "state": None, "year": None} + + +class IBGEDATASUS(Dataset): + paths: list[Directory] = [ + Directory("/dissemin/publicos/IBGE/POP"), + Directory("/dissemin/publicos/IBGE/censo"), + Directory("/dissemin/publicos/IBGE/POPTCU"), + Directory("/dissemin/publicos/IBGE/projpop"), + ] + + @property + def name(self) -> str: + return "IBGE" + + @property + def long_name(self) -> str: + return "População Residente e Projeções (IBGE)" + + @property + def description(self) -> str: + return "Informações sobre a população residente obtidas de Censos." + + def formatter(self, filename: str) -> dict[str, Any]: + try: + name = filename.split(".")[0].upper() + year_short = name[-2:] + return { + "group": {"name": "POP", "long_name": "População"}, + "year": int(zfill_year(year_short)), + } + except (IndexError, ValueError): + return {"group": None, "year": None} + + +class SIA(Dataset): + paths: list[Directory] = [ + Directory("/dissemin/publicos/SIASUS/199407_200712/Dados"), + Directory("/dissemin/publicos/SIASUS/200801_/Dados"), + ] + group_definitions: dict[str, str] = { + "PA": "Produção Ambulatorial", + "BI": "Boletim de Produção Ambulatorial Individualizado", + "AD": "APAC de Laudos Diversos", + "AM": "APAC de Medicamentos", + "AN": "APAC de Nefrologia", + "AQ": "APAC de Quimioterapia", + "AR": "APAC de Radioterapia", + } + + @property + def name(self) -> str: + return "SIA" + + @property + def long_name(self) -> str: + return "Sistema de Informações Ambulatoriais" + + @property + def description(self) -> str: + return "O SIA acompanha as ações de saúde produzidas." + + def formatter(self, filename: str) -> dict[str, Any]: + try: + name = filename.split(".")[0].upper() + digits = "".join([d for d in name if d.isdigit()]) + chars = name.split(digits)[0] + + group_code = chars[:-2] + state = chars[-2:] + year_short = digits[:2] + month = digits[2:] + + group_info = None + if group_code in self.group_definitions: + group_info = { + "name": group_code, + "long_name": self.group_definitions[group_code], + } + + return { + "group": group_info, + "state": state, + "year": int(zfill_year(year_short)), + "month": int(month), + } + except (IndexError, ValueError): + return {"group": None, "state": None, "year": None, "month": None} + + +class SIH(Dataset): + paths: list[Directory] = [ + Directory("/dissemin/publicos/SIHSUS/199201_200712/Dados"), + Directory("/dissemin/publicos/SIHSUS/200801_/Dados"), + ] + group_definitions: dict[str, str] = { + "RD": "AIH Reduzida", + "RJ": "AIH Rejeitada", + "SP": "Serviços Profissionais", + "ER": "AIH Rejeitada com Erro", + } + + @property + def name(self) -> str: + return "SIH" + + @property + def long_name(self) -> str: + return "Sistema de Informações Hospitalares" + + @property + def description(self) -> str: + return """ + O SIH processa as internações hospitalares financiadas pelo SUS. + """ + + def formatter(self, filename: str) -> dict[str, Any]: + try: + name = filename.split(".")[0].upper() + group_code = name[:2] + state = name[2:4] + year_short = name[4:6] + month = name[6:8] + + return { + "group": { + "name": group_code, + "long_name": self.group_definitions.get(group_code), + }, + "state": state, + "year": int(zfill_year(year_short)), + "month": int(month), + } + except (IndexError, ValueError): + return {"group": None, "state": None, "year": None, "month": None} + + +class SINAN(Dataset): + paths: list[Directory] = [ + Directory("/dissemin/publicos/SINAN/DADOS/FINAIS"), + Directory("/dissemin/publicos/SINAN/DADOS/PRELIM"), + ] + + group_definitions: dict[str, str] = { + "DENG": "Dengue", + "ZIKA": "Zika Vírus", + "CHIK": "Febre de Chikungunya", + "HANS": "Hanseníase", + "TUBE": "Tuberculose", + "ANIM": "Acidente por Animais Peçonhentos", + } + + @property + def name(self) -> str: + return "SINAN" + + @property + def long_name(self) -> str: + return "Sistema de Informação de Agravos de Notificação" + + @property + def description(self) -> str: + return "O SINAN é alimentado pela notificação de doenças compulsórias." + + def formatter(self, filename: str) -> dict[str, Any]: + try: + name = filename.split(".")[0].upper() + year_short = name[-2:] + + if name.startswith("SRC"): + group_code = name[:3] + else: + group_code = name[:4] + + return { + "group": { + "name": group_code, + "long_name": self.group_definitions.get(group_code), + }, + "year": int(zfill_year(year_short)), + } + except (IndexError, ValueError): + return {"group": None, "year": None} + + +AVAILABLE_DATABASES: list[type[Dataset]] = [ + CIHA, + CNES, + IBGEDATASUS, + PNI, + SIA, + SIH, + SIM, + SINAN, + SINASC, +] diff --git a/pysus/api/ftp/models.py b/pysus/api/ftp/models.py new file mode 100644 index 00000000..7d079fb6 --- /dev/null +++ b/pysus/api/ftp/models.py @@ -0,0 +1,256 @@ +from __future__ import annotations + +import os +from abc import ABC, abstractmethod +from collections.abc import Callable, Sequence +from datetime import datetime +from pathlib import Path +from typing import Any + +from pydantic import PrivateAttr +from pysus import CACHEPATH +from pysus.api.models import ( + BaseRemoteClient, + BaseRemoteDataset, + BaseRemoteFile, + BaseRemoteGroup, +) +from pysus.api.types import State + +from .client import FTP, FTPFileInfo + + +class File(BaseRemoteFile): + _info: FTPFileInfo = PrivateAttr() + + def __init__(self, **data): + info = data.pop("_info", None) + if "path" not in data and info and "path" in info: + data["path"] = info["path"] + + super().__init__(**data) + + self._info = info + group_data = self._info.get("group") + if group_data: + self.group = Group( + path=str(self.path.parent), + dataset=self.dataset, + long_name=group_data.get("long_name", ""), + description=group_data.get("description", ""), + ) + + def __repr__(self) -> str: + return self.name + + @property + def extension(self) -> str: + return Path(self.path).suffix + + @property + def size(self) -> int: + return self._info.get("size", 0) + + @property + def modify(self) -> datetime: + m = self._info.get("modify") + if not m: + raise ValueError("File requires a modify date") + return m + + @property + def year(self) -> int | None: + return self._info.get("year") + + @property + def month(self) -> int | None: + return self._info.get("month") + + @property + def state(self) -> State | None: + return self._info.get("state", None) + + async def _download( + self, + output: Path | None = None, + callback: Callable[[int], None] | None = None, + ) -> Path: + if output is None: + cache_dir = Path(CACHEPATH) + cache_dir.mkdir(parents=True, exist_ok=True) + output = cache_dir / self.basename + + return await self.client._download_file(self, output, callback) + + +class Directory: + def __init__( + self, + path: str, + parent: Directory | Dataset | Group | None = None, + client: BaseRemoteClient | None = None, + formatter: Callable | None = None, + dataset: Dataset | None = None, + ): + self.path = os.path.normpath(path) + self.parent = parent + self.dataset = dataset or getattr(parent, "dataset", None) + self.client = client or getattr(parent, "client", None) + self.formatter = formatter or getattr(parent, "formatter", None) + self.name = os.path.basename(self.path) or "/" + self.loaded = False + self._content: list[Directory | File] = [] + + @property + async def content(self) -> list[Directory | File]: + if not self.loaded: + await self.load() + return self._content + + async def load(self) -> None: + if not isinstance(self.client, FTP): + raise ValueError("no ftp client found") + raw_infos = await self.client._list_directory( + self.path, + self.formatter, + ) + self._content = [] + + current_group = ( + self.parent if isinstance(self.parent, BaseRemoteGroup) else None + ) + + for info in raw_infos: + item_path = f"{self.path}/{info['name']}" + if info["type"] == "dir": + self._content.append( + Directory( + path=item_path, + parent=self, + dataset=self.dataset, + ) + ) + else: + self._content.append( + File( + path=item_path, + dataset=self.dataset, + group=current_group, + type=info["type"], + _info=info, + ) + ) + self.loaded = True + + def __str__(self) -> str: + return self.path + + def __repr__(self) -> str: + return f"" + + +class Group(BaseRemoteGroup): + path: str + _long_name: str = PrivateAttr() + _description: str = PrivateAttr() + _dir: Directory = PrivateAttr() + + def __init__( + self, + path: str, + dataset: Dataset, + long_name: str, + description: str = "", + **data: Any, + ): + data.update({"dataset": dataset, "path": path}) + super().__init__(**data) + + self._long_name = long_name + self._description = description + self._dir = Directory( + path=path, + client=dataset.client, + formatter=dataset.formatter, + dataset=dataset, + parent=self, + ) + + @property + def name(self) -> str: + return os.path.basename(self.path) + + @property + def long_name(self) -> str: + return self._long_name + + @property + def description(self) -> str: + return self._description + + @property + async def content(self) -> list[Directory | File]: + return await self._dir.content + + async def _fetch_files(self) -> list[BaseRemoteFile]: + items = await self.content + return [item for item in items if isinstance(item, BaseRemoteFile)] + + +class Dataset(BaseRemoteDataset, ABC): + paths: list[Directory] = [] + group_definitions: dict[str, str] = {} + + @property + @abstractmethod + def name(self) -> str: + pass + + @property + @abstractmethod + def long_name(self) -> str: + pass + + @property + @abstractmethod + def description(self) -> str: + pass + + @abstractmethod + def formatter(self, filename: str) -> dict[str, Any]: + pass + + async def _fetch_content( + self, + ) -> Sequence[BaseRemoteGroup | BaseRemoteFile]: + results: list[BaseRemoteGroup | BaseRemoteFile] = [] + + for root_dir in self.paths: + root_dir.client = self.client + root_dir.formatter = self.formatter + root_dir.dataset = self + + if not isinstance(root_dir, Directory): + raise RuntimeError(f"Directory {root_dir} not instantiated") + + items = await root_dir.content + + for item in items: + if isinstance(item, Directory): + if item.name in self.group_definitions: + group = Group( + path=item.path, + dataset=self, + long_name=self.group_definitions[item.name], + ) + results.append(group) + else: + results.append(item) # type: ignore + + elif isinstance(item, File): + results.append(item) + + return results + + def __repr__(self) -> str: + return self.name diff --git a/pysus/api/models.py b/pysus/api/models.py new file mode 100644 index 00000000..e9a08d36 --- /dev/null +++ b/pysus/api/models.py @@ -0,0 +1,388 @@ +from __future__ import annotations + +import asyncio +import hashlib +from abc import ABC, abstractmethod +from collections.abc import AsyncGenerator, Callable, Sequence +from datetime import datetime +from pathlib import Path +from typing import TYPE_CHECKING, Any + +import pandas as pd +import pyarrow as pa +import pyarrow.parquet as pq +from anyio import to_thread +from pydantic import BaseModel, ConfigDict, Field, PrivateAttr +from pysus import CACHEPATH +from tqdm.asyncio import tqdm + +from .types import FileType, State + +if TYPE_CHECKING: + from extensions import Parquet + + +class BaseFile(BaseModel, ABC): + model_config = ConfigDict( + arbitrary_types_allowed=True, + validate_assignment=True, + ) + + path: Path + type: str | FileType + + @property + @abstractmethod + def name(self) -> str: + pass + + @property + def basename(self) -> str: + return self.path.name + + def __str__(self) -> str: + return self.basename + + @property + @abstractmethod + def extension(self) -> str: + pass + + @property + @abstractmethod + def size(self) -> int: + pass + + @property + @abstractmethod + def modify(self) -> datetime: + pass + + +class BaseLocalFile(BaseFile, ABC): + path: Path + + @property + def name(self) -> str: + return self.path.name + + async def get_hash( + self, algorithm: str = "sha256", chunk_size: int = 1024 * 1024 + ) -> str: + def _compute_hash(): + hash_obj = hashlib.new(algorithm) + with open(self.path, "rb") as f: + while chunk := f.read(chunk_size): + hash_obj.update(chunk) + return hash_obj.hexdigest() + + return await to_thread.run_sync(_compute_hash) + + @abstractmethod + async def load(self) -> Any: + pass + + @abstractmethod + def stream( + self, + chunk_size: int = 10000, + ) -> AsyncGenerator[Any, None]: + pass + + @property + def extension(self) -> str: + return self.path.suffix + + @property + def size(self) -> int: + return self.path.stat().st_size + + @property + def modify(self) -> datetime: + return datetime.fromtimestamp(self.path.stat().st_mtime) + + +class BaseTabularFile(BaseLocalFile, ABC): + @property + @abstractmethod + def columns(self) -> list[str]: + pass + + @property + @abstractmethod + def rows(self) -> int: + pass + + @abstractmethod + async def load(self) -> pd.DataFrame: + pass + + @abstractmethod + def stream( + self, + chunk_size: int = 10000, + ) -> AsyncGenerator[pd.DataFrame, None]: + pass + + async def to_parquet( + self, + output_path: str | Path | None = None, + chunk_size: int = 10000, + callback: Callable[[int, int], None] | None = None, + ) -> Parquet: + from pysus.api.extensions import ExtensionFactory, Parquet + + if output_path is None: + output_path = self.path.with_suffix(".parquet") + + output_path = Path(output_path).expanduser().resolve() + writer = None + total_rows = self.rows + current_rows = 0 + + pbar = tqdm( + desc=f"Converting {self.basename}", + unit=" rows", + unit_scale=True, + total=total_rows, + ) + + try: + async for chunk in self.stream( + chunk_size=chunk_size, + ): # type: ignore + if chunk.empty: + continue + + rows_in_chunk = len(chunk) + current_rows += rows_in_chunk + + table = await to_thread.run_sync( + pa.Table.from_pandas, + chunk, + ) + + if writer is None: + writer = await to_thread.run_sync( + pq.ParquetWriter, output_path, table.schema + ) + + await to_thread.run_sync(writer.write_table, table) + + pbar.update(rows_in_chunk) + + if callback: + callback(current_rows, total_rows) + + await asyncio.sleep(0) + finally: + pbar.close() + if writer: + await to_thread.run_sync(writer.close) + + output = await ExtensionFactory.instantiate(output_path) + if not isinstance(output, Parquet): + raise ValueError(f"Could not parse {output} to Parquet") + return output + + +class BaseCompressedFile(BaseLocalFile, ABC): + @abstractmethod + async def list_members(self) -> list[str]: + pass + + @abstractmethod + async def open_member(self, member_name: str) -> Any: + pass + + @abstractmethod + async def extract( + self, + target_dir: Path = CACHEPATH, + ) -> list[BaseLocalFile]: + pass + + async def stream( + self, + chunk_size: int | None = None, + ) -> AsyncGenerator[Any, None]: + members = await self.list_members() + for member in members: + yield await self.open_member(member) + await asyncio.sleep(0) + + +class SearchableMixin: + def _matches(self, obj: Any, **kwargs) -> bool: + for key, value in kwargs.items(): + obj_value = getattr(obj, key, None) + if obj_value != value: + return False + return True + + +class BaseRemoteFile(BaseFile, SearchableMixin, ABC): + dataset: BaseRemoteDataset = Field(exclude=True) + group: BaseRemoteGroup | None = Field(default=None, exclude=True) + + @property + def name(self) -> str: + return self.basename + + @property + def client(self) -> BaseRemoteClient: + return self.dataset.client + + @property + def year(self) -> int | None: + return None + + @property + def month(self) -> int | None: + return None + + @property + def state(self) -> State | None: + return None + + @abstractmethod + async def _download( + self, + output: Path | None = None, + callback: Callable[[int], None] | None = None, + ) -> Path: + pass + + async def download( + self, + output: str | Path | None = None, + callback: Callable[[int], None] | None = None, + ) -> BaseLocalFile: + from pysus.api.extensions import ExtensionFactory + + if output is None: + cache_dir = Path(CACHEPATH) + cache_dir.mkdir(parents=True, exist_ok=True) + dest = cache_dir / self.basename + else: + output_path = Path(output).expanduser().resolve() + if output_path.is_dir(): + output_path.mkdir(parents=True, exist_ok=True) + dest = output_path / self.basename + else: + output_path.parent.mkdir(parents=True, exist_ok=True) + dest = output_path + + local_path = await self._download(output=dest, callback=callback) + + return await ExtensionFactory.instantiate(local_path) + + +class BaseRemoteObject(BaseModel, ABC): + model_config = ConfigDict(arbitrary_types_allowed=True) + + def __str__(self) -> str: + return self.name + + @property + @abstractmethod + def name(self) -> str: + pass + + @property + @abstractmethod + def long_name(self) -> str: + pass + + @property + @abstractmethod + def description(self) -> str: + pass + + +class BaseRemoteGroup(BaseRemoteObject, SearchableMixin, ABC): + dataset: BaseRemoteDataset = Field(exclude=True) + _files: list[BaseRemoteFile] | None = PrivateAttr(default=None) + + @property + def parent(self) -> BaseRemoteDataset: + return self.dataset + + @abstractmethod + async def _fetch_files(self) -> list[BaseRemoteFile]: + pass + + @property + async def files(self) -> list[BaseRemoteFile]: + if self._files is None: + self._files = await self._fetch_files() + return self._files + + async def search(self, **kwargs) -> list[BaseRemoteFile]: + all_files = await self.files + if not kwargs: + return all_files + return [f for f in all_files if self._matches(f, **kwargs)] + + +class BaseRemoteDataset(BaseRemoteObject, SearchableMixin, ABC): + client: BaseRemoteClient = Field(exclude=True) + _content: Sequence[BaseRemoteGroup | BaseRemoteFile] | None = PrivateAttr( + default=None + ) + + @abstractmethod + async def _fetch_content( + self, + ) -> Sequence[BaseRemoteGroup | BaseRemoteFile]: + pass + + @property + async def content( + self, + ) -> Sequence[BaseRemoteGroup | BaseRemoteFile]: + if self._content is None: + self._content = await self._fetch_content() + + return self._content + + async def search(self, **kwargs) -> list[BaseRemoteFile]: + contents = await self.content + + matches = [] + for item in contents: + if isinstance(item, BaseRemoteGroup): + group_matches = await item.search(**kwargs) + matches.extend(group_matches) + elif isinstance(item, BaseRemoteFile): + if self._matches(item, **kwargs): + matches.append(item) + + return matches + + +class BaseRemoteClient(BaseRemoteObject, ABC): + @abstractmethod + async def connect(self) -> None: + pass + + @abstractmethod + async def close(self) -> None: + pass + + @abstractmethod + async def login(self, **kwargs) -> None: + pass + + @abstractmethod + async def datasets(self, **kwargs) -> list: + pass + + @abstractmethod + async def _download_file( + self, + file: BaseRemoteFile, + output: Path, + callback: Callable[[int], None] | None = None, + ) -> Path: + pass diff --git a/pysus/api/types.py b/pysus/api/types.py new file mode 100644 index 00000000..0f78d208 --- /dev/null +++ b/pysus/api/types.py @@ -0,0 +1,43 @@ +from typing import Literal + +FileType = Literal[ + "FILE", + "DIR", + "PARQUET", + "CSV", + "JSON", + "PDF", + "DBC", + "DBF", + "ZIP", +] + +State = Literal[ + "AC", + "AL", + "AP", + "AM", + "BA", + "CE", + "ES", + "GO", + "MA", + "MT", + "MS", + "MG", + "PA", + "PB", + "PR", + "PE", + "PI", + "RJ", + "RN", + "RS", + "RO", + "RR", + "SC", + "SP", + "SE", + "TO", + "DF", +] diff --git a/pysus/data/__init__.py b/pysus/data/__init__.py deleted file mode 100644 index c6ca202e..00000000 --- a/pysus/data/__init__.py +++ /dev/null @@ -1,164 +0,0 @@ -import os -import struct -from datetime import datetime -from pathlib import Path - -import pandas as pd -import pyarrow as pa -import pyarrow.parquet as pq -from dbfread import DBF -from pyreaddbc import dbc2dbf - - -def dbc_to_dbf(dbc: str, _pbar=None) -> str: - """ - Parses DBC files into DBFs - """ - path = Path(dbc) - - if path.suffix.lower() != ".dbc": - raise ValueError(f"Not a DBC file: {path}") - - dbf = path.with_suffix(".dbf") - - if _pbar: - _pbar.reset(total=1) - _pbar.set_description(f"{dbf.name}") - - _parquet = path.with_suffix(".parquet") - if _parquet.exists(): - path.unlink(missing_ok=True) - dbf.unlink(missing_ok=True) - return str(_parquet) - - if dbf.exists(): - path.unlink(missing_ok=True) - return str(dbf) - - dbc2dbf(str(path), str(dbf)) - path.unlink() - - if _pbar: - _pbar.update(1) - - return str(dbf) - - -def stream_dbf(dbf, chunk_size=30000): - """Fetches records in parquet chunks to preserve memory""" - data = [] - i = 0 - for records in dbf: - data.append(records) - i += 1 - if i == chunk_size: - yield data - data = [] - i = 0 - else: - yield data - - -def decode_column(value): - """ - Decodes binary data to str - """ - if isinstance(value, bytes): - return value.decode(encoding="iso-8859-1").replace("\x00", "") - - if isinstance(value, str): - return str(value).replace("\x00", "") - - return value - - -def dbf_to_parquet(dbf: str, _pbar=None) -> str: - """ - Parses DBF file into parquet to preserve memory - """ - path = Path(dbf) - - if path.suffix.lower() != ".dbf": - raise ValueError(f"Not a DBF file: {path}") - - parquet = path.with_suffix(".parquet") - - approx_final_size = ( - os.path.getsize(path) / 200 - ) # TODO: not best approx size - if _pbar: - _pbar.unit = "B" - _pbar.unit_scale = True - _pbar.reset(total=approx_final_size) - _pbar.set_description(f"{parquet.name}") - - if parquet.exists(): - if _pbar: - _pbar.update(approx_final_size - _pbar.n) - return str(parquet) - - parquet.absolute().mkdir() - - try: - chunk_size = 30_000 - for chunk in stream_dbf( - DBF(path, encoding="iso-8859-1", raw=True), chunk_size - ): - if _pbar: - _pbar.update(chunk_size) - - chunk_df = pd.DataFrame(chunk) - table = pa.Table.from_pandas(chunk_df.map(decode_column)) - pq.write_to_dataset(table, root_path=str(parquet)) - except struct.error as err: - if _pbar: - _pbar.close() - Path(path).unlink() - parquet.rmdir() - raise err - - if _pbar: - _pbar.update(approx_final_size - _pbar.n) - - path.unlink() - - return str(parquet) - - -def parse_dftypes(df: pd.DataFrame) -> pd.DataFrame: - """ - Parse DataFrame values, cleaning blank spaces if needed - and converting dtypes into correct types. - """ - - def map_column_func(column_names: list[str], func): - # Maps a function to each value in each column - columns = [c for c in df.columns if c in column_names] - df[columns] = df[columns].map(func) - - def str_to_int(string: str): - # If removing spaces, all characters are int, - # return int(value). @warning it removes in between - # spaces as well - if str(string).replace(" ", "").isnumeric(): - return int(string.replace(" ", "")) - return string - - def str_to_date(string: str): - if isinstance(string, str): - try: - return datetime.strptime(string, "%Y%m%d").date() - except ValueError: - # Ignore errors, bad value - return string - return string - - map_column_func(["DT_NOTIFIC", "DT_SIN_PRI"], str_to_date) - map_column_func(["CODMUNRES", "SEXO"], str_to_int) - - df = df.map( - lambda x: "" if str(x).isspace() else x - ) # Remove all space values - - df = df.convert_dtypes() - return df diff --git a/pysus/data/local.py b/pysus/data/local.py deleted file mode 100644 index 5ea7476e..00000000 --- a/pysus/data/local.py +++ /dev/null @@ -1,106 +0,0 @@ -import os -from pathlib import Path, PurePosixPath, PureWindowsPath -from typing import Dict, List, Union - -import pandas as pd -from loguru import logger -from pysus.data import dbc_to_dbf, dbf_to_parquet, parse_dftypes - - -class ParquetSet: - """ - A local parquet directory or file - """ - - __path__: Union[PurePosixPath, PureWindowsPath] - info: Dict - - def __init__(self, path: str, _pbar=None) -> None: - info = {} - path = Path(path) - - if path.suffix.lower() not in [".parquet", ".dbc", ".dbf"]: - raise NotImplementedError(f"Unknown file type: {path.suffix}") - - if path.suffix.lower() == ".dbc": - path = Path(dbc_to_dbf(path, _pbar=_pbar)) - - if path.suffix.lower() == ".dbf": - path = Path(dbf_to_parquet(path, _pbar=_pbar)) - - if path.is_dir(): - info["size"] = sum( - f.stat().st_size for f in path.glob("**/*") if f.is_file() - ) - else: - info["size"] = os.path.getsize(str(path)) - - self.__path__ = path - self.info = info - - def __str__(self): - return str(self.__path__) - - def __repr__(self): - return str(self.__path__) - - def __hash__(self): - return hash(str(self.__path__)) - - @property - def path(self) -> str: - return str(self.__path__) - - def to_dataframe(self) -> pd.DataFrame: - """ - Read ParquetSet file(s) into a Pandas DataFrame, concatenating the - parquets into a single dataframe - """ - parquets = list(map(str, self.__path__.glob("*.parquet"))) - chunks_list = [ - pd.read_parquet(str(f), engine="fastparquet") for f in parquets - ] - _df = pd.concat(chunks_list, ignore_index=True) - return parse_dftypes(_df) - - -def parse_data_content( - path: Union[List[str], str], _pbar=None -) -> Union[ParquetSet, List[ParquetSet]]: - if isinstance(path, str): - path = [path] - else: - path = list(path) - - content = [] - for _path in path: - data_path = Path(_path) - - if not data_path.exists(): - continue - - if data_path.suffix.lower() in [".dbc", ".dbf", ".parquet"]: - content.append(ParquetSet(str(data_path), _pbar=_pbar)) - elif data_path.suffix.lower() == ".zip": - content.append(str(data_path)) - else: - continue - - if not content: - logger.warning("path must be absolute") - - if len(content) == 1: - return content[0] - return content - - -class Data: - """ - A class parser. Receives an (or a list of) absolute path(s) and returns - the corresponding ParquetSet instances. - """ - - def __new__( - cls, path: Union[List[str], str], _pbar=None - ) -> Union[ParquetSet, List[ParquetSet]]: - return parse_data_content(path, _pbar=_pbar) diff --git a/pysus/metadata/SINAN/ANIM.tar.gz b/pysus/data/metadata/SINAN/ANIM.tar.gz similarity index 100% rename from pysus/metadata/SINAN/ANIM.tar.gz rename to pysus/data/metadata/SINAN/ANIM.tar.gz diff --git a/pysus/metadata/SINAN/BOTU.tar.gz b/pysus/data/metadata/SINAN/BOTU.tar.gz similarity index 100% rename from pysus/metadata/SINAN/BOTU.tar.gz rename to pysus/data/metadata/SINAN/BOTU.tar.gz diff --git a/pysus/metadata/SINAN/CHAG.tar.gz b/pysus/data/metadata/SINAN/CHAG.tar.gz similarity index 100% rename from pysus/metadata/SINAN/CHAG.tar.gz rename to pysus/data/metadata/SINAN/CHAG.tar.gz diff --git a/pysus/metadata/SINAN/CHIK.tar.gz b/pysus/data/metadata/SINAN/CHIK.tar.gz similarity index 100% rename from pysus/metadata/SINAN/CHIK.tar.gz rename to pysus/data/metadata/SINAN/CHIK.tar.gz diff --git a/pysus/metadata/SINAN/COLE.tar.gz b/pysus/data/metadata/SINAN/COLE.tar.gz similarity index 100% rename from pysus/metadata/SINAN/COLE.tar.gz rename to pysus/data/metadata/SINAN/COLE.tar.gz diff --git a/pysus/metadata/SINAN/COQU.tar.gz b/pysus/data/metadata/SINAN/COQU.tar.gz similarity index 100% rename from pysus/metadata/SINAN/COQU.tar.gz rename to pysus/data/metadata/SINAN/COQU.tar.gz diff --git a/pysus/metadata/SINAN/DENG.tar.gz b/pysus/data/metadata/SINAN/DENG.tar.gz similarity index 100% rename from pysus/metadata/SINAN/DENG.tar.gz rename to pysus/data/metadata/SINAN/DENG.tar.gz diff --git a/pysus/metadata/SINAN/DIFT.tar.gz b/pysus/data/metadata/SINAN/DIFT.tar.gz similarity index 100% rename from pysus/metadata/SINAN/DIFT.tar.gz rename to pysus/data/metadata/SINAN/DIFT.tar.gz diff --git a/pysus/metadata/SINAN/ESQU.tar.gz b/pysus/data/metadata/SINAN/ESQU.tar.gz similarity index 100% rename from pysus/metadata/SINAN/ESQU.tar.gz rename to pysus/data/metadata/SINAN/ESQU.tar.gz diff --git a/pysus/metadata/SINAN/FAMA.tar.gz b/pysus/data/metadata/SINAN/FAMA.tar.gz similarity index 100% rename from pysus/metadata/SINAN/FAMA.tar.gz rename to pysus/data/metadata/SINAN/FAMA.tar.gz diff --git a/pysus/metadata/SINAN/FMAC.tar.gz b/pysus/data/metadata/SINAN/FMAC.tar.gz similarity index 100% rename from pysus/metadata/SINAN/FMAC.tar.gz rename to pysus/data/metadata/SINAN/FMAC.tar.gz diff --git a/pysus/metadata/SINAN/FTIF.tar.gz b/pysus/data/metadata/SINAN/FTIF.tar.gz similarity index 100% rename from pysus/metadata/SINAN/FTIF.tar.gz rename to pysus/data/metadata/SINAN/FTIF.tar.gz diff --git a/pysus/metadata/SINAN/HANS.tar.gz b/pysus/data/metadata/SINAN/HANS.tar.gz similarity index 100% rename from pysus/metadata/SINAN/HANS.tar.gz rename to pysus/data/metadata/SINAN/HANS.tar.gz diff --git a/pysus/metadata/SINAN/HANT.tar.gz b/pysus/data/metadata/SINAN/HANT.tar.gz similarity index 100% rename from pysus/metadata/SINAN/HANT.tar.gz rename to pysus/data/metadata/SINAN/HANT.tar.gz diff --git a/pysus/metadata/SINAN/HEPA.tar.gz b/pysus/data/metadata/SINAN/HEPA.tar.gz similarity index 100% rename from pysus/metadata/SINAN/HEPA.tar.gz rename to pysus/data/metadata/SINAN/HEPA.tar.gz diff --git a/pysus/metadata/SINAN/IEXO.tar.gz b/pysus/data/metadata/SINAN/IEXO.tar.gz similarity index 100% rename from pysus/metadata/SINAN/IEXO.tar.gz rename to pysus/data/metadata/SINAN/IEXO.tar.gz diff --git a/pysus/metadata/SINAN/LEIV.tar.gz b/pysus/data/metadata/SINAN/LEIV.tar.gz similarity index 100% rename from pysus/metadata/SINAN/LEIV.tar.gz rename to pysus/data/metadata/SINAN/LEIV.tar.gz diff --git a/pysus/metadata/SINAN/LEPT.tar.gz b/pysus/data/metadata/SINAN/LEPT.tar.gz similarity index 100% rename from pysus/metadata/SINAN/LEPT.tar.gz rename to pysus/data/metadata/SINAN/LEPT.tar.gz diff --git a/pysus/metadata/SINAN/LTAN.tar.gz b/pysus/data/metadata/SINAN/LTAN.tar.gz similarity index 100% rename from pysus/metadata/SINAN/LTAN.tar.gz rename to pysus/data/metadata/SINAN/LTAN.tar.gz diff --git a/pysus/metadata/SINAN/MALA.tar.gz b/pysus/data/metadata/SINAN/MALA.tar.gz similarity index 100% rename from pysus/metadata/SINAN/MALA.tar.gz rename to pysus/data/metadata/SINAN/MALA.tar.gz diff --git a/pysus/metadata/SINAN/MENI.tar.gz b/pysus/data/metadata/SINAN/MENI.tar.gz similarity index 100% rename from pysus/metadata/SINAN/MENI.tar.gz rename to pysus/data/metadata/SINAN/MENI.tar.gz diff --git a/pysus/metadata/SINAN/PEST.tar.gz b/pysus/data/metadata/SINAN/PEST.tar.gz similarity index 100% rename from pysus/metadata/SINAN/PEST.tar.gz rename to pysus/data/metadata/SINAN/PEST.tar.gz diff --git a/pysus/metadata/SINAN/RAIV.tar.gz b/pysus/data/metadata/SINAN/RAIV.tar.gz similarity index 100% rename from pysus/metadata/SINAN/RAIV.tar.gz rename to pysus/data/metadata/SINAN/RAIV.tar.gz diff --git a/pysus/metadata/SINAN/SIFC.tar.gz b/pysus/data/metadata/SINAN/SIFC.tar.gz similarity index 100% rename from pysus/metadata/SINAN/SIFC.tar.gz rename to pysus/data/metadata/SINAN/SIFC.tar.gz diff --git a/pysus/metadata/SINAN/SIFG.tar.gz b/pysus/data/metadata/SINAN/SIFG.tar.gz similarity index 100% rename from pysus/metadata/SINAN/SIFG.tar.gz rename to pysus/data/metadata/SINAN/SIFG.tar.gz diff --git a/pysus/metadata/SINAN/TETA.tar.gz b/pysus/data/metadata/SINAN/TETA.tar.gz similarity index 100% rename from pysus/metadata/SINAN/TETA.tar.gz rename to pysus/data/metadata/SINAN/TETA.tar.gz diff --git a/pysus/metadata/SINAN/TETN.tar.gz b/pysus/data/metadata/SINAN/TETN.tar.gz similarity index 100% rename from pysus/metadata/SINAN/TETN.tar.gz rename to pysus/data/metadata/SINAN/TETN.tar.gz diff --git a/pysus/metadata/SINAN/TUBE.tar.gz b/pysus/data/metadata/SINAN/TUBE.tar.gz similarity index 100% rename from pysus/metadata/SINAN/TUBE.tar.gz rename to pysus/data/metadata/SINAN/TUBE.tar.gz diff --git a/pysus/metadata/SINAN/typecast.py b/pysus/data/metadata/SINAN/typecast.py similarity index 100% rename from pysus/metadata/SINAN/typecast.py rename to pysus/data/metadata/SINAN/typecast.py diff --git a/pysus/data/metadata/__init__.py b/pysus/data/metadata/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/pysus/dataset/geocode_by_cities.json b/pysus/dataset/geocode_by_cities.json deleted file mode 100644 index 68872921..00000000 --- a/pysus/dataset/geocode_by_cities.json +++ /dev/null @@ -1,5293 +0,0 @@ -{ - "Abadia de Goi\u00e1s": 5200050, - "Abadia dos Dourados": 3100104, - "Abadi\u00e2nia": 5200100, - "Abaetetuba": 1500107, - "Abaet\u00e9": 3100203, - "Abaiara": 2300101, - "Abar\u00e9": 2900207, - "Abati\u00e1": 4100103, - "Aba\u00edra": 2900108, - "Abdon Batista": 4200051, - "Abel Figueiredo": 1500131, - "Abelardo Luz": 4200101, - "Abre Campo": 3100302, - "Abreu e Lima": 2600054, - "Abreul\u00e2ndia": 1700251, - "Acaiaca": 3100401, - "Acajutiba": 2900306, - "Acarape": 2300150, - "Acara\u00fa": 2300200, - "Acari": 2400109, - "Acar\u00e1": 1500206, - "Acau\u00e3": 2200053, - "Acegu\u00e1": 4300034, - "Acopiara": 2300309, - "Acorizal": 5100102, - "Acrel\u00e2ndia": 1200013, - "Acre\u00fana": 5200134, - "Adamantina": 3500105, - "Adel\u00e2ndia": 5200159, - "Adolfo": 3500204, - "Adrian\u00f3polis": 4100202, - "Adustina": 2900355, - "Afogados da Ingazeira": 2600104, - "Afonso Bezerra": 2400307, - "Afonso Cl\u00e1udio": 3200102, - "Afonso Cunha": 2100105, - "Afr\u00e2nio": 2600203, - "Afu\u00e1": 1500305, - "Agrestina": 2600302, - "Agricol\u00e2ndia": 2200103, - "Agrol\u00e2ndia": 4200200, - "Agron\u00f4mica": 4200309, - "Aguanil": 3100807, - "Agua\u00ed": 3500303, - "Agudo": 4300109, - "Agudos": 3500709, - "Agudos do Sul": 4100301, - "Aguiar": 2500205, - "Aguiarn\u00f3polis": 1700301, - "Aimor\u00e9s": 3101102, - "Aiquara": 2900603, - "Aiuaba": 2300408, - "Aiuruoca": 3101201, - "Ajuricaba": 4300208, - "Alagoa": 3101300, - "Alagoa Grande": 2500304, - "Alagoa Nova": 2500403, - "Alagoinha": 2600609, - "Alagoinha do Piau\u00ed": 2200251, - "Alagoinhas": 2900702, - "Alambari": 3500758, - "Albertina": 3101409, - "Alcantil": 2500536, - "Alcin\u00f3polis": 5000252, - "Alcoba\u00e7a": 2900801, - "Alc\u00e2ntara": 2100204, - "Alc\u00e2ntaras": 2300507, - "Aldeias Altas": 2100303, - "Alecrim": 4300307, - "Alegre": 3200201, - "Alegrete": 4300406, - "Alegrete do Piau\u00ed": 2200277, - "Alegria": 4300455, - "Alenquer": 1500404, - "Alexandria": 2400505, - "Alex\u00e2nia": 5200308, - "Alfenas": 3101607, - "Alfredo Chaves": 3200300, - "Alfredo Marcondes": 3500808, - "Alfredo Vasconcelos": 3101631, - "Alfredo Wagner": 4200705, - "Algod\u00e3o de Janda\u00edra": 2500577, - "Alhandra": 2500601, - "Alian\u00e7a": 2600708, - "Alian\u00e7a do Tocantins": 1700350, - "Almadina": 2900900, - "Almas": 1700400, - "Almeirim": 1500503, - "Almenara": 3101706, - "Almino Afonso": 2400604, - "Almirante Tamandar\u00e9": 4100400, - "Almirante Tamandar\u00e9 do Sul": 4300471, - "Alo\u00e2ndia": 5200506, - "Alpercata": 3101805, - "Alpestre": 4300505, - "Alpin\u00f3polis": 3101904, - "Alta Floresta": 5100250, - "Alta Floresta D'Oeste": 1100015, - "Altair": 3500907, - "Altamira": 1500602, - "Altamira do Maranh\u00e3o": 2100402, - "Altamira do Paran\u00e1": 4100459, - "Altaneira": 2300606, - "Alterosa": 3102001, - "Altinho": 2600807, - "Altin\u00f3polis": 3501004, - "Alto Alegre": 4300554, - "Alto Alegre do Maranh\u00e3o": 2100436, - "Alto Alegre do Pindar\u00e9": 2100477, - "Alto Alegre dos Parecis": 1100379, - "Alto Araguaia": 5100300, - "Alto Bela Vista": 4200754, - "Alto Boa Vista": 5100359, - "Alto Capara\u00f3": 3102050, - "Alto Feliz": 4300570, - "Alto Gar\u00e7as": 5100409, - "Alto Horizonte": 5200555, - "Alto Jequitib\u00e1": 3153509, - "Alto Long\u00e1": 2200301, - "Alto Paraguai": 5100508, - "Alto Paran\u00e1": 4100608, - "Alto Para\u00edso": 1100403, - "Alto Para\u00edso de Goi\u00e1s": 5200605, - "Alto Parna\u00edba": 2100501, - "Alto Piquiri": 4100707, - "Alto Rio Doce": 3102100, - "Alto Rio Novo": 3200359, - "Alto Santo": 2300705, - "Alto Taquari": 5100607, - "Alto do Rodrigues": 2400703, - "Altos": 2200400, - "Alt\u00f4nia": 4100509, - "Alum\u00ednio": 3501152, - "Alvarenga": 3102209, - "Alvar\u00e3es": 1300029, - "Alvinl\u00e2ndia": 3501509, - "Alvin\u00f3polis": 3102308, - "Alvorada": 1700707, - "Alvorada D'Oeste": 1100346, - "Alvorada de Minas": 3102407, - "Alvorada do Gurgu\u00e9ia": 2200459, - "Alvorada do Norte": 5200803, - "Alvorada do Sul": 4100806, - "Al\u00e9m Para\u00edba": 3101508, - "Amajari": 1400027, - "Amambai": 5000609, - "Amapor\u00e3": 4100905, - "Amap\u00e1": 1600105, - "Amap\u00e1 do Maranh\u00e3o": 2100550, - "Amaraji": 2600906, - "Amaral Ferrador": 4300638, - "Amaralina": 5200829, - "Amarante": 2200509, - "Amarante do Maranh\u00e3o": 2100600, - "Amargosa": 2901007, - "Amatur\u00e1": 1300060, - "Americana": 3501608, - "Americano do Brasil": 5200852, - "Ametista do Sul": 4300646, - "Amontada": 2300754, - "Amorin\u00f3polis": 5200902, - "Amparo": 3501905, - "Amparo de S\u00e3o Francisco": 2800100, - "Amparo do Serra": 3102506, - "Amp\u00e9re": 4101002, - "Am\u00e9lia Rodrigues": 2901106, - "Am\u00e9rica Dourada": 2901155, - "Am\u00e9rico Brasiliense": 3501707, - "Am\u00e9rico de Campos": 3501806, - "Anadia": 2700201, - "Anag\u00e9": 2901205, - "Anahy": 4101051, - "Anajatuba": 2100709, - "Anaj\u00e1s": 1500701, - "Anal\u00e2ndia": 3502002, - "Anam\u00e3": 1300086, - "Ananindeua": 1500800, - "Anan\u00e1s": 1701002, - "Anapu": 1500859, - "Anapurus": 2100808, - "Anast\u00e1cio": 5000708, - "Anauril\u00e2ndia": 5000807, - "Anchieta": 3200409, - "Andara\u00ed": 2901304, - "Andir\u00e1": 4101101, - "Andorinha": 2901353, - "Andradas": 3102605, - "Andradina": 3502101, - "Andrel\u00e2ndia": 3102803, - "Andr\u00e9 da Rocha": 4300661, - "Angatuba": 3502200, - "Angelim": 2601003, - "Angelina": 4200903, - "Angel\u00e2ndia": 3102852, - "Angical": 2901403, - "Angical do Piau\u00ed": 2200608, - "Angico": 1701051, - "Angicos": 2400802, - "Angra dos Reis": 3300100, - "Anguera": 2901502, - "Ang\u00e9lica": 5000856, - "Anhanguera": 5201207, - "Anhembi": 3502309, - "Anhumas": 3502408, - "Anicuns": 5201306, - "Anita Garibaldi": 4201000, - "Anit\u00e1polis": 4201109, - "Anori": 1300102, - "Anta Gorda": 4300703, - "Antas": 2901601, - "Antonina": 4101200, - "Antonina do Norte": 2300804, - "Ant\u00f4nio Almeida": 2200806, - "Ant\u00f4nio Cardoso": 2901700, - "Ant\u00f4nio Carlos": 4201208, - "Ant\u00f4nio Dias": 3103009, - "Ant\u00f4nio Gon\u00e7alves": 2901809, - "Ant\u00f4nio Jo\u00e3o": 5000906, - "Ant\u00f4nio Martins": 2400901, - "Ant\u00f4nio Olinto": 4101309, - "Ant\u00f4nio Prado": 4300802, - "Ant\u00f4nio Prado de Minas": 3103108, - "An\u00e1polis": 5201108, - "An\u00edsio de Abreu": 2200707, - "Aparecida": 3502507, - "Aparecida d'Oeste": 3502606, - "Aparecida de Goi\u00e2nia": 5201405, - "Aparecida do Rio Doce": 5201454, - "Aparecida do Rio Negro": 1701101, - "Aparecida do Taboado": 5001003, - "Aperib\u00e9": 3300159, - "Apiac\u00e1": 3200508, - "Apiac\u00e1s": 5100805, - "Apia\u00ed": 3502705, - "Apicum-A\u00e7u": 2100832, - "Api\u00fana": 4201257, - "Apodi": 2401008, - "Apor\u00e1": 2901908, - "Apor\u00e9": 5201504, - "Apuarema": 2901957, - "Apucarana": 4101408, - "Apuiar\u00e9s": 2300903, - "Apu\u00ed": 1300144, - "Aquidab\u00e3": 2800209, - "Aquidauana": 5001102, - "Aquiraz": 2301000, - "Arabut\u00e3": 4201273, - "Aracaju": 2800308, - "Aracati": 2301109, - "Aracatu": 2902005, - "Araci": 2902104, - "Aracitaba": 3103306, - "Aracoiaba": 2301208, - "Aracruz": 3200607, - "Aragar\u00e7as": 5201702, - "Aragoi\u00e2nia": 5201801, - "Aragominas": 1701309, - "Araguacema": 1701903, - "Araguaiana": 5101001, - "Araguainha": 5101209, - "Araguan\u00e3": 2100873, - "Araguapaz": 5202155, - "Araguari": 3103504, - "Araguatins": 1702208, - "Aragua\u00e7u": 1702000, - "Aragua\u00edna": 1702109, - "Araioses": 2100907, - "Aral Moreira": 5001243, - "Aramari": 2902203, - "Arambar\u00e9": 4300851, - "Arame": 2100956, - "Aramina": 3503000, - "Arandu": 3503109, - "Arantina": 3103603, - "Arape\u00ed": 3503158, - "Arapiraca": 2700300, - "Arapoema": 1702307, - "Araponga": 3103702, - "Arapongas": 4101507, - "Arapor\u00e3": 3103751, - "Arapoti": 4101606, - "Araputanga": 5101258, - "Arapu\u00e1": 3103801, - "Arapu\u00e3": 4101655, - "Araquari": 4201307, - "Arara": 2500908, - "Ararangu\u00e1": 4201406, - "Araraquara": 3503208, - "Araras": 3503307, - "Ararend\u00e1": 2301257, - "Arari": 2101004, - "Araric\u00e1": 4300877, - "Araripe": 2301307, - "Araripina": 2601102, - "Araruama": 3300209, - "Araruna": 2501005, - "Arataca": 2902252, - "Aratiba": 4300901, - "Aratuba": 2301406, - "Aratu\u00edpe": 2902302, - "Arauc\u00e1ria": 4101804, - "Arau\u00e1": 2800407, - "Arax\u00e1": 3104007, - "Ara\u00e7agi": 2500809, - "Ara\u00e7ariguama": 3502754, - "Ara\u00e7as": 2902054, - "Ara\u00e7atuba": 3502804, - "Ara\u00e7a\u00ed": 3103207, - "Ara\u00e7oiaba": 2601052, - "Ara\u00e7oiaba da Serra": 3502903, - "Ara\u00e7u": 5201603, - "Ara\u00e7ua\u00ed": 3103405, - "Ara\u00fajos": 3103900, - "Arceburgo": 3104106, - "Arco-\u00cdris": 3503356, - "Arcos": 3104205, - "Arcoverde": 2601201, - "Areado": 3104304, - "Areal": 3300225, - "Arealva": 3503406, - "Areia": 2501104, - "Areia Branca": 2401107, - "Areia de Bara\u00fanas": 2501153, - "Areial": 2501203, - "Areias": 3503505, - "Arei\u00f3polis": 3503604, - "Aren\u00e1polis": 5101308, - "Aren\u00f3polis": 5202353, - "Argirita": 3104403, - "Aricanduva": 3104452, - "Arinos": 3104502, - "Aripuan\u00e3": 5101407, - "Ariquemes": 1100023, - "Ariranha": 3503703, - "Ariranha do Iva\u00ed": 4101853, - "Armaz\u00e9m": 4201505, - "Arma\u00e7\u00e3o dos B\u00fazios": 3300233, - "Arneiroz": 2301505, - "Aroazes": 2200905, - "Aroeiras": 2501302, - "Aroeiras do Itaim": 2200954, - "Arraial": 2201002, - "Arraial do Cabo": 3300258, - "Arraias": 1702406, - "Arroio Grande": 4301305, - "Arroio Trinta": 4201604, - "Arroio do Meio": 4301008, - "Arroio do Padre": 4301073, - "Arroio do Sal": 4301057, - "Arroio do Tigre": 4301206, - "Arroio dos Ratos": 4301107, - "Artur Nogueira": 3503802, - "Aruan\u00e3": 5202502, - "Aruj\u00e1": 3503901, - "Arvoredo": 4201653, - "Arvorezinha": 4301404, - "Ar\u00eas": 2401206, - "Ascurra": 4201703, - "Asp\u00e1sia": 3503950, - "Assar\u00e9": 2301604, - "Assa\u00ed": 4101903, - "Assis": 3504008, - "Assis Brasil": 1200054, - "Assis Chateaubriand": 4102000, - "Assun\u00e7\u00e3o": 2501351, - "Assun\u00e7\u00e3o do Piau\u00ed": 2201051, - "Astolfo Dutra": 3104601, - "Astorga": 4102109, - "Atalaia": 4102208, - "Atalaia do Norte": 1300201, - "Atalanta": 4201802, - "Atal\u00e9ia": 3104700, - "Atibaia": 3504107, - "Atilio Vivacqua": 3200706, - "Augustin\u00f3polis": 1702554, - "Augusto Corr\u00eaa": 1500909, - "Augusto Pestana": 4301503, - "Augusto Severo": 2401305, - "Augusto de Lima": 3104809, - "Aurelino Leal": 2902401, - "Auriflama": 3504206, - "Auril\u00e2ndia": 5202601, - "Aurora": 4201901, - "Aurora do Par\u00e1": 1500958, - "Aurora do Tocantins": 1702703, - "Autazes": 1300300, - "Avanhandava": 3504404, - "Avar\u00e9": 3504503, - "Ava\u00ed": 3504305, - "Aveiro": 1501006, - "Avelino Lopes": 2201101, - "Avelin\u00f3polis": 5202809, - "Axix\u00e1": 2101103, - "Axix\u00e1 do Tocantins": 1702901, - "A\u00e7ail\u00e2ndia": 2100055, - "A\u00e7u": 2400208, - "A\u00e7ucena": 3100500, - "Baba\u00e7ul\u00e2ndia": 1703008, - "Bacabal": 2101202, - "Bacabeira": 2101251, - "Bacuri": 2101301, - "Bacurituba": 2101350, - "Bady Bassitt": 3504602, - "Baependi": 3104908, - "Bagre": 1501105, - "Bag\u00e9": 4301602, - "Baian\u00f3polis": 2902500, - "Baixa Grande": 2902609, - "Baixa Grande do Ribeiro": 2201150, - "Baixio": 2301802, - "Baixo Guandu": 3200805, - "Bai\u00e3o": 1501204, - "Balbinos": 3504701, - "Baldim": 3105004, - "Baliza": 5203104, - "Balne\u00e1rio Arroio do Silva": 4201950, - "Balne\u00e1rio Barra do Sul": 4202057, - "Balne\u00e1rio Cambori\u00fa": 4202008, - "Balne\u00e1rio Gaivota": 4202073, - "Balne\u00e1rio Pinhal": 4301636, - "Balne\u00e1rio Pi\u00e7arras": 4212809, - "Balne\u00e1rio Rinc\u00e3o": 4220000, - "Balsa Nova": 4102307, - "Balsas": 2101400, - "Bambu\u00ed": 3105103, - "Banabui\u00fa": 2301851, - "Bananal": 3504909, - "Bananeiras": 2501500, - "Bandeira": 3105202, - "Bandeira do Sul": 3105301, - "Bandeirante": 4202081, - "Bandeirantes": 5001508, - "Bandeirantes do Tocantins": 1703057, - "Bannach": 1501253, - "Banza\u00ea": 2902658, - "Bara\u00fana": 2501534, - "Barbacena": 3105608, - "Barbalha": 2301901, - "Barbosa": 3505104, - "Barbosa Ferraz": 4102505, - "Barcarena": 1501303, - "Barcelona": 2401503, - "Barcelos": 1300409, - "Bariri": 3505203, - "Barra": 2902708, - "Barra Bonita": 3505302, - "Barra D'Alc\u00e2ntara": 2201176, - "Barra Funda": 4301958, - "Barra Longa": 3105707, - "Barra Mansa": 3300407, - "Barra Velha": 4202107, - "Barra da Estiva": 2902807, - "Barra de Guabiraba": 2601300, - "Barra de Santa Rosa": 2501609, - "Barra de Santana": 2501575, - "Barra de Santo Ant\u00f4nio": 2700508, - "Barra de S\u00e3o Francisco": 3200904, - "Barra de S\u00e3o Miguel": 2700607, - "Barra do Bugres": 5101704, - "Barra do Chap\u00e9u": 3505351, - "Barra do Cho\u00e7a": 2902906, - "Barra do Corda": 2101608, - "Barra do Gar\u00e7as": 5101803, - "Barra do Guarita": 4301859, - "Barra do Jacar\u00e9": 4102703, - "Barra do Mendes": 2903003, - "Barra do Ouro": 1703073, - "Barra do Pira\u00ed": 3300308, - "Barra do Quara\u00ed": 4301875, - "Barra do Ribeiro": 4301909, - "Barra do Rio Azul": 4301925, - "Barra do Rocha": 2903102, - "Barra do Turvo": 3505401, - "Barra dos Coqueiros": 2800605, - "Barrac\u00e3o": 4102604, - "Barras": 2201200, - "Barreira": 2301950, - "Barreiras": 2903201, - "Barreiras do Piau\u00ed": 2201309, - "Barreirinha": 1300508, - "Barreirinhas": 2101707, - "Barreiros": 2601409, - "Barretos": 3505500, - "Barrinha": 3505609, - "Barro": 2302008, - "Barro Alto": 5203203, - "Barro Duro": 2201408, - "Barro Preto": 2903300, - "Barrocas": 2903276, - "Barrol\u00e2ndia": 1703107, - "Barroquinha": 2302057, - "Barros Cassal": 4302006, - "Barroso": 3105905, - "Barueri": 3505708, - "Bar\u00e3o": 4301651, - "Bar\u00e3o de Antonina": 3505005, - "Bar\u00e3o de Cocais": 3105400, - "Bar\u00e3o de Cotegipe": 4301701, - "Bar\u00e3o de Graja\u00fa": 2101509, - "Bar\u00e3o de Melga\u00e7o": 5101605, - "Bar\u00e3o de Monte Alto": 3105509, - "Bar\u00e3o do Triunfo": 4301750, - "Bastos": 3505807, - "Bataguassu": 5001904, - "Batalha": 2201507, - "Batatais": 3505906, - "Bataypor\u00e3": 5002001, - "Baturit\u00e9": 2302107, - "Bauru": 3506003, - "Bayeux": 2501807, - "Ba\u00eda Formosa": 2401404, - "Ba\u00eda da Trai\u00e7\u00e3o": 2501401, - "Bebedouro": 3506102, - "Beberibe": 2302206, - "Bela Cruz": 2302305, - "Bela Vista": 5002100, - "Bela Vista da Caroba": 4102752, - "Bela Vista de Goi\u00e1s": 5203302, - "Bela Vista de Minas": 3106002, - "Bela Vista do Maranh\u00e3o": 2101772, - "Bela Vista do Para\u00edso": 4102802, - "Bela Vista do Piau\u00ed": 2201556, - "Bela Vista do Toldo": 4202131, - "Belford Roxo": 3300456, - "Belmiro Braga": 3106101, - "Belmonte": 4202156, - "Belo Campo": 2903508, - "Belo Horizonte": 3106200, - "Belo Jardim": 2601706, - "Belo Monte": 2700904, - "Belo Oriente": 3106309, - "Belo Vale": 3106408, - "Belterra": 1501451, - "Bel\u00e1gua": 2101731, - "Bel\u00e9m": 2700805, - "Bel\u00e9m de Maria": 2601508, - "Bel\u00e9m do Brejo do Cruz": 2502003, - "Bel\u00e9m do Piau\u00ed": 2201572, - "Bel\u00e9m do S\u00e3o Francisco": 2601607, - "Beneditinos": 2201606, - "Benedito Leite": 2101806, - "Benedito Novo": 4202206, - "Benevides": 1501501, - "Benjamin Constant": 1300607, - "Benjamin Constant do Sul": 4302055, - "Bento Fernandes": 2401602, - "Bento Gon\u00e7alves": 4302105, - "Bento de Abreu": 3506201, - "Bequim\u00e3o": 2101905, - "Berilo": 3106507, - "Berizal": 3106655, - "Bernardino Batista": 2502052, - "Bernardino de Campos": 3506300, - "Bernardo Say\u00e3o": 1703206, - "Bernardo do Mearim": 2101939, - "Bertioga": 3506359, - "Bertol\u00ednia": 2201705, - "Bert\u00f3polis": 3106606, - "Beruri": 1300631, - "Betim": 3106705, - "Bet\u00e2nia": 2601805, - "Bet\u00e2nia do Piau\u00ed": 2201739, - "Bezerros": 2601904, - "Bias Fortes": 3106804, - "Bicas": 3106903, - "Bigua\u00e7u": 4202305, - "Bilac": 3506409, - "Biquinhas": 3107000, - "Birigui": 3506508, - "Biritiba-Mirim": 3506607, - "Biritinga": 2903607, - "Bituruna": 4102901, - "Blumenau": 4202404, - "Boa Esperan\u00e7a": 4103008, - "Boa Esperan\u00e7a do Igua\u00e7u": 4103024, - "Boa Esperan\u00e7a do Sul": 3506706, - "Boa Hora": 2201770, - "Boa Nova": 2903706, - "Boa Ventura": 2502102, - "Boa Ventura de S\u00e3o Roque": 4103040, - "Boa Viagem": 2302404, - "Boa Vista": 2502151, - "Boa Vista da Aparecida": 4103057, - "Boa Vista das Miss\u00f5es": 4302154, - "Boa Vista do Buric\u00e1": 4302204, - "Boa Vista do Cadeado": 4302220, - "Boa Vista do Gurupi": 2101970, - "Boa Vista do Incra": 4302238, - "Boa Vista do Ramos": 1300680, - "Boa Vista do Sul": 4302253, - "Boa Vista do Tupim": 2903805, - "Boca da Mata": 2701001, - "Boca do Acre": 1300706, - "Bocaina": 3506805, - "Bocaina de Minas": 3107208, - "Bocaina do Sul": 4202438, - "Bocai\u00fava": 3107307, - "Bocai\u00fava do Sul": 4103107, - "Bodoc\u00f3": 2602001, - "Bodoquena": 5002159, - "Bod\u00f3": 2401651, - "Bofete": 3506904, - "Boituva": 3507001, - "Bom Conselho": 2602100, - "Bom Despacho": 3107406, - "Bom Jardim": 3300506, - "Bom Jardim da Serra": 4202503, - "Bom Jardim de Goi\u00e1s": 5203401, - "Bom Jardim de Minas": 3107505, - "Bom Jesus": 4302303, - "Bom Jesus da Lapa": 2903904, - "Bom Jesus da Penha": 3107604, - "Bom Jesus da Serra": 2903953, - "Bom Jesus das Selvas": 2102036, - "Bom Jesus de Goi\u00e1s": 5203500, - "Bom Jesus do Amparo": 3107703, - "Bom Jesus do Araguaia": 5101852, - "Bom Jesus do Galho": 3107802, - "Bom Jesus do Itabapoana": 3300605, - "Bom Jesus do Norte": 3201100, - "Bom Jesus do Oeste": 4202578, - "Bom Jesus do Sul": 4103156, - "Bom Jesus do Tocantins": 1703305, - "Bom Jesus dos Perd\u00f5es": 3507100, - "Bom Lugar": 2102077, - "Bom Princ\u00edpio": 4302352, - "Bom Progresso": 4302378, - "Bom Repouso": 3107901, - "Bom Retiro": 4202602, - "Bom Retiro do Sul": 4302402, - "Bom Sucesso": 3108008, - "Bom Sucesso de Itarar\u00e9": 3507159, - "Bom Sucesso do Sul": 4103222, - "Bombinhas": 4202453, - "Bonfim": 1400159, - "Bonfim do Piau\u00ed": 2201929, - "Bonfin\u00f3polis": 5203559, - "Bonfin\u00f3polis de Minas": 3108206, - "Boninal": 2904001, - "Bonito": 2602308, - "Bonito de Minas": 3108255, - "Bonito de Santa F\u00e9": 2502409, - "Bon\u00f3polis": 5203575, - "Boqueir\u00e3o": 2502508, - "Boqueir\u00e3o do Le\u00e3o": 4302451, - "Boqueir\u00e3o do Piau\u00ed": 2201945, - "Boquim": 2800670, - "Boquira": 2904100, - "Borac\u00e9ia": 3507308, - "Borba": 1300805, - "Borborema": 3507407, - "Borda da Mata": 3108305, - "Borebi": 3507456, - "Borraz\u00f3polis": 4103305, - "Bor\u00e1": 3507209, - "Bossoroca": 4302501, - "Botelhos": 3108404, - "Botucatu": 3507506, - "Botumirim": 3108503, - "Botupor\u00e3": 2904209, - "Botuver\u00e1": 4202701, - "Bozano": 4302584, - "Braga": 4302600, - "Braganey": 4103354, - "Bragan\u00e7a": 1501709, - "Bragan\u00e7a Paulista": 3507605, - "Branquinha": 2701100, - "Brasil Novo": 1501725, - "Brasileira": 2201960, - "Brasil\u00e2ndia": 5002308, - "Brasil\u00e2ndia de Minas": 3108552, - "Brasil\u00e2ndia do Sul": 4103370, - "Brasil\u00e2ndia do Tocantins": 1703602, - "Brasil\u00e9ia": 1200104, - "Brasnorte": 5101902, - "Bras\u00edlia": 5300108, - "Bras\u00edlia de Minas": 3108602, - "Brazabrantes": 5203609, - "Braz\u00f3polis": 3108909, - "Bra\u00e7o do Norte": 4202800, - "Bra\u00e7o do Trombudo": 4202859, - "Bra\u00fana": 3507704, - "Bra\u00fanas": 3108800, - "Brejetuba": 3201159, - "Brejinho": 2401800, - "Brejinho de Nazar\u00e9": 1703701, - "Brejo": 2102101, - "Brejo Alegre": 3507753, - "Brejo Grande": 2800704, - "Brejo Grande do Araguaia": 1501758, - "Brejo Santo": 2302503, - "Brejo da Madre de Deus": 2602605, - "Brejo de Areia": 2102150, - "Brejo do Cruz": 2502805, - "Brejo dos Santos": 2502904, - "Brejol\u00e2ndia": 2904407, - "Brej\u00e3o": 2602407, - "Brej\u00f5es": 2904308, - "Breu Branco": 1501782, - "Breves": 1501808, - "Brit\u00e2nia": 5203807, - "Brochier": 4302659, - "Brodowski": 3507803, - "Brotas": 3507902, - "Brotas de Maca\u00fabas": 2904506, - "Brumadinho": 3109006, - "Brumado": 2904605, - "Brun\u00f3polis": 4202875, - "Brusque": 4202909, - "Br\u00e1s Pires": 3108701, - "Bueno Brand\u00e3o": 3109105, - "Buenos Aires": 2602704, - "Buen\u00f3polis": 3109204, - "Buerarema": 2904704, - "Bugre": 3109253, - "Bujari": 1200138, - "Bujaru": 1501907, - "Buri": 3508009, - "Buritama": 3508108, - "Buriti": 2102200, - "Buriti Alegre": 5203906, - "Buriti Bravo": 2102309, - "Buriti do Tocantins": 1703800, - "Buriti dos Lopes": 2202000, - "Buriti dos Montes": 2202026, - "Buriticupu": 2102325, - "Buritirama": 2904753, - "Buritirana": 2102358, - "Buritis": 3109303, - "Buritizal": 3508207, - "Buritizeiro": 3109402, - "Buti\u00e1": 4302709, - "Bu\u00edque": 2602803, - "B\u00e1lsamo": 3504800, - "Caapiranga": 1300839, - "Caapor\u00e3": 2503001, - "Caarap\u00f3": 5002407, - "Caatiba": 2904803, - "Cabaceiras": 2503100, - "Cabaceiras do Paragua\u00e7u": 2904852, - "Cabeceira Grande": 3109451, - "Cabeceiras": 5204003, - "Cabeceiras do Piau\u00ed": 2202059, - "Cabedelo": 2503209, - "Cabixi": 1100031, - "Cabo Frio": 3300704, - "Cabo Verde": 3109501, - "Cabo de Santo Agostinho": 2602902, - "Cabre\u00fava": 3508405, - "Cabrob\u00f3": 2603009, - "Cabr\u00e1lia Paulista": 3508306, - "Cacaul\u00e2ndia": 1100601, - "Cacequi": 4302907, - "Cachoeira": 2904902, - "Cachoeira Alta": 5204102, - "Cachoeira Dourada": 5204250, - "Cachoeira Grande": 2102374, - "Cachoeira Paulista": 3508603, - "Cachoeira da Prata": 3109600, - "Cachoeira de Goi\u00e1s": 5204201, - "Cachoeira de Minas": 3109709, - "Cachoeira de Paje\u00fa": 3102704, - "Cachoeira do Arari": 1502004, - "Cachoeira do Piri\u00e1": 1501956, - "Cachoeira do Sul": 4303004, - "Cachoeira dos \u00cdndios": 2503308, - "Cachoeiras de Macacu": 3300803, - "Cachoeirinha": 2603108, - "Cachoeiro de Itapemirim": 3201209, - "Cacimba de Areia": 2503407, - "Cacimba de Dentro": 2503506, - "Cacimbas": 2503555, - "Cacimbinhas": 2701209, - "Cacique Doble": 4303202, - "Cacoal": 1100049, - "Caconde": 3508702, - "Cacul\u00e9": 2905008, - "Caetanos": 2905156, - "Caetan\u00f3polis": 3109907, - "Caetit\u00e9": 2905206, - "Caet\u00e9": 3110004, - "Caet\u00e9s": 2603207, - "Cafarnaum": 2905305, - "Cafeara": 4103404, - "Cafel\u00e2ndia": 4103453, - "Cafezal do Sul": 4103479, - "Caiabu": 3508900, - "Caiana": 3110103, - "Caiap\u00f4nia": 5204409, - "Caibat\u00e9": 4303301, - "Caibi": 4203105, - "Caic\u00f3": 2402006, - "Caieiras": 3509007, - "Cairu": 2905404, - "Caiu\u00e1": 3509106, - "Cai\u00e7ara": 4303400, - "Cai\u00e7ara do Norte": 2401859, - "Cai\u00e7ara do Rio do Vento": 2401909, - "Cajamar": 3509205, - "Cajapi\u00f3": 2102408, - "Cajari": 2102507, - "Cajati": 3509254, - "Cajazeiras": 2503704, - "Cajazeiras do Piau\u00ed": 2202075, - "Cajazeirinhas": 2503753, - "Cajobi": 3509304, - "Cajueiro": 2701308, - "Cajueiro da Praia": 2202083, - "Cajuri": 3110202, - "Cajuru": 3509403, - "Caldas": 3110301, - "Caldas Brand\u00e3o": 2503803, - "Caldas Novas": 5204508, - "Caldazinha": 5204557, - "Caldeir\u00e3o Grande": 2905503, - "Caldeir\u00e3o Grande do Piau\u00ed": 2202091, - "Calif\u00f3rnia": 4103503, - "Calmon": 4203154, - "Calumbi": 2603405, - "Cal\u00e7ado": 2603306, - "Cal\u00e7oene": 1600204, - "Camacan": 2905602, - "Camacho": 3110400, - "Camala\u00fa": 2503902, - "Camamu": 2905800, - "Camanducaia": 3110509, - "Camapu\u00e3": 5002605, - "Camaqu\u00e3": 4303509, - "Camaragibe": 2603454, - "Camargo": 4303558, - "Cama\u00e7ari": 2905701, - "Cambar\u00e1": 4103602, - "Cambar\u00e1 do Sul": 4303608, - "Cambira": 4103800, - "Cambori\u00fa": 4203204, - "Cambuci": 3300902, - "Cambuquira": 3110707, - "Cambu\u00ed": 3110608, - "Camb\u00e9": 4103701, - "Camet\u00e1": 1502103, - "Camocim": 2302602, - "Camocim de S\u00e3o F\u00e9lix": 2603504, - "Campanha": 3110905, - "Campan\u00e1rio": 3110806, - "Campestre": 3111002, - "Campestre da Serra": 4303673, - "Campestre de Goi\u00e1s": 5204607, - "Campestre do Maranh\u00e3o": 2102556, - "Campina Grande": 2504009, - "Campina Grande do Sul": 4104006, - "Campina Verde": 3111101, - "Campina da Lagoa": 4103909, - "Campina das Miss\u00f5es": 4303707, - "Campina do Monte Alegre": 3509452, - "Campina do Sim\u00e3o": 4103958, - "Campinas": 3509502, - "Campinas do Piau\u00ed": 2202109, - "Campinas do Sul": 4303806, - "Campina\u00e7u": 5204656, - "Campinorte": 5204706, - "Campin\u00e1polis": 5102603, - "Campo Alegre": 4203303, - "Campo Alegre de Goi\u00e1s": 5204805, - "Campo Alegre de Lourdes": 2905909, - "Campo Alegre do Fidalgo": 2202117, - "Campo Azul": 3111150, - "Campo Belo": 3111200, - "Campo Belo do Sul": 4203402, - "Campo Bom": 4303905, - "Campo Bonito": 4104055, - "Campo Er\u00ea": 4203501, - "Campo Florido": 3111408, - "Campo Formoso": 2906006, - "Campo Grande": 5002704, - "Campo Grande do Piau\u00ed": 2202133, - "Campo Largo": 4104204, - "Campo Largo do Piau\u00ed": 2202174, - "Campo Limpo Paulista": 3509601, - "Campo Limpo de Goi\u00e1s": 5204854, - "Campo Magro": 4104253, - "Campo Maior": 2202208, - "Campo Mour\u00e3o": 4104303, - "Campo Novo": 4304002, - "Campo Novo de Rond\u00f4nia": 1100700, - "Campo Novo do Parecis": 5102637, - "Campo Redondo": 2402105, - "Campo Verde": 5102678, - "Campo do Brito": 2801009, - "Campo do Meio": 3111309, - "Campo do Tenente": 4104105, - "Campos Altos": 3111507, - "Campos Belos": 5204904, - "Campos Borges": 4304101, - "Campos Gerais": 3111606, - "Campos Lindos": 1703842, - "Campos Novos": 4203600, - "Campos Novos Paulista": 3509809, - "Campos Sales": 2302701, - "Campos Verdes": 5204953, - "Campos de J\u00falio": 5102686, - "Campos do Jord\u00e3o": 3509700, - "Campos dos Goytacazes": 3301009, - "Camutanga": 2603603, - "Cana Verde": 3111903, - "Canabrava do Norte": 5102694, - "Canan\u00e9ia": 3509908, - "Canapi": 2701605, - "Canarana": 5102702, - "Canas": 3509957, - "Canavieiras": 2906303, - "Cana\u00e3": 3111705, - "Cana\u00e3 dos Caraj\u00e1s": 1502152, - "Candeal": 2906402, - "Candeias": 2906501, - "Candeias do Jamari": 1100809, - "Candel\u00e1ria": 4304200, - "Candiba": 2906600, - "Candiota": 4304358, - "Cand\u00f3i": 4104428, - "Canela": 4304408, - "Canelinha": 4203709, - "Canguaretama": 2402204, - "Cangu\u00e7u": 4304507, - "Canhoba": 2801108, - "Canhotinho": 2603702, - "Canind\u00e9": 2302800, - "Canind\u00e9 de S\u00e3o Francisco": 2801207, - "Canitar": 3510153, - "Canoas": 4304606, - "Canoinhas": 4203808, - "Cansan\u00e7\u00e3o": 2906808, - "Cantagalo": 3112059, - "Cantanhede": 2102705, - "Canto do Buriti": 2202307, - "Cant\u00e1": 1400175, - "Canudos": 2906824, - "Canudos do Vale": 4304614, - "Canutama": 1300904, - "Can\u00e1polis": 3111804, - "Capanema": 4104501, - "Capara\u00f3": 3112109, - "Capela": 2801306, - "Capela Nova": 3112208, - "Capela de Santana": 4304689, - "Capela do Alto": 3510302, - "Capela do Alto Alegre": 2906857, - "Capelinha": 3112307, - "Capetinga": 3112406, - "Capim": 2504033, - "Capim Branco": 3112505, - "Capim Grosso": 2906873, - "Capinzal": 4203907, - "Capinzal do Norte": 2102754, - "Capin\u00f3polis": 3112604, - "Capistrano": 2302909, - "Capit\u00e3o": 4304697, - "Capit\u00e3o Andrade": 3112653, - "Capit\u00e3o En\u00e9as": 3112703, - "Capit\u00e3o Gerv\u00e1sio Oliveira": 2202455, - "Capit\u00e3o Le\u00f4nidas Marques": 4104600, - "Capit\u00e3o Po\u00e7o": 1502301, - "Capit\u00e3o de Campos": 2202406, - "Capit\u00f3lio": 3112802, - "Capivari": 3510401, - "Capivari de Baixo": 4203956, - "Capivari do Sul": 4304671, - "Capixaba": 1200179, - "Capoeiras": 2603801, - "Caputira": 3112901, - "Cap\u00e3o Alto": 4203253, - "Cap\u00e3o Bonito": 3510203, - "Cap\u00e3o Bonito do Sul": 4304622, - "Cap\u00e3o da Canoa": 4304630, - "Cap\u00e3o do Cip\u00f3": 4304655, - "Cap\u00e3o do Le\u00e3o": 4304663, - "Caracara\u00ed": 1400209, - "Caracol": 5002803, - "Caraguatatuba": 3510500, - "Carambe\u00ed": 4104659, - "Carana\u00edba": 3113107, - "Caranda\u00ed": 3113206, - "Carangola": 3113305, - "Carapebus": 3300936, - "Carapicu\u00edba": 3510609, - "Caratinga": 3113404, - "Carauari": 1301001, - "Caravelas": 2906907, - "Carazinho": 4304705, - "Cara\u00e1": 4304713, - "Cara\u00ed": 3113008, - "Cara\u00edbas": 2906899, - "Cara\u00fabas": 2504074, - "Cara\u00fabas do Piau\u00ed": 2202539, - "Carbonita": 3113503, - "Cardeal da Silva": 2907004, - "Cardoso": 3510708, - "Cardoso Moreira": 3301157, - "Carea\u00e7u": 3113602, - "Careiro": 1301100, - "Careiro da V\u00e1rzea": 1301159, - "Cariacica": 3201308, - "Caridade": 2303006, - "Caridade do Piau\u00ed": 2202554, - "Carinhanha": 2907103, - "Carira": 2801405, - "Cariri do Tocantins": 1703867, - "Cariria\u00e7u": 2303204, - "Carir\u00e9": 2303105, - "Cari\u00fas": 2303303, - "Carlinda": 5102793, - "Carlos Barbosa": 4304804, - "Carlos Chagas": 3113701, - "Carlos Gomes": 4304853, - "Carl\u00f3polis": 4104709, - "Carmo": 3301207, - "Carmo da Cachoeira": 3113909, - "Carmo da Mata": 3114006, - "Carmo de Minas": 3114105, - "Carmo do Cajuru": 3114204, - "Carmo do Parana\u00edba": 3114303, - "Carmo do Rio Claro": 3114402, - "Carmo do Rio Verde": 5205000, - "Carmol\u00e2ndia": 1703883, - "Carm\u00e9sia": 3113800, - "Carm\u00f3polis": 2801504, - "Carm\u00f3polis de Minas": 3114501, - "Carnaubais": 2402501, - "Carnaubal": 2303402, - "Carnaubeira da Penha": 2603926, - "Carna\u00edba": 2603900, - "Carna\u00faba dos Dantas": 2402402, - "Carneirinho": 3114550, - "Carneiros": 2701803, - "Caroebe": 1400233, - "Carolina": 2102804, - "Carpina": 2604007, - "Carrancas": 3114600, - "Carrapateira": 2504108, - "Carrasco Bonito": 1703891, - "Caruaru": 2604106, - "Carutapera": 2102903, - "Carvalhos": 3114808, - "Carvalh\u00f3polis": 3114709, - "Casa Branca": 3510807, - "Casa Grande": 3114907, - "Casa Nova": 2907202, - "Casca": 4304903, - "Cascalho Rico": 3115003, - "Cascavel": 4104808, - "Caseara": 1703909, - "Caseiros": 4304952, - "Casimiro de Abreu": 3301306, - "Casinhas": 2604155, - "Casserengue": 2504157, - "Cassil\u00e2ndia": 5002902, - "Castanhal": 1502400, - "Castanheira": 5102850, - "Castanheiras": 1100908, - "Castelo": 3201407, - "Castelo do Piau\u00ed": 2202604, - "Castel\u00e2ndia": 5205059, - "Castilho": 3511003, - "Castro": 4104907, - "Castro Alves": 2907301, - "Cataguases": 3115300, - "Catal\u00e3o": 5205109, - "Catanduva": 3511102, - "Catanduvas": 4105003, - "Catarina": 2303600, - "Catas Altas": 3115359, - "Catas Altas da Noruega": 3115409, - "Catende": 2604205, - "Catigu\u00e1": 3511201, - "Catingueira": 2504207, - "Catol\u00e2ndia": 2907400, - "Catol\u00e9 do Rocha": 2504306, - "Catu": 2907509, - "Catuji": 3115458, - "Catunda": 2303659, - "Caturama": 2907558, - "Catura\u00ed": 5205208, - "Caturit\u00e9": 2504355, - "Catuti": 3115474, - "Catu\u00edpe": 4305009, - "Caucaia": 2303709, - "Cavalcante": 5205307, - "Caxambu": 3115508, - "Caxambu do Sul": 4204103, - "Caxias": 2103000, - "Caxias do Sul": 4305108, - "Caxing\u00f3": 2202653, - "Ca\u00e7ador": 4203006, - "Ca\u00e7apava": 3508504, - "Ca\u00e7apava do Sul": 4302808, - "Ca\u00e7u": 5204300, - "Ca\u00e9m": 2905107, - "Cear\u00e1-Mirim": 2402600, - "Cedral": 3511300, - "Cedro": 2604304, - "Cedro de S\u00e3o Jo\u00e3o": 2801603, - "Cedro do Abaet\u00e9": 3115607, - "Celso Ramos": 4204152, - "Centen\u00e1rio": 1704105, - "Centen\u00e1rio do Sul": 4105102, - "Central": 2907608, - "Central de Minas": 3115706, - "Central do Maranh\u00e3o": 2103125, - "Centralina": 3115805, - "Centro Novo do Maranh\u00e3o": 2103174, - "Centro do Guilherme": 2103158, - "Cerejeiras": 1100056, - "Ceres": 5205406, - "Cerqueira C\u00e9sar": 3511409, - "Cerquilho": 3511508, - "Cerrito": 4305124, - "Cerro Azul": 4105201, - "Cerro Branco": 4305132, - "Cerro Cor\u00e1": 2402709, - "Cerro Grande": 4305157, - "Cerro Grande do Sul": 4305173, - "Cerro Largo": 4305207, - "Cerro Negro": 4204178, - "Ces\u00e1rio Lange": 3511607, - "Cezarina": 5205455, - "Chal\u00e9": 3116001, - "Chapada": 4305306, - "Chapada Ga\u00facha": 3116159, - "Chapada da Natividade": 1705102, - "Chapada de Areia": 1704600, - "Chapada do Norte": 3116100, - "Chapada dos Guimar\u00e3es": 5103007, - "Chapadinha": 2103208, - "Chapad\u00e3o do C\u00e9u": 5205471, - "Chapad\u00e3o do Lageado": 4204194, - "Chapad\u00e3o do Sul": 5002951, - "Chapec\u00f3": 4204202, - "Charqueada": 3511706, - "Charqueadas": 4305355, - "Charrua": 4305371, - "Chaval": 2303907, - "Chavantes": 3557204, - "Chaves": 1502509, - "Chiador": 3116209, - "Chiapetta": 4305405, - "Chopinzinho": 4105409, - "Chorozinho": 2303956, - "Chorroch\u00f3": 2907707, - "Chor\u00f3": 2303931, - "Chupinguaia": 1100924, - "Chuvisca": 4305447, - "Chu\u00ed": 4305439, - "Ch\u00e1cara": 3115904, - "Ch\u00e3 Grande": 2604502, - "Ch\u00e3 Preta": 2701902, - "Ch\u00e3 de Alegria": 2604403, - "Cianorte": 4105508, - "Cidade Ga\u00facha": 4105607, - "Cidade Ocidental": 5205497, - "Cidel\u00e2ndia": 2103257, - "Cidreira": 4305454, - "Cipot\u00e2nea": 3116308, - "Cip\u00f3": 2907905, - "Cir\u00edaco": 4305504, - "Claraval": 3116407, - "Claro dos Po\u00e7\u00f5es": 3116506, - "Clementina": 3511904, - "Clevel\u00e2ndia": 4105706, - "Cl\u00e1udia": 5103056, - "Cl\u00e1udio": 3116605, - "Coaraci": 2908002, - "Coari": 1301209, - "Cocal": 2202703, - "Cocal de Telha": 2202711, - "Cocal do Sul": 4204251, - "Cocal dos Alves": 2202729, - "Cocalinho": 5103106, - "Cocalzinho de Goi\u00e1s": 5205513, - "Cocos": 2908101, - "Codaj\u00e1s": 1301308, - "Cod\u00f3": 2103307, - "Coelho Neto": 2103406, - "Coimbra": 3116704, - "Coit\u00e9 do N\u00f3ia": 2702009, - "Coivaras": 2202737, - "Colares": 1502608, - "Colatina": 3201506, - "Colina": 3512001, - "Colinas": 2103505, - "Colinas do Sul": 5205521, - "Colinas do Tocantins": 1705508, - "Colm\u00e9ia": 1716703, - "Colniza": 5103254, - "Colombo": 4105805, - "Colorado": 4305603, - "Colorado do Oeste": 1100064, - "Coluna": 3116803, - "Col\u00edder": 5103205, - "Col\u00f4mbia": 3512100, - "Col\u00f4nia Leopoldina": 2702108, - "Col\u00f4nia do Gurgu\u00e9ia": 2202752, - "Col\u00f4nia do Piau\u00ed": 2202778, - "Combinado": 1705557, - "Comendador Gomes": 3116902, - "Comendador Levy Gasparian": 3300951, - "Comercinho": 3117009, - "Comodoro": 5103304, - "Concei\u00e7\u00e3o": 2504405, - "Concei\u00e7\u00e3o da Aparecida": 3117108, - "Concei\u00e7\u00e3o da Barra": 3201605, - "Concei\u00e7\u00e3o da Barra de Minas": 3115201, - "Concei\u00e7\u00e3o da Feira": 2908200, - "Concei\u00e7\u00e3o das Alagoas": 3117306, - "Concei\u00e7\u00e3o das Pedras": 3117207, - "Concei\u00e7\u00e3o de Ipanema": 3117405, - "Concei\u00e7\u00e3o de Macabu": 3301405, - "Concei\u00e7\u00e3o do Almeida": 2908309, - "Concei\u00e7\u00e3o do Araguaia": 1502707, - "Concei\u00e7\u00e3o do Canind\u00e9": 2202802, - "Concei\u00e7\u00e3o do Castelo": 3201704, - "Concei\u00e7\u00e3o do Coit\u00e9": 2908408, - "Concei\u00e7\u00e3o do Jacu\u00edpe": 2908507, - "Concei\u00e7\u00e3o do Lago-A\u00e7u": 2103554, - "Concei\u00e7\u00e3o do Mato Dentro": 3117504, - "Concei\u00e7\u00e3o do Par\u00e1": 3117603, - "Concei\u00e7\u00e3o do Rio Verde": 3117702, - "Concei\u00e7\u00e3o do Tocantins": 1705607, - "Concei\u00e7\u00e3o dos Ouros": 3117801, - "Conchal": 3512209, - "Conchas": 3512308, - "Conc\u00f3rdia": 4204301, - "Conc\u00f3rdia do Par\u00e1": 1502756, - "Condado": 2604601, - "Conde": 2908606, - "Conde\u00faba": 2908705, - "Condor": 4305702, - "Confins": 3117876, - "Confresa": 5103353, - "Congo": 2504702, - "Congonhal": 3117900, - "Congonhas": 3118007, - "Congonhas do Norte": 3118106, - "Congonhinhas": 4106001, - "Conquista": 3118205, - "Conquista D'Oeste": 5103361, - "Conselheiro Lafaiete": 3118304, - "Conselheiro Mairinck": 4106100, - "Conselheiro Pena": 3118403, - "Consola\u00e7\u00e3o": 3118502, - "Constantina": 4305801, - "Contagem": 3118601, - "Contenda": 4106209, - "Contendas do Sincor\u00e1": 2908804, - "Coqueiral": 3118700, - "Coqueiro Baixo": 4305835, - "Coqueiro Seco": 2702207, - "Coqueiros do Sul": 4305850, - "Cora\u00e7\u00e3o de Jesus": 3118809, - "Cora\u00e7\u00e3o de Maria": 2908903, - "Corb\u00e9lia": 4106308, - "Cordeiro": 3301504, - "Cordeiros": 2909000, - "Cordeir\u00f3polis": 3512407, - "Cordilheira Alta": 4204350, - "Cordisburgo": 3118908, - "Cordisl\u00e2ndia": 3119005, - "Corea\u00fa": 2304004, - "Coremas": 2504801, - "Corguinho": 5003108, - "Coribe": 2909109, - "Corinto": 3119104, - "Corn\u00e9lio Proc\u00f3pio": 4106407, - "Coroaci": 3119203, - "Coroados": 3512506, - "Coroat\u00e1": 2103604, - "Coromandel": 3119302, - "Coronel Bicaco": 4305900, - "Coronel Domingos Soares": 4106456, - "Coronel Ezequiel": 2402808, - "Coronel Fabriciano": 3119401, - "Coronel Freitas": 4204400, - "Coronel Jos\u00e9 Dias": 2202851, - "Coronel Jo\u00e3o Pessoa": 2402907, - "Coronel Jo\u00e3o S\u00e1": 2909208, - "Coronel Macedo": 3512605, - "Coronel Martins": 4204459, - "Coronel Murta": 3119500, - "Coronel Pacheco": 3119609, - "Coronel Pilar": 4305934, - "Coronel Sapucaia": 5003157, - "Coronel Vivida": 4106506, - "Coronel Xavier Chaves": 3119708, - "Correia Pinto": 4204558, - "Corrente": 2202901, - "Correntes": 2604700, - "Correntina": 2909307, - "Cort\u00eas": 2604809, - "Corumbata\u00ed": 3512704, - "Corumbata\u00ed do Sul": 4106555, - "Corumba\u00edba": 5205901, - "Corumbiara": 1100072, - "Corumb\u00e1": 5003207, - "Corumb\u00e1 de Goi\u00e1s": 5205802, - "Corup\u00e1": 4204509, - "Coruripe": 2702306, - "Cosmorama": 3512902, - "Cosm\u00f3polis": 3512803, - "Costa Marques": 1100080, - "Costa Rica": 5003256, - "Cotegipe": 2909406, - "Cotia": 3513009, - "Cotipor\u00e3": 4305959, - "Cotrigua\u00e7u": 5103379, - "Couto Magalh\u00e3es": 1706001, - "Couto de Magalh\u00e3es de Minas": 3120102, - "Coxilha": 4305975, - "Coxim": 5003306, - "Coxixola": 2504850, - "Crate\u00fas": 2304103, - "Crato": 2304202, - "Cravinhos": 3513108, - "Cravol\u00e2ndia": 2909505, - "Cra\u00edbas": 2702355, - "Crici\u00fama": 4204608, - "Crissiumal": 4306007, - "Cristais": 3120201, - "Cristais Paulista": 3513207, - "Cristal": 4306056, - "Cristal do Sul": 4306072, - "Cristalina": 5206206, - "Cristal\u00e2ndia": 1706100, - "Cristal\u00e2ndia do Piau\u00ed": 2203008, - "Cristiano Otoni": 3120409, - "Cristian\u00f3polis": 5206305, - "Cristina": 3120508, - "Cristino Castro": 2203107, - "Cristin\u00e1polis": 2801702, - "Crist\u00e1lia": 3120300, - "Crist\u00f3polis": 2909703, - "Cris\u00f3lita": 3120151, - "Cris\u00f3polis": 2909604, - "Crix\u00e1s": 5206404, - "Crix\u00e1s do Tocantins": 1706258, - "Croat\u00e1": 2304236, - "Crom\u00ednia": 5206503, - "Crucil\u00e2ndia": 3120607, - "Cruz": 2304251, - "Cruz Alta": 4306106, - "Cruz Machado": 4106803, - "Cruz das Almas": 2909802, - "Cruz do Esp\u00edrito Santo": 2504900, - "Cruzaltense": 4306130, - "Cruzeiro": 3513405, - "Cruzeiro da Fortaleza": 3120706, - "Cruzeiro do Igua\u00e7u": 4106571, - "Cruzeiro do Oeste": 4106605, - "Cruzeiro do Sul": 4306205, - "Cruzeta": 2403004, - "Cruzmaltina": 4106852, - "Cruz\u00e1lia": 3513306, - "Cruz\u00edlia": 3120805, - "Cubati": 2505006, - "Cubat\u00e3o": 3513504, - "Cuiab\u00e1": 5103403, - "Cuitegi": 2505204, - "Cuit\u00e9": 2505105, - "Cuit\u00e9 de Mamanguape": 2505238, - "Cujubim": 1100940, - "Cumari": 5206602, - "Cumaru": 2604908, - "Cumaru do Norte": 1502764, - "Cumbe": 2801900, - "Cunha": 3513603, - "Cunha Por\u00e3": 4204707, - "Cunhata\u00ed": 4204756, - "Cuparaque": 3120839, - "Cupira": 2605004, - "Cura\u00e7\u00e1": 2909901, - "Curimat\u00e1": 2203206, - "Curion\u00f3polis": 1502772, - "Curitiba": 4106902, - "Curitibanos": 4204806, - "Curi\u00fava": 4107009, - "Currais": 2203230, - "Currais Novos": 2403103, - "Curral Novo do Piau\u00ed": 2203271, - "Curral Velho": 2505303, - "Curral de Cima": 2505279, - "Curral de Dentro": 3120870, - "Curralinho": 1502806, - "Curralinhos": 2203255, - "Cururupu": 2103703, - "Curu\u00e1": 1502855, - "Curu\u00e7\u00e1": 1502905, - "Curvelo": 3120904, - "Curvel\u00e2ndia": 5103437, - "Cust\u00f3dia": 2605103, - "Cutias": 1600212, - "C\u00e1ceres": 5102504, - "C\u00e1ssia": 3115102, - "C\u00e1ssia dos Coqueiros": 3510906, - "C\u00e2ndido God\u00f3i": 4304309, - "C\u00e2ndido Mendes": 2102606, - "C\u00e2ndido Mota": 3510005, - "C\u00e2ndido Rodrigues": 3510104, - "C\u00e2ndido Sales": 2906709, - "C\u00e2ndido de Abreu": 4104402, - "C\u00e9u Azul": 4105300, - "C\u00edcero Dantas": 2907806, - "C\u00f3rrego Danta": 3119807, - "C\u00f3rrego Fundo": 3119955, - "C\u00f3rrego Novo": 3120003, - "C\u00f3rrego do Bom Jesus": 3119906, - "C\u00f3rrego do Ouro": 5205703, - "C\u00f4nego Marinho": 3117836, - "Damian\u00f3polis": 5206701, - "Dami\u00e3o": 2505352, - "Damol\u00e2ndia": 5206800, - "Darcin\u00f3polis": 1706506, - "Datas": 3121001, - "David Canabarro": 4306304, - "Davin\u00f3polis": 5206909, - "Delfim Moreira": 3121100, - "Delfin\u00f3polis": 3121209, - "Delmiro Gouveia": 2702405, - "Delta": 3121258, - "Demerval Lob\u00e3o": 2203305, - "Denise": 5103452, - "Deod\u00e1polis": 5003454, - "Deputado Irapuan Pinheiro": 2304269, - "Derrubadas": 4306320, - "Descalvado": 3513702, - "Descanso": 4204905, - "Descoberto": 3121308, - "Desterro": 2505402, - "Desterro de Entre Rios": 3121407, - "Desterro do Melo": 3121506, - "Dezesseis de Novembro": 4306353, - "Diadema": 3513801, - "Diamante": 2505600, - "Diamante D'Oeste": 4107157, - "Diamante do Norte": 4107108, - "Diamante do Sul": 4107124, - "Diamantina": 3121605, - "Diamantino": 5103502, - "Dian\u00f3polis": 1707009, - "Dias d'\u00c1vila": 2910057, - "Dilermando de Aguiar": 4306379, - "Diogo de Vasconcelos": 3121704, - "Dion\u00edsio": 3121803, - "Dion\u00edsio Cerqueira": 4205001, - "Diorama": 5207105, - "Dirce Reis": 3513850, - "Dirceu Arcoverde": 2203354, - "Divina Pastora": 2802007, - "Divino": 3122009, - "Divino das Laranjeiras": 3122108, - "Divino de S\u00e3o Louren\u00e7o": 3201803, - "Divinol\u00e2ndia": 3513900, - "Divinol\u00e2ndia de Minas": 3122207, - "Divin\u00e9sia": 3121902, - "Divin\u00f3polis": 3122306, - "Divin\u00f3polis de Goi\u00e1s": 5208301, - "Divin\u00f3polis do Tocantins": 1707108, - "Divisa Alegre": 3122355, - "Divisa Nova": 3122405, - "Divis\u00f3polis": 3122454, - "Dobrada": 3514007, - "Dois C\u00f3rregos": 3514106, - "Dois Irm\u00e3os": 4306403, - "Dois Irm\u00e3os das Miss\u00f5es": 4306429, - "Dois Irm\u00e3os do Buriti": 5003488, - "Dois Irm\u00e3os do Tocantins": 1707207, - "Dois Lajeados": 4306452, - "Dois Riachos": 2702504, - "Dois Vizinhos": 4107207, - "Dolcin\u00f3polis": 3514205, - "Dom Aquino": 5103601, - "Dom Bas\u00edlio": 2910107, - "Dom Bosco": 3122470, - "Dom Cavati": 3122504, - "Dom Eliseu": 1502939, - "Dom Expedito Lopes": 2203404, - "Dom Feliciano": 4306502, - "Dom Inoc\u00eancio": 2203453, - "Dom Joaquim": 3122603, - "Dom Macedo Costa": 2910206, - "Dom Pedrito": 4306601, - "Dom Pedro": 2103802, - "Dom Pedro de Alc\u00e2ntara": 4306551, - "Dom Silv\u00e9rio": 3122702, - "Dom Vi\u00e7oso": 3122801, - "Domingos Martins": 3201902, - "Domingos Mour\u00e3o": 2203420, - "Dona Emma": 4205100, - "Dona Eus\u00e9bia": 3122900, - "Dona Francisca": 4306700, - "Dona In\u00eas": 2505709, - "Dores de Campos": 3123007, - "Dores de Guanh\u00e3es": 3123106, - "Dores do Indai\u00e1": 3123205, - "Dores do Rio Preto": 3202009, - "Dores do Turvo": 3123304, - "Dores\u00f3polis": 3123403, - "Dormentes": 2605152, - "Douradina": 4107256, - "Dourado": 3514304, - "Douradoquara": 3123502, - "Dourados": 5003702, - "Doutor Camargo": 4107306, - "Doutor Maur\u00edcio Cardoso": 4306734, - "Doutor Pedrinho": 4205159, - "Doutor Ricardo": 4306759, - "Doutor Severiano": 2403202, - "Doutor Ulysses": 4128633, - "Doverl\u00e2ndia": 5207253, - "Dracena": 3514403, - "Duartina": 3514502, - "Duas Barras": 3301603, - "Duas Estradas": 2505808, - "Duer\u00e9": 1707306, - "Dumont": 3514601, - "Duque Bacelar": 2103901, - "Duque de Caxias": 3301702, - "Durand\u00e9": 3123528, - "D\u00e1rio Meira": 2910008, - "Echapor\u00e3": 3514700, - "Ecoporanga": 3202108, - "Edealina": 5207352, - "Ed\u00e9ia": 5207402, - "Eirunep\u00e9": 1301407, - "Eldorado": 5003751, - "Eldorado do Caraj\u00e1s": 1502954, - "Eldorado do Sul": 4306767, - "Elesb\u00e3o Veloso": 2203503, - "Elias Fausto": 3514908, - "Eliseu Martins": 2203602, - "Elisi\u00e1rio": 3514924, - "El\u00edsio Medrado": 2910305, - "El\u00f3i Mendes": 3123601, - "Emas": 2505907, - "Emba\u00faba": 3514957, - "Embu das Artes": 3515004, - "Embu-Gua\u00e7u": 3515103, - "Emilian\u00f3polis": 3515129, - "Encantado": 4306809, - "Encanto": 2403301, - "Encruzilhada": 2910404, - "Encruzilhada do Sul": 4306908, - "Engenheiro Beltr\u00e3o": 4107504, - "Engenheiro Caldas": 3123700, - "Engenheiro Coelho": 3515152, - "Engenheiro Navarro": 3123809, - "Engenheiro Paulo de Frontin": 3301801, - "Engenho Velho": 4306924, - "Entre Folhas": 3123858, - "Entre Rios": 4205175, - "Entre Rios de Minas": 3123908, - "Entre Rios do Oeste": 4107538, - "Entre Rios do Sul": 4306957, - "Entre-Iju\u00eds": 4306932, - "Envira": 1301506, - "En\u00e9as Marques": 4107405, - "Epitaciol\u00e2ndia": 1200252, - "Equador": 2403400, - "Erebango": 4306973, - "Erechim": 4307005, - "Erer\u00ea": 2304277, - "Ermo": 4205191, - "Ernestina": 4307054, - "Erval Grande": 4307203, - "Erval Seco": 4307302, - "Erval Velho": 4205209, - "Erv\u00e1lia": 3124005, - "Escada": 2605202, - "Esmeralda": 4307401, - "Esmeraldas": 3124104, - "Espera Feliz": 3124203, - "Esperantina": 1707405, - "Esperantin\u00f3polis": 2104008, - "Esperan\u00e7a": 2506004, - "Esperan\u00e7a Nova": 4107520, - "Esperan\u00e7a do Sul": 4307450, - "Espig\u00e3o Alto do Igua\u00e7u": 4107546, - "Espig\u00e3o D'Oeste": 1100098, - "Espinosa": 3124302, - "Esplanada": 2910602, - "Espumoso": 4307500, - "Esp\u00edrito Santo": 2403509, - "Esp\u00edrito Santo do Dourado": 3124401, - "Esp\u00edrito Santo do Pinhal": 3515186, - "Esp\u00edrito Santo do Turvo": 3515194, - "Esta\u00e7\u00e3o": 4307559, - "Esteio": 4307708, - "Estiva": 3124500, - "Estiva Gerbi": 3557303, - "Estreito": 2104057, - "Estrela": 4307807, - "Estrela Dalva": 3124609, - "Estrela Velha": 4307815, - "Estrela d'Oeste": 3515202, - "Estrela de Alagoas": 2702553, - "Estrela do Indai\u00e1": 3124708, - "Estrela do Norte": 3515301, - "Estrela do Sul": 3124807, - "Est\u00e2ncia": 2802106, - "Est\u00e2ncia Velha": 4307609, - "Euclides da Cunha": 2910701, - "Euclides da Cunha Paulista": 3515350, - "Eugen\u00f3polis": 3124906, - "Eug\u00eanio de Castro": 4307831, - "Eun\u00e1polis": 2910727, - "Eus\u00e9bio": 2304285, - "Ewbank da C\u00e2mara": 3125002, - "Extrema": 3125101, - "Extremoz": 2403608, - "Exu": 2605301, - "Fagundes": 2506103, - "Fagundes Varela": 4307864, - "Faina": 5207535, - "Fama": 3125200, - "Faria Lemos": 3125309, - "Farias Brito": 2304301, - "Faro": 1503002, - "Farol": 4107553, - "Farroupilha": 4307906, - "Fartura": 3515400, - "Fartura do Piau\u00ed": 2203750, - "Faxinal": 4107603, - "Faxinal do Soturno": 4308003, - "Faxinal dos Guedes": 4205308, - "Faxinalzinho": 4308052, - "Fazenda Nova": 5207600, - "Fazenda Rio Grande": 4107652, - "Fazenda Vilanova": 4308078, - "Feij\u00f3": 1200302, - "Feira Grande": 2702603, - "Feira Nova": 2802205, - "Feira Nova do Maranh\u00e3o": 2104073, - "Feira da Mata": 2910776, - "Feira de Santana": 2910800, - "Felipe Guerra": 2403707, - "Felisburgo": 3125606, - "Felixl\u00e2ndia": 3125705, - "Feliz": 4308102, - "Feliz Deserto": 2702702, - "Feliz Natal": 5103700, - "Fel\u00edcio dos Santos": 3125408, - "Fernandes Pinheiro": 4107736, - "Fernandes Tourinho": 3125804, - "Fernando Falc\u00e3o": 2104081, - "Fernando Pedroza": 2403756, - "Fernando Prestes": 3515608, - "Fernando de Noronha": 2605459, - "Fernand\u00f3polis": 3515509, - "Fern\u00e3o": 3515657, - "Ferraz de Vasconcelos": 3515707, - "Ferreira Gomes": 1600238, - "Ferreiros": 2605509, - "Ferros": 3125903, - "Fervedouro": 3125952, - "Figueira": 4107751, - "Figueir\u00e3o": 5003900, - "Figueir\u00f3polis": 1707652, - "Figueir\u00f3polis D'Oeste": 5103809, - "Filad\u00e9lfia": 1707702, - "Firmino Alves": 2910909, - "Firmin\u00f3polis": 5207808, - "Flexeiras": 2702801, - "Flor da Serra do Sul": 4107850, - "Flor do Sert\u00e3o": 4205357, - "Flora Rica": 3515806, - "Flora\u00ed": 4107801, - "Floreal": 3515905, - "Flores": 2605608, - "Flores da Cunha": 4308201, - "Flores de Goi\u00e1s": 5207907, - "Flores do Piau\u00ed": 2203800, - "Floresta": 2605707, - "Floresta Azul": 2911006, - "Floresta do Araguaia": 1503044, - "Floresta do Piau\u00ed": 2203859, - "Florestal": 3126000, - "Florest\u00f3polis": 4108007, - "Floriano": 2203909, - "Floriano Peixoto": 4308250, - "Florian\u00f3polis": 4205407, - "Flor\u00e2nia": 2403806, - "Flor\u00ednia": 3516101, - "Fl\u00f3rida": 4108106, - "Fl\u00f3rida Paulista": 3516002, - "Fonte Boa": 1301605, - "Fontoura Xavier": 4308300, - "Formiga": 3126109, - "Formigueiro": 4308409, - "Formosa": 5208004, - "Formosa da Serra Negra": 2104099, - "Formosa do Oeste": 4108205, - "Formosa do Rio Preto": 2911105, - "Formosa do Sul": 4205431, - "Formoso": 5208103, - "Formoso do Araguaia": 1708205, - "Forquetinha": 4308433, - "Forquilha": 2304350, - "Forquilhinha": 4205456, - "Fortaleza": 2304400, - "Fortaleza de Minas": 3126307, - "Fortaleza do Taboc\u00e3o": 1708254, - "Fortaleza dos Nogueiras": 2104107, - "Fortaleza dos Valos": 4308458, - "Fortim": 2304459, - "Fortuna": 2104206, - "Fortuna de Minas": 3126406, - "Foz do Igua\u00e7u": 4108304, - "Foz do Jord\u00e3o": 4108452, - "Fraiburgo": 4205506, - "Franca": 3516200, - "Francin\u00f3polis": 2204006, - "Francisco Alves": 4108320, - "Francisco Ayres": 2204105, - "Francisco Badar\u00f3": 3126505, - "Francisco Beltr\u00e3o": 4108403, - "Francisco Dantas": 2403905, - "Francisco Dumont": 3126604, - "Francisco Macedo": 2204154, - "Francisco Morato": 3516309, - "Francisco Santos": 2204204, - "Francisco S\u00e1": 3126703, - "Francisc\u00f3polis": 3126752, - "Franco da Rocha": 3516408, - "Frecheirinha": 2304509, - "Frederico Westphalen": 4308508, - "Frei Gaspar": 3126802, - "Frei Inoc\u00eancio": 3126901, - "Frei Lagonegro": 3126950, - "Frei Martinho": 2506202, - "Frei Miguelinho": 2605806, - "Frei Paulo": 2802304, - "Frei Rog\u00e9rio": 4205555, - "Fronteira": 3127008, - "Fronteira dos Vales": 3127057, - "Fronteiras": 2204303, - "Fruta de Leite": 3127073, - "Frutal": 3127107, - "Frutuoso Gomes": 2404002, - "Fund\u00e3o": 3202207, - "Funil\u00e2ndia": 3127206, - "F\u00e1tima": 1707553, - "F\u00e1tima do Sul": 5003801, - "F\u00eanix": 4107702, - "Gabriel Monteiro": 3516507, - "Gado Bravo": 2506251, - "Galil\u00e9ia": 3127305, - "Galinhos": 2404101, - "Galv\u00e3o": 4205605, - "Gameleira": 2605905, - "Gameleira de Goi\u00e1s": 5208152, - "Gameleiras": 3127339, - "Gandu": 2911204, - "Garanhuns": 2606002, - "Gararu": 2802403, - "Garibaldi": 4308607, - "Garopaba": 4205704, - "Garraf\u00e3o do Norte": 1503077, - "Garruchos": 4308656, - "Garuva": 4205803, - "Gar\u00e7a": 3516705, - "Gaspar": 4205902, - "Gast\u00e3o Vidigal": 3516804, - "Gaurama": 4308706, - "Gavi\u00e3o": 2911253, - "Gavi\u00e3o Peixoto": 3516853, - "Ga\u00facha do Norte": 5103858, - "Geminiano": 2204352, - "General Carneiro": 5103908, - "General C\u00e2mara": 4308805, - "General Maynard": 2802502, - "General Salgado": 3516903, - "General Sampaio": 2304608, - "Gentil": 4308854, - "Gentio do Ouro": 2911303, - "Getulina": 3517000, - "Get\u00falio Vargas": 4308904, - "Gilbu\u00e9s": 2204402, - "Girau do Ponciano": 2702900, - "Giru\u00e1": 4309001, - "Glaucil\u00e2ndia": 3127354, - "Glic\u00e9rio": 3517109, - "Glorinha": 4309050, - "Gl\u00f3ria": 2911402, - "Gl\u00f3ria D'Oeste": 5103957, - "Gl\u00f3ria de Dourados": 5004007, - "Gl\u00f3ria do Goit\u00e1": 2606101, - "Godofredo Viana": 2104305, - "Godoy Moreira": 4108551, - "Goiabeira": 3127370, - "Goiana": 2606200, - "Goiandira": 5208509, - "Goianinha": 2404200, - "Goianira": 5208806, - "Goianorte": 1708304, - "Goian\u00e1": 3127388, - "Goian\u00e1polis": 5208400, - "Goian\u00e9sia": 5208608, - "Goian\u00e9sia do Par\u00e1": 1503093, - "Goiatins": 1709005, - "Goiatuba": 5209101, - "Goioer\u00ea": 4108601, - "Goioxim": 4108650, - "Goi\u00e1s": 5208905, - "Goi\u00e2nia": 5208707, - "Gongogi": 2911501, - "Gonzaga": 3127503, - "Gon\u00e7alves": 3127404, - "Gon\u00e7alves Dias": 2104404, - "Gouveia": 3127602, - "Gouvel\u00e2ndia": 5209150, - "Governador Archer": 2104503, - "Governador Celso Ramos": 4206009, - "Governador Dix-Sept Rosado": 2404309, - "Governador Edison Lob\u00e3o": 2104552, - "Governador Eug\u00eanio Barros": 2104602, - "Governador Jorge Teixeira": 1101005, - "Governador Lindenberg": 3202256, - "Governador Luiz Rocha": 2104628, - "Governador Mangabeira": 2911600, - "Governador Newton Bello": 2104651, - "Governador Nunes Freire": 2104677, - "Governador Valadares": 3127701, - "Gracho Cardoso": 2802601, - "Graja\u00fa": 2104800, - "Gramado": 4309100, - "Gramado Xavier": 4309159, - "Gramado dos Loureiros": 4309126, - "Grandes Rios": 4108700, - "Granito": 2606309, - "Granja": 2304707, - "Granjeiro": 2304806, - "Gravatal": 4206207, - "Gravata\u00ed": 4309209, - "Gravat\u00e1": 2606408, - "Gra\u00e7a": 2304657, - "Gra\u00e7a Aranha": 2104701, - "Groa\u00edras": 2304905, - "Grossos": 2404408, - "Grupiara": 3127909, - "Gr\u00e3o Mogol": 3127800, - "Gr\u00e3o Par\u00e1": 4206108, - "Guabiju": 4309258, - "Guabiruba": 4206306, - "Guadalupe": 2204501, - "Guaimb\u00ea": 3517307, - "Guaira\u00e7\u00e1": 4108908, - "Guai\u00e7ara": 3517208, - "Guai\u00faba": 2304954, - "Guajar\u00e1": 1301654, - "Guajar\u00e1-Mirim": 1100106, - "Guajeru": 2911659, - "Guamar\u00e9": 2404507, - "Guamiranga": 4108957, - "Guanambi": 2911709, - "Guanh\u00e3es": 3128006, - "Guapiara": 3517604, - "Guapia\u00e7u": 3517505, - "Guapimirim": 3301850, - "Guapirama": 4109005, - "Guaporema": 4109104, - "Guapor\u00e9": 4309407, - "Guap\u00e9": 3128105, - "Guap\u00f3": 5209200, - "Guarabira": 2506301, - "Guaraci": 4109203, - "Guaraciaba": 4206405, - "Guaraciaba do Norte": 2305001, - "Guaraciama": 3128253, - "Guaramiranga": 2305100, - "Guaramirim": 4206504, - "Guarani": 3128402, - "Guarani d'Oeste": 3518008, - "Guarani das Miss\u00f5es": 4309506, - "Guarani de Goi\u00e1s": 5209408, - "Guarania\u00e7u": 4109302, - "Guarant\u00e3": 3518107, - "Guarant\u00e3 do Norte": 5104104, - "Guaran\u00e9sia": 3128303, - "Guarapari": 3202405, - "Guarapuava": 4109401, - "Guaraque\u00e7aba": 4109500, - "Guararapes": 3518206, - "Guararema": 3518305, - "Guarar\u00e1": 3128501, - "Guaratinga": 2911808, - "Guaratinguet\u00e1": 3518404, - "Guaratuba": 4109609, - "Guara\u00e7a\u00ed": 3517802, - "Guara\u00ed": 1709302, - "Guara\u00edta": 5209291, - "Guarda-Mor": 3128600, - "Guare\u00ed": 3518503, - "Guariba": 3518602, - "Guaribas": 2204550, - "Guarinos": 5209457, - "Guaruj\u00e1": 3518701, - "Guaruj\u00e1 do Sul": 4206603, - "Guarulhos": 3518800, - "Guar\u00e1": 3517703, - "Guatamb\u00fa": 4206652, - "Guatapar\u00e1": 3518859, - "Guaxup\u00e9": 3128709, - "Gua\u00e7u\u00ed": 3202306, - "Gua\u00edba": 4309308, - "Gua\u00edra": 3517406, - "Guia Lopes da Laguna": 5004106, - "Guidoval": 3128808, - "Guimar\u00e2nia": 3128907, - "Guimar\u00e3es": 2104909, - "Guiratinga": 5104203, - "Guiricema": 3129004, - "Gurinhat\u00e3": 3129103, - "Gurinh\u00e9m": 2506400, - "Gurj\u00e3o": 2506509, - "Gurupi": 1709500, - "Gurup\u00e1": 1503101, - "Guzol\u00e2ndia": 3518909, - "G\u00e1lia": 3516606, - "Harmonia": 4309555, - "Heitora\u00ed": 5209606, - "Heliodora": 3129202, - "Heli\u00f3polis": 2911857, - "Hercul\u00e2ndia": 3519006, - "Herval": 4307104, - "Herval d'Oeste": 4206702, - "Herveiras": 4309571, - "Hidrolina": 5209804, - "Hidrol\u00e2ndia": 5209705, - "Holambra": 3519055, - "Hon\u00f3rio Serpa": 4109658, - "Horizonte": 2305233, - "Horizontina": 4309605, - "Hortol\u00e2ndia": 3519071, - "Hugo Napole\u00e3o": 2204600, - "Hulha Negra": 4309654, - "Humait\u00e1": 1301704, - "Humberto de Campos": 2105005, - "Iacanga": 3519105, - "Iaciara": 5209903, - "Iacri": 3519204, - "Iapu": 3129301, - "Iaras": 3519253, - "Iati": 2606507, - "Ia\u00e7u": 2911907, - "Ibaiti": 4109708, - "Ibarama": 4309753, - "Ibaretama": 2305266, - "Ibateguara": 2703007, - "Ibatiba": 3202454, - "Ibat\u00e9": 3519303, - "Ibema": 4109757, - "Ibertioga": 3129400, - "Ibiam": 4206751, - "Ibiapina": 2305308, - "Ibiara": 2506608, - "Ibiassuc\u00ea": 2912004, - "Ibia\u00e7\u00e1": 4309803, - "Ibia\u00ed": 3129608, - "Ibicara\u00ed": 2912103, - "Ibicar\u00e9": 4206801, - "Ibicoara": 2912202, - "Ibicuitinga": 2305332, - "Ibicu\u00ed": 2912301, - "Ibimirim": 2606606, - "Ibipeba": 2912400, - "Ibipitanga": 2912509, - "Ibipor\u00e3": 4109807, - "Ibiquera": 2912608, - "Ibiracatu": 3129657, - "Ibiraci": 3129707, - "Ibiraiaras": 4309902, - "Ibirajuba": 2606705, - "Ibirama": 4206900, - "Ibirapitanga": 2912707, - "Ibirapuit\u00e3": 4309951, - "Ibirapu\u00e3": 2912806, - "Ibirarema": 3519501, - "Ibirataia": 2912905, - "Ibira\u00e7u": 3202504, - "Ibirit\u00e9": 3129806, - "Ibirub\u00e1": 4310009, - "Ibir\u00e1": 3519402, - "Ibitiara": 2913002, - "Ibitinga": 3519600, - "Ibitirama": 3202553, - "Ibitit\u00e1": 2913101, - "Ibiti\u00fara de Minas": 3129905, - "Ibituruna": 3130002, - "Ibi\u00e1": 3129509, - "Ibi\u00fana": 3519709, - "Ibotirama": 2913200, - "Icapu\u00ed": 2305357, - "Icara\u00ed de Minas": 3130051, - "Icara\u00edma": 4109906, - "Icatu": 2105104, - "Ichu": 2913309, - "Iconha": 3202603, - "Ic\u00e9m": 3519808, - "Ic\u00f3": 2305407, - "Ielmo Marinho": 2404606, - "Iep\u00ea": 3519907, - "Igaci": 2703106, - "Igapor\u00e3": 2913408, - "Igaracy": 2502607, - "Igarapava": 3520103, - "Igarap\u00e9": 3130101, - "Igarap\u00e9 Grande": 2105203, - "Igarap\u00e9 do Meio": 2105153, - "Igarap\u00e9-A\u00e7u": 1503200, - "Igarap\u00e9-Miri": 1503309, - "Igarassu": 2606804, - "Igaratinga": 3130200, - "Igarat\u00e1": 3520202, - "Igara\u00e7u do Tiet\u00ea": 3520004, - "Igrapi\u00fana": 2913457, - "Igreja Nova": 2703205, - "Igrejinha": 4310108, - "Iguaba Grande": 3301876, - "Iguape": 3520301, - "Iguaracy": 2606903, - "Iguara\u00e7u": 4110003, - "Iguatama": 3130309, - "Iguatemi": 5004304, - "Iguatu": 2305506, - "Igua\u00ed": 2913507, - "Ijaci": 3130408, - "Iju\u00ed": 4310207, - "Ilha Comprida": 3520426, - "Ilha Grande": 2204659, - "Ilha Solteira": 3520442, - "Ilha das Flores": 2802700, - "Ilha de Itamarac\u00e1": 2607604, - "Ilhabela": 3520400, - "Ilhota": 4207106, - "Ilh\u00e9us": 2913606, - "Ilic\u00ednea": 3130507, - "Il\u00f3polis": 4310306, - "Imaculada": 2506707, - "Imaru\u00ed": 4207205, - "Imba\u00fa": 4110078, - "Imbituba": 4207304, - "Imbituva": 4110102, - "Imbuia": 4207403, - "Imb\u00e9": 4310330, - "Imb\u00e9 de Minas": 3130556, - "Imigrante": 4310363, - "Imperatriz": 2105302, - "Inaciol\u00e2ndia": 5209937, - "Inaj\u00e1": 4110300, - "Inconfidentes": 3130606, - "Indaiabira": 3130655, - "Indaial": 4207502, - "Indaiatuba": 3520509, - "Independ\u00eancia": 4310405, - "Indiana": 3520608, - "Indian\u00f3polis": 4110409, - "Indiapor\u00e3": 3520707, - "Indiara": 5209952, - "Indiaroba": 2802809, - "Indiava\u00ed": 5104500, - "Ingazeira": 2607109, - "Inga\u00ed": 3130804, - "Ing\u00e1": 2506806, - "Inhacor\u00e1": 4310413, - "Inhambupe": 2913705, - "Inhangapi": 1503408, - "Inhapi": 2703304, - "Inhapim": 3130903, - "Inha\u00fama": 3131000, - "Inhuma": 2204709, - "Inhumas": 5210000, - "Inimutaba": 3131109, - "Inoc\u00eancia": 5004403, - "In\u00e1cio Martins": 4110201, - "In\u00fabia Paulista": 3520806, - "Iomer\u00ea": 4207577, - "Ipaba": 3131158, - "Ipameri": 5210109, - "Ipanema": 3131208, - "Ipangua\u00e7u": 2404705, - "Ipaporanga": 2305654, - "Ipatinga": 3131307, - "Ipaumirim": 2305704, - "Ipaussu": 3520905, - "Ipecaet\u00e1": 2913804, - "Iper\u00f3": 3521002, - "Ipe\u00fana": 3521101, - "Ipia\u00e7u": 3131406, - "Ipia\u00fa": 2913903, - "Ipigu\u00e1": 3521150, - "Ipira": 4207601, - "Ipiranga": 4110508, - "Ipiranga de Goi\u00e1s": 5210158, - "Ipiranga do Norte": 5104526, - "Ipiranga do Piau\u00ed": 2204808, - "Ipiranga do Sul": 4310462, - "Ipir\u00e1": 2914000, - "Ipixuna": 1301803, - "Ipixuna do Par\u00e1": 1503457, - "Ipojuca": 2607208, - "Iporanga": 3521200, - "Ipor\u00e1": 5210208, - "Ipor\u00e3": 4110607, - "Ipor\u00e3 do Oeste": 4207650, - "Ipu": 2305803, - "Ipua\u00e7u": 4207684, - "Ipubi": 2607307, - "Ipueira": 2404804, - "Ipueiras": 2305902, - "Ipui\u00fana": 3131505, - "Ipumirim": 4207700, - "Ipupiara": 2914109, - "Ipu\u00e3": 3521309, - "Ip\u00ea": 4310439, - "Iracema": 2306009, - "Iracema do Oeste": 4110656, - "Iraceminha": 4207759, - "Iracem\u00e1polis": 3521408, - "Irajuba": 2914208, - "Iramaia": 2914307, - "Iranduba": 1301852, - "Irani": 4207809, - "Irapuru": 3521606, - "Irapu\u00e3": 3521507, - "Iraquara": 2914406, - "Irar\u00e1": 2914505, - "Irati": 4207858, - "Irau\u00e7uba": 2306108, - "Ira\u00ed": 4310504, - "Ira\u00ed de Minas": 3131604, - "Irec\u00ea": 2914604, - "Iretama": 4110805, - "Irine\u00f3polis": 4207908, - "Irituia": 1503507, - "Irupi": 3202652, - "Isa\u00edas Coelho": 2204907, - "Israel\u00e2ndia": 5210307, - "Itaara": 4310538, - "Itabaiana": 2802908, - "Itabaianinha": 2803005, - "Itabela": 2914653, - "Itaberaba": 2914703, - "Itabera\u00ed": 5210406, - "Itaber\u00e1": 3521705, - "Itabi": 2803104, - "Itabira": 3131703, - "Itabirinha": 3131802, - "Itabirito": 3131901, - "Itabora\u00ed": 3301900, - "Itabuna": 2914802, - "Itacaj\u00e1": 1710508, - "Itacambira": 3132008, - "Itacarambi": 3132107, - "Itacar\u00e9": 2914901, - "Itacoatiara": 1301902, - "Itacuruba": 2607406, - "Itacurubi": 4310553, - "Itaet\u00e9": 2915007, - "Itagi": 2915106, - "Itagib\u00e1": 2915205, - "Itagimirim": 2915304, - "Itaguaj\u00e9": 4110904, - "Itaguara": 3132206, - "Itaguari": 5210562, - "Itaguaru": 5210604, - "Itaguatins": 1710706, - "Itagua\u00e7u": 3202702, - "Itagua\u00e7u da Bahia": 2915353, - "Itagua\u00ed": 3302007, - "Itain\u00f3polis": 2205003, - "Itaipava do Graja\u00fa": 2105351, - "Itaipul\u00e2ndia": 4110953, - "Itaip\u00e9": 3132305, - "Itaitinga": 2306256, - "Itaituba": 1503606, - "Itai\u00e7aba": 2306207, - "Itai\u00f3polis": 4208104, - "Itaja\u00ed": 4208203, - "Itajobi": 3521903, - "Itaju": 3522000, - "Itaju do Col\u00f4nia": 2915403, - "Itajub\u00e1": 3132404, - "Itaju\u00edpe": 2915502, - "Itaj\u00e1": 2404853, - "Italva": 3302056, - "Itamaraju": 2915601, - "Itamarandiba": 3132503, - "Itamarati": 1301951, - "Itamarati de Minas": 3132602, - "Itamari": 2915700, - "Itambacuri": 3132701, - "Itambarac\u00e1": 4111001, - "Itamb\u00e9": 2915809, - "Itamb\u00e9 do Mato Dentro": 3132800, - "Itamogi": 3132909, - "Itamonte": 3133006, - "Itanagra": 2915908, - "Itanhandu": 3133105, - "Itanhang\u00e1": 5104542, - "Itanha\u00e9m": 3522109, - "Itanhomi": 3133204, - "Itanh\u00e9m": 2916005, - "Itaobim": 3133303, - "Itaocara": 3302106, - "Itapaci": 5210901, - "Itapagipe": 3133402, - "Itapag\u00e9": 2306306, - "Itaparica": 2916104, - "Itapebi": 2916302, - "Itapecerica": 3133501, - "Itapecerica da Serra": 3522208, - "Itapecuru Mirim": 2105401, - "Itapejara d'Oeste": 4111209, - "Itapema": 4208302, - "Itapemirim": 3202801, - "Itaperuna": 3302205, - "Itaperu\u00e7u": 4111258, - "Itapetim": 2607703, - "Itapetinga": 2916401, - "Itapetininga": 3522307, - "Itapeva": 3522406, - "Itapevi": 3522505, - "Itapicuru": 2916500, - "Itapipoca": 2306405, - "Itapira": 3522604, - "Itapiranga": 4208401, - "Itapirapu\u00e3": 5211008, - "Itapirapu\u00e3 Paulista": 3522653, - "Itapiratins": 1710904, - "Itapissuma": 2607752, - "Itapitanga": 2916609, - "Itapi\u00fana": 2306504, - "Itaporanga": 2507002, - "Itaporanga d'Ajuda": 2803203, - "Itapororoca": 2507101, - "Itapor\u00e3": 5004502, - "Itapor\u00e3 do Tocantins": 1711100, - "Itapo\u00e1": 4208450, - "Itapuca": 4310579, - "Itapura": 3523008, - "Itapuranga": 5211206, - "Itapu\u00e3 do Oeste": 1101104, - "Itapu\u00ed": 3522901, - "Itap\u00e9": 2916203, - "Itaquaquecetuba": 3523107, - "Itaquara": 2916708, - "Itaqui": 4310603, - "Itaquira\u00ed": 5004601, - "Itaquitinga": 2607802, - "Itarana": 3202900, - "Itarantim": 2916807, - "Itarar\u00e9": 3523206, - "Itarema": 2306553, - "Itariri": 3523305, - "Itarum\u00e3": 5211305, - "Itati": 4310652, - "Itatiaia": 3302254, - "Itatiaiu\u00e7u": 3133709, - "Itatiba": 3523404, - "Itatiba do Sul": 4310702, - "Itatim": 2916856, - "Itatinga": 3523503, - "Itatira": 2306603, - "Itatuba": 2507200, - "Itaubal": 1600253, - "Itaueira": 2205102, - "Itau\u00e7u": 5211404, - "Itaverava": 3133907, - "Ita\u00ed": 3521804, - "Ita\u00edba": 2607505, - "Ita\u00f3ca": 3522158, - "Ita\u00fa": 2404903, - "Ita\u00fa de Minas": 3133758, - "Ita\u00faba": 5104559, - "Ita\u00fana": 3133808, - "Ita\u00fana do Sul": 4111308, - "Itinga": 3134004, - "Itinga do Maranh\u00e3o": 2105427, - "Itiquira": 5104609, - "Itirapina": 3523602, - "Itirapu\u00e3": 3523701, - "Itiru\u00e7u": 2916906, - "Iti\u00faba": 2917003, - "Itobi": 3523800, - "Itoror\u00f3": 2917102, - "Itu": 3523909, - "Itua\u00e7u": 2917201, - "Ituber\u00e1": 2917300, - "Itueta": 3134103, - "Ituiutaba": 3134202, - "Itumbiara": 5211503, - "Itumirim": 3134301, - "Itupeva": 3524006, - "Itupiranga": 1503705, - "Ituporanga": 4208500, - "Iturama": 3134400, - "Itutinga": 3134509, - "Ituverava": 3524105, - "It\u00e1": 4208005, - "It\u00e1polis": 3522703, - "Iui\u00fa": 2917334, - "Ivaipor\u00e3": 4111506, - "Ivatuba": 4111605, - "Ivat\u00e9": 4111555, - "Iva\u00ed": 4111407, - "Ivinhema": 5004700, - "Ivol\u00e2ndia": 5211602, - "Ivor\u00e1": 4310751, - "Ivoti": 4310801, - "I\u00e7ara": 4207007, - "I\u00fana": 3203007, - "Jaboat\u00e3o dos Guararapes": 2607901, - "Jaborandi": 2917359, - "Jabor\u00e1": 4208609, - "Jaboti": 4111704, - "Jaboticaba": 4310850, - "Jaboticabal": 3524303, - "Jaboticatubas": 3134608, - "Jacaraci": 2917409, - "Jacara\u00fa": 2507309, - "Jacareacanga": 1503754, - "Jacarezinho": 4111803, - "Jacare\u00ed": 3524402, - "Jacar\u00e9 dos Homens": 2703403, - "Jaci": 3524501, - "Jaciara": 5104807, - "Jacinto": 3134707, - "Jacinto Machado": 4208708, - "Jacobina": 2917508, - "Jacobina do Piau\u00ed": 2205151, - "Jacuizinho": 4310876, - "Jacund\u00e1": 1503804, - "Jacupiranga": 3524600, - "Jacutinga": 4310900, - "Jacu\u00ed": 3134806, - "Jacu\u00edpe": 2703502, - "Jaguapit\u00e3": 4111902, - "Jaguaquara": 2917607, - "Jaguarari": 2917706, - "Jaguara\u00e7u": 3135001, - "Jaguaretama": 2306702, - "Jaguari": 4311106, - "Jaguaria\u00edva": 4112009, - "Jaguaribara": 2306801, - "Jaguaribe": 2306900, - "Jaguaripe": 2917805, - "Jaguari\u00fana": 3524709, - "Jaguaruana": 2307007, - "Jaguaruna": 4208807, - "Jaguar\u00e3o": 4311007, - "Jaguar\u00e9": 3203056, - "Jaic\u00f3s": 2205201, - "Jales": 3524808, - "Jambeiro": 3524907, - "Jampruca": 3135076, - "Jana\u00faba": 3135100, - "Jandaia": 5211701, - "Jandaia do Sul": 4112108, - "Janda\u00edra": 2917904, - "Jandira": 3525003, - "Jandu\u00eds": 2405207, - "Jangada": 5104906, - "Jani\u00f3polis": 4112207, - "Janu\u00e1ria": 3135209, - "Janu\u00e1rio Cicco": 2405306, - "Japaratinga": 2703601, - "Japaratuba": 2803302, - "Japara\u00edba": 3135308, - "Japeri": 3302270, - "Japi": 2405405, - "Japira": 4112306, - "Japoat\u00e3": 2803401, - "Japonvar": 3135357, - "Japor\u00e3": 5004809, - "Japur\u00e1": 4112405, - "Jaqueira": 2607950, - "Jaquirana": 4311122, - "Jaraguari": 5004908, - "Jaragu\u00e1": 5211800, - "Jaragu\u00e1 do Sul": 4208906, - "Jaramataia": 2703700, - "Jardim": 5005004, - "Jardim Alegre": 4112504, - "Jardim Olinda": 4112603, - "Jardim de Angicos": 2405504, - "Jardim de Piranhas": 2405603, - "Jardim do Mulato": 2205250, - "Jardim do Serid\u00f3": 2405702, - "Jardin\u00f3polis": 4208955, - "Jari": 4311130, - "Jarinu": 3525201, - "Jaru": 1100114, - "Jataizinho": 4112702, - "Jata\u00ed": 5211909, - "Jata\u00faba": 2608008, - "Jate\u00ed": 5005103, - "Jati": 2307205, - "Jatob\u00e1": 2105450, - "Jatob\u00e1 do Piau\u00ed": 2205276, - "Jaupaci": 5212006, - "Jauru": 5105002, - "Ja\u00e7an\u00e3": 2405009, - "Ja\u00edba": 3135050, - "Ja\u00fa": 3525300, - "Ja\u00fa do Tocantins": 1711506, - "Jeceaba": 3135407, - "Jenipapo de Minas": 3135456, - "Jenipapo dos Vieiras": 2105476, - "Jequeri": 3135506, - "Jequita\u00ed": 3135605, - "Jequitib\u00e1": 3135704, - "Jequitinhonha": 3135803, - "Jequi\u00e1 da Praia": 2703759, - "Jequi\u00e9": 2918001, - "Jeremoabo": 2918100, - "Jeric\u00f3": 2507408, - "Jeriquara": 3525409, - "Jerumenha": 2205300, - "Jer\u00f4nimo Monteiro": 3203106, - "Jesu\u00e2nia": 3135902, - "Jesu\u00edtas": 4112751, - "Jes\u00fapolis": 5212055, - "Ji-Paran\u00e1": 1100122, - "Jijoca de Jericoacoara": 2307254, - "Jiquiri\u00e7\u00e1": 2918209, - "Jita\u00fana": 2918308, - "Joan\u00e9sia": 3136108, - "Joan\u00f3polis": 3525508, - "Joaquim Fel\u00edcio": 3136405, - "Joaquim Gomes": 2703809, - "Joaquim Nabuco": 2608206, - "Joaquim Pires": 2205409, - "Joaquim T\u00e1vora": 4112801, - "Joa\u00e7aba": 4209003, - "Joa\u00edma": 3136009, - "Joca Claudino": 2513653, - "Joca Marques": 2205458, - "Joinville": 4209102, - "Jord\u00e2nia": 3136504, - "Jord\u00e3o": 1200328, - "Josel\u00e2ndia": 2105609, - "Josen\u00f3polis": 3136579, - "Jos\u00e9 Boiteux": 4209151, - "Jos\u00e9 Bonif\u00e1cio": 3525706, - "Jos\u00e9 Gon\u00e7alves de Minas": 3136520, - "Jos\u00e9 Raydan": 3136553, - "Jos\u00e9 da Penha": 2406007, - "Jos\u00e9 de Freitas": 2205508, - "Jovi\u00e2nia": 5212105, - "Jo\u00e3o Alfredo": 2608107, - "Jo\u00e3o Costa": 2205359, - "Jo\u00e3o C\u00e2mara": 2405801, - "Jo\u00e3o Dias": 2405900, - "Jo\u00e3o Dourado": 2918357, - "Jo\u00e3o Lisboa": 2105500, - "Jo\u00e3o Monlevade": 3136207, - "Jo\u00e3o Neiva": 3203130, - "Jo\u00e3o Pessoa": 2507507, - "Jo\u00e3o Pinheiro": 3136306, - "Jo\u00e3o Ramalho": 3525607, - "Juara": 5105101, - "Juarez T\u00e1vora": 2507606, - "Juarina": 1711803, - "Juatuba": 3136652, - "Juazeirinho": 2507705, - "Juazeiro": 2918407, - "Juazeiro do Norte": 2307304, - "Juazeiro do Piau\u00ed": 2205516, - "Jucati": 2608255, - "Jucurutu": 2406106, - "Jucuru\u00e7u": 2918456, - "Juc\u00e1s": 2307403, - "Juiz de Fora": 3136702, - "Jumirim": 3525854, - "Junco do Maranh\u00e3o": 2105658, - "Junco do Serid\u00f3": 2507804, - "Jundia\u00ed": 3525904, - "Jundia\u00ed do Sul": 4112900, - "Jundi\u00e1": 2703908, - "Junqueiro": 2704005, - "Junqueir\u00f3polis": 3526001, - "Jupi": 2608305, - "Jupi\u00e1": 4209177, - "Juquitiba": 3526209, - "Juqui\u00e1": 3526100, - "Juramento": 3136801, - "Juranda": 4112959, - "Jurema": 2205532, - "Juripiranga": 2507903, - "Juru": 2508000, - "Juruaia": 3136900, - "Juruena": 5105176, - "Juruti": 1503903, - "Juru\u00e1": 1302207, - "Juscimeira": 5105200, - "Jussara": 5212204, - "Jussari": 2918555, - "Jussiape": 2918605, - "Juta\u00ed": 1302306, - "Juti": 5005152, - "Juven\u00edlia": 3136959, - "Ju\u00edna": 5105150, - "J\u00f3ia": 4311155, - "J\u00falio Borges": 2205524, - "J\u00falio Mesquita": 3525805, - "J\u00falio de Castilhos": 4311205, - "Kalor\u00e9": 4113106, - "Lacerd\u00f3polis": 4209201, - "Ladainha": 3137007, - "Lad\u00e1rio": 5005202, - "Lafaiete Coutinho": 2918704, - "Lagamar": 3137106, - "Lagarto": 2803500, - "Lages": 4209300, - "Lago Verde": 2105906, - "Lago da Pedra": 2105708, - "Lago do Junco": 2105807, - "Lago dos Rodrigues": 2105948, - "Lagoa": 2508109, - "Lagoa Alegre": 2205557, - "Lagoa Bonita do Sul": 4311239, - "Lagoa Dourada": 3137403, - "Lagoa Formosa": 3137502, - "Lagoa Grande": 2608750, - "Lagoa Grande do Maranh\u00e3o": 2105963, - "Lagoa Nova": 2406502, - "Lagoa Real": 2918753, - "Lagoa Salgada": 2406601, - "Lagoa Santa": 3137601, - "Lagoa Seca": 2508307, - "Lagoa Vermelha": 4311304, - "Lagoa d'Anta": 2406205, - "Lagoa da Canoa": 2704104, - "Lagoa da Confus\u00e3o": 1711902, - "Lagoa da Prata": 3137205, - "Lagoa de Dentro": 2508208, - "Lagoa de Itaenga": 2608503, - "Lagoa de Pedras": 2406304, - "Lagoa de S\u00e3o Francisco": 2205573, - "Lagoa de Velhos": 2406403, - "Lagoa do Barro do Piau\u00ed": 2205565, - "Lagoa do Carro": 2608453, - "Lagoa do Mato": 2105922, - "Lagoa do Ouro": 2608602, - "Lagoa do Piau\u00ed": 2205581, - "Lagoa do S\u00edtio": 2205599, - "Lagoa do Tocantins": 1711951, - "Lagoa dos Gatos": 2608701, - "Lagoa dos Patos": 3137304, - "Lagoa dos Tr\u00eas Cantos": 4311270, - "Lagoinha": 3526308, - "Lagoinha do Piau\u00ed": 2205540, - "Lago\u00e3o": 4311254, - "Laguna": 4209409, - "Laguna Carap\u00e3": 5005251, - "Laje": 2918803, - "Laje do Muria\u00e9": 3302304, - "Lajeado": 4311403, - "Lajeado Grande": 4209458, - "Lajeado Novo": 2105989, - "Lajeado do Bugre": 4311429, - "Lajedinho": 2919009, - "Lajedo": 2608800, - "Lajedo do Tabocal": 2919058, - "Lajed\u00e3o": 2918902, - "Lajes": 2406700, - "Lajes Pintadas": 2406809, - "Lajinha": 3137700, - "Lamar\u00e3o": 2919108, - "Lambari": 3137809, - "Lambari D'Oeste": 5105234, - "Lamim": 3137908, - "Landri Sales": 2205607, - "Lapa": 4113205, - "Lap\u00e3o": 2919157, - "Laranja da Terra": 3203163, - "Laranjal": 4113254, - "Laranjal Paulista": 3526407, - "Laranjal do Jari": 1600279, - "Laranjeiras": 2803609, - "Laranjeiras do Sul": 4113304, - "Lassance": 3138104, - "Lastro": 2508406, - "Laurentino": 4209508, - "Lauro Muller": 4209607, - "Lauro de Freitas": 2919207, - "Lavandeira": 1712157, - "Lavras": 3138203, - "Lavras da Mangabeira": 2307502, - "Lavras do Sul": 4311502, - "Lavrinhas": 3526605, - "Lav\u00ednia": 3526506, - "Leandro Ferreira": 3138302, - "Lebon R\u00e9gis": 4209706, - "Leme": 3526704, - "Leme do Prado": 3138351, - "Len\u00e7\u00f3is": 2919306, - "Len\u00e7\u00f3is Paulista": 3526803, - "Leoberto Leal": 4209805, - "Leopoldina": 3138401, - "Leopoldo de Bulh\u00f5es": 5212303, - "Le\u00f3polis": 4113403, - "Liberato Salzano": 4311601, - "Liberdade": 3138500, - "Lic\u00ednio de Almeida": 2919405, - "Lidian\u00f3polis": 4113429, - "Lima Campos": 2106003, - "Lima Duarte": 3138609, - "Limeira": 3526902, - "Limeira do Oeste": 3138625, - "Limoeiro": 2608909, - "Limoeiro de Anadia": 2704203, - "Limoeiro do Ajuru": 1504000, - "Limoeiro do Norte": 2307601, - "Lindoeste": 4113452, - "Lindolfo Collor": 4311627, - "Lind\u00f3ia": 3527009, - "Lind\u00f3ia do Sul": 4209854, - "Linha Nova": 4311643, - "Linhares": 3203205, - "Lins": 3527108, - "Livramento": 2508505, - "Livramento de Nossa Senhora": 2919504, - "Lizarda": 1712405, - "Loanda": 4113502, - "Lobato": 4113601, - "Logradouro": 2508554, - "Londrina": 4113700, - "Lontra": 3138658, - "Lontras": 4209904, - "Lorena": 3527207, - "Loreto": 2106102, - "Lourdes": 3527256, - "Louveira": 3527306, - "Lucas do Rio Verde": 5105259, - "Lucena": 2508604, - "Lucian\u00f3polis": 3527504, - "Luciara": 5105309, - "Lucr\u00e9cia": 2406908, - "Luc\u00e9lia": 3527405, - "Luisburgo": 3138674, - "Luisl\u00e2ndia": 3138682, - "Luiz Alves": 4210001, - "Luiziana": 4113734, - "Luizi\u00e2nia": 3527702, - "Lumin\u00e1rias": 3138708, - "Lunardelli": 4113759, - "Lupion\u00f3polis": 4113809, - "Lup\u00e9rcio": 3527801, - "Lut\u00e9cia": 3527900, - "Luz": 3138807, - "Luzerna": 4210035, - "Luzil\u00e2ndia": 2205805, - "Luzin\u00f3polis": 1712454, - "Luzi\u00e2nia": 5212501, - "Lu\u00eds Ant\u00f4nio": 3527603, - "Lu\u00eds Correia": 2205706, - "Lu\u00eds Domingues": 2106201, - "Lu\u00eds Eduardo Magalh\u00e3es": 2919553, - "Lu\u00eds Gomes": 2407005, - "L\u00e1brea": 1302405, - "Macajuba": 2919603, - "Macambira": 2803708, - "Macaparana": 2609006, - "Macap\u00e1": 1600303, - "Macarani": 2919702, - "Macatuba": 3528007, - "Macau": 2407203, - "Macaubal": 3528106, - "Maca\u00e9": 3302403, - "Maca\u00edba": 2407104, - "Maca\u00fabas": 2919801, - "Maced\u00f4nia": 3528205, - "Macei\u00f3": 2704302, - "Machacalis": 3138906, - "Machadinho": 4311700, - "Machadinho D'Oeste": 1100130, - "Machado": 3139003, - "Machados": 2609105, - "Macieira": 4210050, - "Macuco": 3302452, - "Macurur\u00e9": 2919900, - "Madalena": 2307635, - "Madeiro": 2205854, - "Madre de Deus": 2919926, - "Madre de Deus de Minas": 3139102, - "Maetinga": 2919959, - "Mafra": 4210100, - "Magalh\u00e3es Barata": 1504109, - "Magalh\u00e3es de Almeida": 2106300, - "Magda": 3528304, - "Mag\u00e9": 3302502, - "Maiquinique": 2920007, - "Mairi": 2920106, - "Mairinque": 3528403, - "Mairipor\u00e3": 3528502, - "Mairipotaba": 5212600, - "Major Gercino": 4210209, - "Major Isidoro": 2704401, - "Major Sales": 2407252, - "Major Vieira": 4210308, - "Malacacheta": 3139201, - "Malhada": 2920205, - "Malhada de Pedras": 2920304, - "Malhada dos Bois": 2803807, - "Malhador": 2803906, - "Mallet": 4113908, - "Malta": 2508802, - "Mamanguape": 2508901, - "Mamba\u00ed": 5212709, - "Mambor\u00ea": 4114005, - "Mamonas": 3139250, - "Mampituba": 4311734, - "Manacapuru": 1302504, - "Manaquiri": 1302553, - "Manari": 2609154, - "Manaus": 1302603, - "Mana\u00edra": 2509008, - "Mandaguari": 4114203, - "Mandagua\u00e7u": 4114104, - "Mandirituba": 4114302, - "Manduri": 3528601, - "Manfrin\u00f3polis": 4114351, - "Manga": 3139300, - "Mangaratiba": 3302601, - "Mangueirinha": 4114401, - "Manhua\u00e7u": 3139409, - "Manhumirim": 3139508, - "Manicor\u00e9": 1302702, - "Manoel Em\u00eddio": 2205904, - "Manoel Ribas": 4114500, - "Manoel Urbano": 1200344, - "Manoel Viana": 4311759, - "Manoel Vitorino": 2920403, - "Mansid\u00e3o": 2920452, - "Mantena": 3139607, - "Manten\u00f3polis": 3203304, - "Maquin\u00e9": 4311775, - "Mar Vermelho": 2704906, - "Mar de Espanha": 3139805, - "Mara Rosa": 5212808, - "Marab\u00e1": 1504208, - "Marab\u00e1 Paulista": 3528700, - "Maracaju": 5005400, - "Maracaj\u00e1": 4210407, - "Maracana\u00fa": 2307650, - "Maracan\u00e3": 1504307, - "Maraca\u00e7um\u00e9": 2106326, - "Maraca\u00ed": 3528809, - "Marac\u00e1s": 2920502, - "Maragogi": 2704500, - "Maragogipe": 2920601, - "Maraial": 2609204, - "Maraj\u00e1 do Sena": 2106359, - "Maranguape": 2307700, - "Maranh\u00e3ozinho": 2106375, - "Marapanim": 1504406, - "Marapoama": 3528858, - "Marata\u00edzes": 3203320, - "Marat\u00e1": 4311791, - "Marau": 4311809, - "Maravilha": 2704609, - "Maravilhas": 3139706, - "Mara\u00e3": 1302801, - "Mara\u00fa": 2920700, - "Marca\u00e7\u00e3o": 2509057, - "Marcelino Ramos": 4311908, - "Marcelino Vieira": 2407302, - "Marcel\u00e2ndia": 5105580, - "Marcion\u00edlio Souza": 2920809, - "Marco": 2307809, - "Marcol\u00e2ndia": 2205953, - "Marcos Parente": 2206001, - "Marechal C\u00e2ndido Rondon": 4114609, - "Marechal Deodoro": 2704708, - "Marechal Floriano": 3203346, - "Marechal Thaumaturgo": 1200351, - "Marema": 4210555, - "Mari": 2509107, - "Maria Helena": 4114708, - "Maria da F\u00e9": 3139904, - "Marialva": 4114807, - "Mariana": 3140001, - "Mariana Pimentel": 4311981, - "Mariano Moro": 4312005, - "Marian\u00f3polis do Tocantins": 1712504, - "Maribondo": 2704807, - "Maric\u00e1": 3302700, - "Marilac": 3140100, - "Marilena": 4115002, - "Mariluz": 4115101, - "Maril\u00e2ndia": 3203353, - "Maril\u00e2ndia do Sul": 4114906, - "Maring\u00e1": 4115200, - "Marin\u00f3polis": 3529104, - "Marip\u00e1": 4115358, - "Marip\u00e1 de Minas": 3140209, - "Marituba": 1504422, - "Mariz\u00f3polis": 2509156, - "Mari\u00e1polis": 3528908, - "Mari\u00f3polis": 4115309, - "Marli\u00e9ria": 3140308, - "Marmeleiro": 4115408, - "Marmel\u00f3polis": 3140407, - "Marques de Souza": 4312054, - "Marquinho": 4115457, - "Martinho Campos": 3140506, - "Martins": 2407401, - "Martins Soares": 3140530, - "Martin\u00f3pole": 2307908, - "Martin\u00f3polis": 3529203, - "Maruim": 2804003, - "Marumbi": 4115507, - "Marzag\u00e3o": 5212907, - "Mar\u00edlia": 3529005, - "Mascote": 2920908, - "Massap\u00ea": 2308005, - "Massap\u00ea do Piau\u00ed": 2206050, - "Massaranduba": 2509206, - "Mata": 4312104, - "Mata Grande": 2705002, - "Mata Roma": 2106409, - "Mata Verde": 3140555, - "Mata de S\u00e3o Jo\u00e3o": 2921005, - "Mataraca": 2509305, - "Mateiros": 1712702, - "Matel\u00e2ndia": 4115606, - "Materl\u00e2ndia": 3140605, - "Mateus Leme": 3140704, - "Mathias Lobato": 3171501, - "Matias Barbosa": 3140803, - "Matias Cardoso": 3140852, - "Matias Ol\u00edmpio": 2206100, - "Matina": 2921054, - "Matinha": 2106508, - "Matinhas": 2509339, - "Matinhos": 4115705, - "Matip\u00f3": 3140902, - "Mato Castelhano": 4312138, - "Mato Grosso": 2509370, - "Mato Leit\u00e3o": 4312153, - "Mato Queimado": 4312179, - "Mato Rico": 4115739, - "Mato Verde": 3141009, - "Matos Costa": 4210704, - "Matozinhos": 3141108, - "Matrinch\u00e3": 5212956, - "Matriz de Camaragibe": 2705101, - "Matup\u00e1": 5105606, - "Matur\u00e9ia": 2509396, - "Matutina": 3141207, - "Mat\u00e3o": 3529302, - "Mat\u00f5es": 2106607, - "Mat\u00f5es do Norte": 2106631, - "Mauril\u00e2ndia": 5213004, - "Mauril\u00e2ndia do Tocantins": 1712801, - "Mauriti": 2308104, - "Mau\u00e1": 3529401, - "Mau\u00e1 da Serra": 4115754, - "Mau\u00e9s": 1302900, - "Maxaranguape": 2407500, - "Maximiliano de Almeida": 4312203, - "Mazag\u00e3o": 1600402, - "Ma\u00e7ambar\u00e1": 4311718, - "Medeiros": 3141306, - "Medeiros Neto": 2921104, - "Medianeira": 4115804, - "Medicil\u00e2ndia": 1504455, - "Medina": 3141405, - "Meleiro": 4210803, - "Melga\u00e7o": 1504505, - "Mendes": 3302809, - "Mendes Pimentel": 3141504, - "Mendon\u00e7a": 3529500, - "Mercedes": 4115853, - "Merc\u00eas": 3141603, - "Meridiano": 3529609, - "Meruoca": 2308203, - "Mesquita": 3141702, - "Messias": 2705200, - "Messias Targino": 2407609, - "Mes\u00f3polis": 3529658, - "Miguel Alves": 2206209, - "Miguel Calmon": 2921203, - "Miguel Le\u00e3o": 2206308, - "Miguel Pereira": 3302908, - "Miguel\u00f3polis": 3529708, - "Milagres": 2308302, - "Milagres do Maranh\u00e3o": 2106672, - "Milh\u00e3": 2308351, - "Milton Brand\u00e3o": 2206357, - "Mimoso de Goi\u00e1s": 5213053, - "Mimoso do Sul": 3203403, - "Minador do Negr\u00e3o": 2705309, - "Minas Novas": 3141801, - "Minas do Le\u00e3o": 4312252, - "Mina\u00e7u": 5213087, - "Minduri": 3141900, - "Mineiros": 5213103, - "Mineiros do Tiet\u00ea": 3529807, - "Ministro Andreazza": 1101203, - "Mira Estrela": 3530003, - "Mirabela": 3142007, - "Miracatu": 3529906, - "Miracema": 3303005, - "Miracema do Tocantins": 1713205, - "Mirador": 2106706, - "Miradouro": 3142106, - "Miragua\u00ed": 4312302, - "Miranda": 5005608, - "Miranda do Norte": 2106755, - "Mirandiba": 2609303, - "Mirand\u00f3polis": 3530102, - "Mirangaba": 2921401, - "Miranorte": 1713304, - "Mirante": 2921450, - "Mirante da Serra": 1101302, - "Mirante do Paranapanema": 3530201, - "Miraselva": 4116000, - "Mirassol": 3530300, - "Mirassol d'Oeste": 5105622, - "Mirassol\u00e2ndia": 3530409, - "Mirav\u00e2nia": 3142254, - "Mira\u00ed": 3142205, - "Mira\u00edma": 2308377, - "Mirim Doce": 4210852, - "Mirinzal": 2106805, - "Missal": 4116059, - "Miss\u00e3o Velha": 2308401, - "Mocajuba": 1504604, - "Mococa": 3530508, - "Modelo": 4210902, - "Moeda": 3142304, - "Moema": 3142403, - "Mogeiro": 2509404, - "Mogi Gua\u00e7u": 3530706, - "Mogi Mirim": 3530805, - "Mogi das Cruzes": 3530607, - "Moipor\u00e1": 5213400, - "Moita Bonita": 2804102, - "Moju": 1504703, - "Moju\u00ed dos Campos": 1504752, - "Momba\u00e7a": 2308500, - "Mombuca": 3530904, - "Monda\u00ed": 4211009, - "Mongagu\u00e1": 3531100, - "Monjolos": 3142502, - "Monsenhor Gil": 2206407, - "Monsenhor Hip\u00f3lito": 2206506, - "Monsenhor Paulo": 3142601, - "Monsenhor Tabosa": 2308609, - "Montadas": 2509503, - "Montalv\u00e2nia": 3142700, - "Montanha": 3203502, - "Montanhas": 2407708, - "Montauri": 4312351, - "Monte Alegre": 1504802, - "Monte Alegre de Goi\u00e1s": 5213509, - "Monte Alegre de Minas": 3142809, - "Monte Alegre de Sergipe": 2804201, - "Monte Alegre do Piau\u00ed": 2206605, - "Monte Alegre do Sul": 3531209, - "Monte Alegre dos Campos": 4312377, - "Monte Alto": 3531308, - "Monte Apraz\u00edvel": 3531407, - "Monte Azul": 3142908, - "Monte Azul Paulista": 3531506, - "Monte Belo": 3143005, - "Monte Belo do Sul": 4312385, - "Monte Carlo": 4211058, - "Monte Carmelo": 3143104, - "Monte Castelo": 4211108, - "Monte Formoso": 3143153, - "Monte Horebe": 2509602, - "Monte Mor": 3531803, - "Monte Negro": 1101401, - "Monte Santo": 2921500, - "Monte Santo de Minas": 3143203, - "Monte Santo do Tocantins": 1713700, - "Monte Si\u00e3o": 3143401, - "Monte das Gameleiras": 2407906, - "Monte do Carmo": 1713601, - "Monteiro": 2509701, - "Monteiro Lobato": 3531704, - "Monteir\u00f3polis": 2705408, - "Montenegro": 4312401, - "Montes Altos": 2107001, - "Montes Claros": 3143302, - "Montes Claros de Goi\u00e1s": 5213707, - "Montezuma": 3143450, - "Montividiu": 5213756, - "Montividiu do Norte": 5213772, - "Mon\u00e7\u00e3o": 2106904, - "Mon\u00e7\u00f5es": 3531001, - "Morada Nova": 2308708, - "Morada Nova de Minas": 3143500, - "Mora\u00fajo": 2308807, - "Moreil\u00e2ndia": 2614303, - "Moreira Sales": 4116109, - "Moreno": 2609402, - "Morma\u00e7o": 4312427, - "Morpar\u00e1": 2921609, - "Morretes": 4116208, - "Morrinhos": 5213806, - "Morrinhos do Sul": 4312443, - "Morro Agudo": 3531902, - "Morro Agudo de Goi\u00e1s": 5213855, - "Morro Cabe\u00e7a no Tempo": 2206654, - "Morro Grande": 4211256, - "Morro Redondo": 4312450, - "Morro Reuter": 4312476, - "Morro da Fuma\u00e7a": 4211207, - "Morro da Gar\u00e7a": 3143609, - "Morro do Chap\u00e9u": 2921708, - "Morro do Chap\u00e9u do Piau\u00ed": 2206670, - "Morro do Pilar": 3143708, - "Morros": 2107100, - "Mortugaba": 2921807, - "Morungaba": 3532009, - "Mossor\u00f3": 2408003, - "Moss\u00e2medes": 5213905, - "Mostardas": 4312500, - "Motuca": 3532058, - "Mozarl\u00e2ndia": 5214002, - "Muan\u00e1": 1504901, - "Mucaja\u00ed": 1400308, - "Mucambo": 2309003, - "Mucug\u00ea": 2921906, - "Mucuri": 2922003, - "Mucurici": 3203601, - "Muitos Cap\u00f5es": 4312617, - "Muliterno": 4312625, - "Mulungu": 2309102, - "Mulungu do Morro": 2922052, - "Mundo Novo": 2922102, - "Munhoz": 3143807, - "Munhoz de Melo": 4116307, - "Muniz Ferreira": 2922201, - "Muniz Freire": 3203700, - "Muqui": 3203809, - "Muqu\u00e9m de S\u00e3o Francisco": 2922250, - "Muria\u00e9": 3143906, - "Muribeca": 2804300, - "Murici": 2705507, - "Murici dos Portelas": 2206696, - "Muricil\u00e2ndia": 1713957, - "Muritiba": 2922300, - "Murutinga do Sul": 3532108, - "Mutum": 3144003, - "Mutun\u00f3polis": 5214101, - "Mutu\u00edpe": 2922409, - "Muzambinho": 3144102, - "Mu\u00e7um": 4312609, - "M\u00e1rio Campos": 3140159, - "M\u00e2ncio Lima": 1200336, - "M\u00e3e d'\u00c1gua": 2508703, - "M\u00e3e do Rio": 1504059, - "Nacip Raydan": 3144201, - "Nantes": 3532157, - "Nanuque": 3144300, - "Naque": 3144359, - "Narandiba": 3532207, - "Natal": 2408102, - "Natal\u00e2ndia": 3144375, - "Natividade": 3303104, - "Natividade da Serra": 3532306, - "Natuba": 2509909, - "Nat\u00e9rcia": 3144409, - "Navegantes": 4211306, - "Navira\u00ed": 5005707, - "Nazareno": 3144508, - "Nazarezinho": 2510006, - "Nazar\u00e9": 2922508, - "Nazar\u00e9 Paulista": 3532405, - "Nazar\u00e9 da Mata": 2609501, - "Nazar\u00e9 do Piau\u00ed": 2206704, - "Naz\u00e1ria": 2206720, - "Naz\u00e1rio": 5214408, - "Nepomuceno": 3144607, - "Ner\u00f3polis": 5214507, - "Neves Paulista": 3532504, - "Ne\u00f3polis": 2804409, - "Nhamund\u00e1": 1303007, - "Nhandeara": 3532603, - "Nicolau Vergueiro": 4312674, - "Nilo Pe\u00e7anha": 2922607, - "Nil\u00f3polis": 3303203, - "Nina Rodrigues": 2107209, - "Ninheira": 3144656, - "Nioaque": 5005806, - "Nipo\u00e3": 3532702, - "Niquel\u00e2ndia": 5214606, - "Niter\u00f3i": 3303302, - "Nobres": 5105903, - "Nonoai": 4312708, - "Nordestina": 2922656, - "Normandia": 1400407, - "Nortel\u00e2ndia": 5106000, - "Nossa Senhora Aparecida": 2804458, - "Nossa Senhora da Gl\u00f3ria": 2804508, - "Nossa Senhora das Dores": 2804607, - "Nossa Senhora das Gra\u00e7as": 4116406, - "Nossa Senhora de Lourdes": 2804706, - "Nossa Senhora de Nazar\u00e9": 2206753, - "Nossa Senhora do Livramento": 5106109, - "Nossa Senhora do Socorro": 2804805, - "Nossa Senhora dos Rem\u00e9dios": 2206803, - "Nova Alian\u00e7a": 3532801, - "Nova Alian\u00e7a do Iva\u00ed": 4116505, - "Nova Alvorada": 4312757, - "Nova Alvorada do Sul": 5006002, - "Nova Am\u00e9rica": 5214705, - "Nova Am\u00e9rica da Colina": 4116604, - "Nova Andradina": 5006200, - "Nova Ara\u00e7\u00e1": 4312807, - "Nova Aurora": 5214804, - "Nova Bandeirantes": 5106158, - "Nova Bassano": 4312906, - "Nova Bel\u00e9m": 3144672, - "Nova Boa Vista": 4312955, - "Nova Brasil\u00e2ndia": 5106208, - "Nova Brasil\u00e2ndia D'Oeste": 1100148, - "Nova Br\u00e9scia": 4313003, - "Nova Campina": 3532827, - "Nova Cana\u00e3": 2922706, - "Nova Cana\u00e3 Paulista": 3532843, - "Nova Cana\u00e3 do Norte": 5106216, - "Nova Candel\u00e1ria": 4313011, - "Nova Cantu": 4116802, - "Nova Castilho": 3532868, - "Nova Colinas": 2107258, - "Nova Crix\u00e1s": 5214838, - "Nova Cruz": 2408300, - "Nova Era": 3144706, - "Nova Erechim": 4211405, - "Nova Esperan\u00e7a": 4116901, - "Nova Esperan\u00e7a do Piri\u00e1": 1504950, - "Nova Esperan\u00e7a do Sudoeste": 4116950, - "Nova Esperan\u00e7a do Sul": 4313037, - "Nova Europa": 3532900, - "Nova Floresta": 2510105, - "Nova Friburgo": 3303401, - "Nova F\u00e1tima": 2922730, - "Nova Gl\u00f3ria": 5214861, - "Nova Granada": 3533007, - "Nova Guarita": 5108808, - "Nova Guataporanga": 3533106, - "Nova Hartz": 4313060, - "Nova Ibi\u00e1": 2922755, - "Nova Igua\u00e7u": 3303500, - "Nova Igua\u00e7u de Goi\u00e1s": 5214879, - "Nova Independ\u00eancia": 3533205, - "Nova Iorque": 2107308, - "Nova Ipixuna": 1504976, - "Nova Itaberaba": 4211454, - "Nova Itarana": 2922805, - "Nova Lacerda": 5106182, - "Nova Laranjeiras": 4117057, - "Nova Lima": 3144805, - "Nova Londrina": 4117107, - "Nova Luzit\u00e2nia": 3533304, - "Nova Mamor\u00e9": 1100338, - "Nova Maril\u00e2ndia": 5108857, - "Nova Maring\u00e1": 5108907, - "Nova Monte Verde": 5108956, - "Nova Mutum": 5106224, - "Nova M\u00f3dica": 3144904, - "Nova Nazar\u00e9": 5106174, - "Nova Odessa": 3533403, - "Nova Olinda": 2510204, - "Nova Olinda do Maranh\u00e3o": 2107357, - "Nova Olinda do Norte": 1303106, - "Nova Ol\u00edmpia": 5106232, - "Nova Palma": 4313102, - "Nova Palmeira": 2510303, - "Nova Petr\u00f3polis": 4313201, - "Nova Ponte": 3145000, - "Nova Porteirinha": 3145059, - "Nova Prata": 4313300, - "Nova Prata do Igua\u00e7u": 4117255, - "Nova P\u00e1dua": 4313086, - "Nova Ramada": 4313334, - "Nova Reden\u00e7\u00e3o": 2922854, - "Nova Resende": 3145109, - "Nova Roma": 5214903, - "Nova Roma do Sul": 4313359, - "Nova Rosal\u00e2ndia": 1715002, - "Nova Russas": 2309300, - "Nova Santa B\u00e1rbara": 4117214, - "Nova Santa Helena": 5106190, - "Nova Santa Rita": 2207959, - "Nova Santa Rosa": 4117222, - "Nova Serrana": 3145208, - "Nova Soure": 2922904, - "Nova Tebas": 4117271, - "Nova Timboteua": 1505007, - "Nova Trento": 4211504, - "Nova Ubirat\u00e3": 5106240, - "Nova Uni\u00e3o": 1101435, - "Nova Veneza": 5215009, - "Nova Ven\u00e9cia": 3203908, - "Nova Vi\u00e7osa": 2923001, - "Nova Xavantina": 5106257, - "Novais": 3533254, - "Novo Acordo": 1715101, - "Novo Air\u00e3o": 1303205, - "Novo Alegre": 1715150, - "Novo Aripuan\u00e3": 1303304, - "Novo Barreiro": 4313490, - "Novo Brasil": 5215207, - "Novo Cabrais": 4313391, - "Novo Cruzeiro": 3145307, - "Novo Gama": 5215231, - "Novo Hamburgo": 4313409, - "Novo Horizonte": 2923035, - "Novo Horizonte do Norte": 5106273, - "Novo Horizonte do Oeste": 1100502, - "Novo Horizonte do Sul": 5006259, - "Novo Itacolomi": 4117297, - "Novo Jardim": 1715259, - "Novo Lino": 2705606, - "Novo Machado": 4313425, - "Novo Mundo": 5106265, - "Novo Oriente": 2309409, - "Novo Oriente de Minas": 3145356, - "Novo Oriente do Piau\u00ed": 2206902, - "Novo Planalto": 5215256, - "Novo Progresso": 1505031, - "Novo Repartimento": 1505064, - "Novo Santo Ant\u00f4nio": 2206951, - "Novo S\u00e3o Joaquim": 5106281, - "Novo Tiradentes": 4313441, - "Novo Triunfo": 2923050, - "Novo Xingu": 4313466, - "Novorizonte": 3145372, - "Nuporanga": 3533601, - "N\u00e3o-Me-Toque": 4312658, - "N\u00edsia Floresta": 2408201, - "Ocara": 2309458, - "Ocau\u00e7u": 3533700, - "Oeiras": 2207009, - "Oeiras do Par\u00e1": 1505205, - "Oiapoque": 1600501, - "Olaria": 3145406, - "Olho D'\u00c1gua do Piau\u00ed": 2207108, - "Olho d'\u00c1gua": 2510402, - "Olho d'\u00c1gua Grande": 2705903, - "Olho d'\u00c1gua das Cunh\u00e3s": 2107407, - "Olho d'\u00c1gua das Flores": 2705705, - "Olho d'\u00c1gua do Casado": 2705804, - "Olho-d'\u00c1gua do Borges": 2408409, - "Olhos-d'\u00c1gua": 3145455, - "Olinda": 2609600, - "Olinda Nova do Maranh\u00e3o": 2107456, - "Olindina": 2923100, - "Olivedos": 2510501, - "Oliveira": 3145604, - "Oliveira Fortes": 3145703, - "Oliveira de F\u00e1tima": 1715507, - "Oliveira dos Brejinhos": 2923209, - "Oliven\u00e7a": 2706000, - "Ol\u00edmpia": 3533908, - "Ol\u00edmpio Noronha": 3145505, - "Onda Verde": 3534005, - "On\u00e7a de Pitangui": 3145802, - "Orat\u00f3rios": 3145851, - "Oriente": 3534104, - "Orindi\u00fava": 3534203, - "Oriximin\u00e1": 1505304, - "Orizona": 5215306, - "Oriz\u00e2nia": 3145877, - "Orleans": 4211702, - "Orl\u00e2ndia": 3534302, - "Orob\u00f3": 2609709, - "Oroc\u00f3": 2609808, - "Ortigueira": 4117305, - "Or\u00f3s": 2309508, - "Osasco": 3534401, - "Oscar Bressane": 3534500, - "Osvaldo Cruz": 3534609, - "Os\u00f3rio": 4313508, - "Otac\u00edlio Costa": 4211751, - "Ouricuri": 2609907, - "Ouril\u00e2ndia do Norte": 1505437, - "Ourinhos": 3534708, - "Ourizona": 4117404, - "Ouri\u00e7angas": 2923308, - "Ouro": 4211801, - "Ouro Branco": 2706109, - "Ouro Fino": 3146008, - "Ouro Preto": 3146107, - "Ouro Preto do Oeste": 1100155, - "Ouro Velho": 2510600, - "Ouro Verde": 3534807, - "Ouro Verde de Goi\u00e1s": 5215405, - "Ouro Verde de Minas": 3146206, - "Ouro Verde do Oeste": 4117453, - "Ouroeste": 3534757, - "Ourol\u00e2ndia": 2923357, - "Our\u00e9m": 1505403, - "Ouvidor": 5215504, - "Pacaembu": 3534906, - "Pacajus": 2309607, - "Pacaj\u00e1": 1505486, - "Pacaraima": 1400456, - "Pacatuba": 2804904, - "Pacoti": 2309805, - "Pacuj\u00e1": 2309904, - "Padre Bernardo": 5215603, - "Padre Carvalho": 3146255, - "Padre Marcos": 2207207, - "Padre Para\u00edso": 3146305, - "Paes Landim": 2207306, - "Pai Pedro": 3146552, - "Paial": 4211876, - "Paim Filho": 4313607, - "Paineiras": 3146404, - "Painel": 4211892, - "Pains": 3146503, - "Paiva": 3146602, - "Pai\u00e7andu": 4117503, - "Paje\u00fa do Piau\u00ed": 2207355, - "Palestina": 2706208, - "Palestina de Goi\u00e1s": 5215652, - "Palestina do Par\u00e1": 1505494, - "Palhano": 2310001, - "Palho\u00e7a": 4211900, - "Palma": 3146701, - "Palma Sola": 4212007, - "Palmares": 2610004, - "Palmares Paulista": 3535101, - "Palmares do Sul": 4313656, - "Palmas": 1721000, - "Palmas de Monte Alto": 2923407, - "Palmeira": 4212056, - "Palmeira d'Oeste": 3535200, - "Palmeira das Miss\u00f5es": 4313706, - "Palmeira do Piau\u00ed": 2207405, - "Palmeira dos \u00cdndios": 2706307, - "Palmeirais": 2207504, - "Palmeirante": 1715705, - "Palmeiras": 2923506, - "Palmeiras de Goi\u00e1s": 5215702, - "Palmeiras do Tocantins": 1713809, - "Palmeirina": 2610103, - "Palmeir\u00e2ndia": 2107605, - "Palmeir\u00f3polis": 1715754, - "Palmelo": 5215801, - "Palmin\u00f3polis": 5215900, - "Palmital": 3535309, - "Palmitinho": 4313805, - "Palmitos": 4212106, - "Palm\u00e1cia": 2310100, - "Palm\u00f3polis": 3146750, - "Palotina": 4117909, - "Panambi": 4313904, - "Panam\u00e1": 5216007, - "Pancas": 3204005, - "Panelas": 2610202, - "Panorama": 3535408, - "Pantano Grande": 4313953, - "Papagaios": 3146909, - "Papanduva": 4212205, - "Paquet\u00e1": 2207553, - "Paracambi": 3303609, - "Paracatu": 3147006, - "Paracuru": 2310209, - "Paragominas": 1505502, - "Paragua\u00e7u": 3147204, - "Paragua\u00e7u Paulista": 3535507, - "Paraibano": 2107704, - "Paraibuna": 3535606, - "Paraipaba": 2310258, - "Parais\u00f3polis": 3147303, - "Parambu": 2310308, - "Paramirim": 2923605, - "Paramoti": 2310407, - "Paranacity": 4118105, - "Paranagu\u00e1": 4118204, - "Paranaiguara": 5216304, - "Paranapanema": 3535804, - "Paranapoema": 4118303, - "Paranapu\u00e3": 3535903, - "Paranatama": 2610301, - "Paranatinga": 5106307, - "Paranava\u00ed": 4118402, - "Parana\u00edba": 5006309, - "Parana\u00edta": 5106299, - "Paranhos": 5006358, - "Paran\u00e1": 2408607, - "Paran\u00e3": 1716208, - "Paraopeba": 3147402, - "Parapu\u00e3": 3536000, - "Parari": 2510659, - "Paratinga": 2923704, - "Paraty": 3303807, - "Parauapebas": 1505536, - "Parazinho": 2408805, - "Para\u00ed": 4314001, - "Para\u00edba do Sul": 3303708, - "Para\u00edso": 3535705, - "Para\u00edso das \u00c1guas": 5006275, - "Para\u00edso do Norte": 4118006, - "Para\u00edso do Sul": 4314027, - "Para\u00edso do Tocantins": 1716109, - "Para\u00fa": 2408706, - "Para\u00fana": 5216403, - "Pardinho": 3536109, - "Pareci Novo": 4314035, - "Parecis": 1101450, - "Parelhas": 2408904, - "Pariconha": 2706422, - "Parintins": 1303403, - "Paripiranga": 2923803, - "Paripueira": 2706448, - "Pariquera-A\u00e7u": 3536208, - "Parisi": 3536257, - "Parnagu\u00e1": 2207603, - "Parnamirim": 2403251, - "Parnarama": 2107803, - "Parna\u00edba": 2207702, - "Parob\u00e9": 4314050, - "Par\u00e1 de Minas": 3147105, - "Passa Quatro": 3147600, - "Passa Sete": 4314068, - "Passa Tempo": 3147709, - "Passa e Fica": 2409100, - "Passa-Vinte": 3147808, - "Passab\u00e9m": 3147501, - "Passagem": 2409209, - "Passagem Franca": 2107902, - "Passagem Franca do Piau\u00ed": 2207751, - "Passira": 2610509, - "Passo Fundo": 4314100, - "Passo de Camaragibe": 2706505, - "Passo de Torres": 4212254, - "Passo do Sobrado": 4314076, - "Passos": 3147907, - "Passos Maia": 4212270, - "Pastos Bons": 2108009, - "Patis": 3147956, - "Pato Bragado": 4118451, - "Pato Branco": 4118501, - "Patos": 2510808, - "Patos de Minas": 3148004, - "Patos do Piau\u00ed": 2207777, - "Patroc\u00ednio": 3148103, - "Patroc\u00ednio Paulista": 3536307, - "Patroc\u00ednio do Muria\u00e9": 3148202, - "Patu": 2409308, - "Paty do Alferes": 3303856, - "Pau Brasil": 2923902, - "Pau D'Arco": 1505551, - "Pau D'Arco do Piau\u00ed": 2207793, - "Pau dos Ferros": 2409407, - "Paudalho": 2610608, - "Pauini": 1303502, - "Paula C\u00e2ndido": 3148301, - "Paula Freitas": 4118600, - "Paulic\u00e9ia": 3536406, - "Paulino Neves": 2108058, - "Paulista": 2510907, - "Paulistana": 2207801, - "Paulistas": 3148400, - "Paulist\u00e2nia": 3536570, - "Paulo Afonso": 2924009, - "Paulo Bento": 4314134, - "Paulo Frontin": 4118709, - "Paulo Jacinto": 2706604, - "Paulo Lopes": 4212304, - "Paulo Ramos": 2108108, - "Paulo de Faria": 3536604, - "Paul\u00ednia": 3536505, - "Paverama": 4314159, - "Pavussu": 2207850, - "Pav\u00e3o": 3148509, - "Pa\u00e7o do Lumiar": 2107506, - "Peabiru": 4118808, - "Pederneiras": 3536703, - "Pedra": 2610806, - "Pedra Azul": 3148707, - "Pedra Bela": 3536802, - "Pedra Bonita": 3148756, - "Pedra Branca": 2511004, - "Pedra Branca do Amapari": 1600154, - "Pedra Dourada": 3149002, - "Pedra Grande": 2409506, - "Pedra Lavrada": 2511103, - "Pedra Mole": 2805000, - "Pedra Preta": 5106372, - "Pedra do Anta": 3148806, - "Pedra do Indai\u00e1": 3148905, - "Pedralva": 3149101, - "Pedran\u00f3polis": 3536901, - "Pedras Altas": 4314175, - "Pedras Grandes": 4212403, - "Pedras de Fogo": 2511202, - "Pedras de Maria da Cruz": 3149150, - "Pedregulho": 3537008, - "Pedreira": 3537107, - "Pedreiras": 2108207, - "Pedrinhas": 2805109, - "Pedrinhas Paulista": 3537156, - "Pedrin\u00f3polis": 3149200, - "Pedro Afonso": 1716505, - "Pedro Alexandre": 2924207, - "Pedro Avelino": 2409704, - "Pedro Can\u00e1rio": 3204054, - "Pedro Gomes": 5006408, - "Pedro II": 2207900, - "Pedro Laurentino": 2207934, - "Pedro Leopoldo": 3149309, - "Pedro Os\u00f3rio": 4314209, - "Pedro R\u00e9gis": 2512721, - "Pedro Teixeira": 3149408, - "Pedro Velho": 2409803, - "Pedro de Toledo": 3537206, - "Pedro do Ros\u00e1rio": 2108256, - "Pedr\u00e3o": 2924108, - "Peixe": 1716604, - "Peixe-Boi": 1505601, - "Peixoto de Azevedo": 5106422, - "Peju\u00e7ara": 4314308, - "Pelotas": 4314407, - "Penaforte": 2310605, - "Penalva": 2108306, - "Pend\u00eancias": 2409902, - "Penedo": 2706703, - "Penha": 4212502, - "Pentecoste": 2310704, - "Pen\u00e1polis": 3537305, - "Pequeri": 3149507, - "Pequi": 3149606, - "Pequizeiro": 1716653, - "Perdig\u00e3o": 3149705, - "Perdizes": 3149804, - "Perd\u00f5es": 3149903, - "Pereira Barreto": 3537404, - "Pereiras": 3537503, - "Pereiro": 2310803, - "Peri Mirim": 2108405, - "Periquito": 3149952, - "Peritiba": 4212601, - "Peritor\u00f3": 2108454, - "Perobal": 4118857, - "Perol\u00e2ndia": 5216452, - "Peru\u00edbe": 3537602, - "Pescador": 3150000, - "Pescaria Brava": 4212650, - "Pesqueira": 2610905, - "Petrolina": 2611101, - "Petrolina de Goi\u00e1s": 5216809, - "Petrol\u00e2ndia": 4212700, - "Petr\u00f3polis": 3303906, - "Pe\u00e7anha": 3148608, - "Piacatu": 3537701, - "Pianc\u00f3": 2511301, - "Piat\u00e3": 2924306, - "Piau": 3150109, - "Pia\u00e7abu\u00e7u": 2706802, - "Picada Caf\u00e9": 4314423, - "Picos": 2208007, - "Picu\u00ed": 2511400, - "Piedade": 3537800, - "Piedade de Caratinga": 3150158, - "Piedade de Ponte Nova": 3150208, - "Piedade do Rio Grande": 3150307, - "Piedade dos Gerais": 3150406, - "Pilar": 2706901, - "Pilar de Goi\u00e1s": 5216908, - "Pilar do Sul": 3537909, - "Pil\u00e3o Arcado": 2924405, - "Pil\u00f5es": 2511608, - "Pil\u00f5ezinhos": 2511707, - "Pimenta": 3150505, - "Pimenta Bueno": 1100189, - "Pimenteiras": 2208106, - "Pimenteiras do Oeste": 1101468, - "Pindamonhangaba": 3538006, - "Pindar\u00e9-Mirim": 2108504, - "Pinda\u00ed": 2924504, - "Pindoba": 2707008, - "Pindoba\u00e7u": 2924603, - "Pindorama": 3538105, - "Pindorama do Tocantins": 1717008, - "Pindoretama": 2310852, - "Pingo-d'\u00c1gua": 3150539, - "Pinhais": 4119152, - "Pinhal": 4314456, - "Pinhal Grande": 4314472, - "Pinhal da Serra": 4314464, - "Pinhal de S\u00e3o Bento": 4119251, - "Pinhalzinho": 4212908, - "Pinhal\u00e3o": 4119202, - "Pinheiral": 3303955, - "Pinheirinho do Vale": 4314498, - "Pinheiro": 2108603, - "Pinheiro Machado": 4314506, - "Pinheiro Preto": 4213005, - "Pinheiros": 3204104, - "Pinh\u00e3o": 2805208, - "Pintadas": 2924652, - "Pinto Bandeira": 4314548, - "Pint\u00f3polis": 3150570, - "Pio IX": 2208205, - "Pio XII": 2108702, - "Piquerobi": 3538303, - "Piquet Carneiro": 2310902, - "Piquete": 3538501, - "Piracaia": 3538600, - "Piracanjuba": 5217104, - "Piracema": 3150604, - "Piracicaba": 3538709, - "Piracuruca": 2208304, - "Piraju": 3538808, - "Pirajuba": 3150703, - "Piraju\u00ed": 3538907, - "Pirambu": 2805307, - "Piranga": 3150802, - "Pirangi": 3539004, - "Piranguinho": 3151008, - "Pirangu\u00e7u": 3150901, - "Piranhas": 2707107, - "Pirapemas": 2108801, - "Pirapetinga": 3151107, - "Pirapora": 3151206, - "Pirapora do Bom Jesus": 3539103, - "Pirapozinho": 3539202, - "Pirap\u00f3": 4314555, - "Piraquara": 4119509, - "Piraqu\u00ea": 1717206, - "Pirassununga": 3539301, - "Piratini": 4314605, - "Piratininga": 3539400, - "Piratuba": 4213104, - "Pira\u00ed": 3304003, - "Pira\u00ed do Norte": 2924678, - "Pira\u00ed do Sul": 4119400, - "Pira\u00faba": 3151305, - "Piren\u00f3polis": 5217302, - "Pires Ferreira": 2310951, - "Pires do Rio": 5217401, - "Piripiri": 2208403, - "Pirip\u00e1": 2924702, - "Piritiba": 2924801, - "Pirpirituba": 2511806, - "Pitanga": 4119608, - "Pitangueiras": 3539509, - "Pitangui": 3151404, - "Pitimbu": 2511905, - "Pium": 1717503, - "Piumhi": 3151503, - "Pi\u00e7arra": 1505635, - "Pi\u00ean": 4119103, - "Pi\u00fama": 3204203, - "Placas": 1505650, - "Planaltina": 5217609, - "Planaltina do Paran\u00e1": 4119707, - "Planaltino": 2924900, - "Planalto": 4314704, - "Planalto Alegre": 4213153, - "Planalto da Serra": 5106455, - "Planura": 3151602, - "Platina": 3539707, - "Pl\u00e1cido de Castro": 1200385, - "Pocinhos": 2512002, - "Pocon\u00e9": 5106505, - "Pocrane": 3151909, - "Pojuca": 2925204, - "Poloni": 3539905, - "Pombal": 2512101, - "Pombos": 2611309, - "Pomerode": 4213203, - "Pomp\u00e9ia": 3540002, - "Pomp\u00e9u": 3152006, - "Ponga\u00ed": 3540101, - "Ponta Grossa": 4119905, - "Ponta Por\u00e3": 5006606, - "Ponta de Pedras": 1505700, - "Pontal": 3540200, - "Pontal do Araguaia": 5106653, - "Pontal do Paran\u00e1": 4119954, - "Pontalina": 5217708, - "Pontalinda": 3540259, - "Ponte Alta": 4213302, - "Ponte Alta do Bom Jesus": 1717800, - "Ponte Alta do Norte": 4213351, - "Ponte Alta do Tocantins": 1717909, - "Ponte Branca": 5106703, - "Ponte Nova": 3152105, - "Ponte Preta": 4314787, - "Ponte Serrada": 4213401, - "Pontes Gestal": 3540309, - "Pontes e Lacerda": 5106752, - "Ponto Belo": 3204252, - "Ponto Chique": 3152131, - "Ponto Novo": 2925253, - "Ponto dos Volantes": 3152170, - "Pont\u00e3o": 4314779, - "Populina": 3540408, - "Poranga": 2311009, - "Porangaba": 3540507, - "Porangatu": 5218003, - "Porci\u00fancula": 3304102, - "Porecatu": 4120002, - "Portalegre": 2410207, - "Porteiras": 2311108, - "Porteirinha": 3152204, - "Porteir\u00e3o": 5218052, - "Portel": 1505809, - "Portel\u00e2ndia": 5218102, - "Porto": 2208502, - "Porto Acre": 1200807, - "Porto Alegre": 4314902, - "Porto Alegre do Norte": 5106778, - "Porto Alegre do Piau\u00ed": 2208551, - "Porto Alegre do Tocantins": 1718006, - "Porto Amazonas": 4120101, - "Porto Barreiro": 4120150, - "Porto Belo": 4213500, - "Porto Calvo": 2707305, - "Porto Esperidi\u00e3o": 5106828, - "Porto Estrela": 5106851, - "Porto Feliz": 3540606, - "Porto Ferreira": 3540705, - "Porto Firme": 3152303, - "Porto Franco": 2109007, - "Porto Grande": 1600535, - "Porto Lucena": 4315008, - "Porto Mau\u00e1": 4315057, - "Porto Murtinho": 5006903, - "Porto Nacional": 1718204, - "Porto Real": 3304110, - "Porto Real do Col\u00e9gio": 2707503, - "Porto Rico": 4120200, - "Porto Rico do Maranh\u00e3o": 2109056, - "Porto Seguro": 2925303, - "Porto Uni\u00e3o": 4213609, - "Porto Velho": 1100205, - "Porto Vera Cruz": 4315073, - "Porto Vit\u00f3ria": 4120309, - "Porto Walter": 1200393, - "Porto Xavier": 4315107, - "Porto da Folha": 2805604, - "Porto de Moz": 1505908, - "Porto de Pedras": 2707404, - "Porto do Mangue": 2410256, - "Porto dos Ga\u00fachos": 5106802, - "Port\u00e3o": 4314803, - "Posse": 5218300, - "Potengi": 2311207, - "Potim": 3540754, - "Potiragu\u00e1": 2925402, - "Potirendaba": 3540804, - "Potiretama": 2311231, - "Pot\u00e9": 3152402, - "Pouso Alegre": 3152501, - "Pouso Alto": 3152600, - "Pouso Novo": 4315131, - "Pouso Redondo": 4213708, - "Poxor\u00e9o": 5107008, - "Po\u00e1": 3539806, - "Po\u00e7o Branco": 2410108, - "Po\u00e7o Dantas": 2512036, - "Po\u00e7o Fundo": 3151701, - "Po\u00e7o Redondo": 2805406, - "Po\u00e7o Verde": 2805505, - "Po\u00e7o das Antas": 4314753, - "Po\u00e7o das Trincheiras": 2707206, - "Po\u00e7o de Jos\u00e9 de Moura": 2512077, - "Po\u00e7os de Caldas": 3151800, - "Po\u00e7\u00e3o": 2611200, - "Po\u00e7\u00e3o de Pedras": 2108900, - "Po\u00e7\u00f5es": 2925105, - "Pracinha": 3540853, - "Pracu\u00faba": 1600550, - "Prado": 2925501, - "Prado Ferreira": 4120333, - "Prados": 3152709, - "Prad\u00f3polis": 3540903, - "Praia Grande": 4213807, - "Praia Norte": 1718303, - "Prainha": 1506005, - "Pranchita": 4120358, - "Prata": 3152808, - "Prata do Piau\u00ed": 2208601, - "Pratinha": 3153004, - "Prat\u00e1polis": 3152907, - "Prat\u00e2nia": 3541059, - "Presidente Alves": 3541109, - "Presidente Bernardes": 3153103, - "Presidente Castello Branco": 4213906, - "Presidente Castelo Branco": 4120408, - "Presidente Dutra": 2109106, - "Presidente Epit\u00e1cio": 3541307, - "Presidente Figueiredo": 1303536, - "Presidente Get\u00falio": 4214003, - "Presidente Juscelino": 3153202, - "Presidente J\u00e2nio Quadros": 2925709, - "Presidente Kennedy": 1718402, - "Presidente Kubitschek": 3153301, - "Presidente Lucena": 4315149, - "Presidente M\u00e9dici": 1100254, - "Presidente Nereu": 4214102, - "Presidente Oleg\u00e1rio": 3153400, - "Presidente Prudente": 3541406, - "Presidente Sarney": 2109270, - "Presidente Tancredo Neves": 2925758, - "Presidente Vargas": 2109304, - "Presidente Venceslau": 3541505, - "Primavera": 1506104, - "Primavera de Rond\u00f4nia": 1101476, - "Primavera do Leste": 5107040, - "Primeira Cruz": 2109403, - "Primeiro de Maio": 4120507, - "Princesa": 4214151, - "Princesa Isabel": 2512309, - "Professor Jamil": 5218391, - "Progresso": 4315156, - "Promiss\u00e3o": 3541604, - "Propri\u00e1": 2805703, - "Prot\u00e1sio Alves": 4315172, - "Prudente de Morais": 3153608, - "Prudent\u00f3polis": 4120606, - "Pugmil": 1718451, - "Pureza": 2410405, - "Putinga": 4315206, - "Puxinan\u00e3": 2512408, - "P\u00e3o de A\u00e7\u00facar": 2706406, - "P\u00e9 de Serra": 2924058, - "P\u00e9rola": 4118907, - "P\u00e9rola d'Oeste": 4119004, - "Quadra": 3541653, - "Quara\u00ed": 4315305, - "Quartel Geral": 3153707, - "Quarto Centen\u00e1rio": 4120655, - "Quatigu\u00e1": 4120705, - "Quatipuru": 1506112, - "Quatis": 3304128, - "Quatro Barras": 4120804, - "Quatro Irm\u00e3os": 4315313, - "Quatro Pontes": 4120853, - "Quat\u00e1": 3541703, - "Quebrangulo": 2707602, - "Quedas do Igua\u00e7u": 4120903, - "Queimada Nova": 2208650, - "Queimadas": 2512507, - "Queimados": 3304144, - "Queiroz": 3541802, - "Queluz": 3541901, - "Queluzito": 3153806, - "Quer\u00eancia": 5107065, - "Quer\u00eancia do Norte": 4121000, - "Quevedos": 4315321, - "Quijingue": 2925907, - "Quilombo": 4214201, - "Quinta do Sol": 4121109, - "Quintana": 3542008, - "Quinze de Novembro": 4315354, - "Quipap\u00e1": 2611507, - "Quirin\u00f3polis": 5218508, - "Quissam\u00e3": 3304151, - "Quitandinha": 4121208, - "Quiterian\u00f3polis": 2311264, - "Quixabeira": 2925931, - "Quixab\u00e1": 2512606, - "Quixad\u00e1": 2311306, - "Quixel\u00f4": 2311355, - "Quixeramobim": 2311405, - "Quixer\u00e9": 2311504, - "Rafael Fernandes": 2410504, - "Rafael Godeiro": 2410603, - "Rafael Jambeiro": 2925956, - "Rafard": 3542107, - "Ramil\u00e2ndia": 4121257, - "Rancharia": 3542206, - "Rancho Alegre": 4121307, - "Rancho Alegre D'Oeste": 4121356, - "Rancho Queimado": 4214300, - "Raposa": 2109452, - "Raposos": 3153905, - "Raul Soares": 3154002, - "Realeza": 4121406, - "Rebou\u00e7as": 4121505, - "Recife": 2611606, - "Recreio": 3154101, - "Recursol\u00e2ndia": 1718501, - "Redentora": 4315404, - "Reden\u00e7\u00e3o": 1506138, - "Reden\u00e7\u00e3o da Serra": 3542305, - "Reden\u00e7\u00e3o do Gurgu\u00e9ia": 2208700, - "Reduto": 3154150, - "Regenera\u00e7\u00e3o": 2208809, - "Regente Feij\u00f3": 3542404, - "Regin\u00f3polis": 3542503, - "Registro": 3542602, - "Relvado": 4315453, - "Remanso": 2926004, - "Rem\u00edgio": 2512705, - "Renascen\u00e7a": 4121604, - "Reriutaba": 2311702, - "Resende": 3304201, - "Resende Costa": 3154200, - "Reserva": 4121703, - "Reserva do Caba\u00e7al": 5107156, - "Reserva do Igua\u00e7u": 4121752, - "Resplendor": 3154309, - "Ressaquinha": 3154408, - "Restinga": 3542701, - "Restinga Seca": 4315503, - "Retirol\u00e2ndia": 2926103, - "Riachinho": 1718550, - "Riacho Frio": 2208858, - "Riacho da Cruz": 2410702, - "Riacho das Almas": 2611705, - "Riacho de Santana": 2410801, - "Riacho de Santo Ant\u00f4nio": 2512788, - "Riacho dos Cavalos": 2512804, - "Riacho dos Machados": 3154507, - "Riachuelo": 2805901, - "Riach\u00e3o": 2109502, - "Riach\u00e3o das Neves": 2926202, - "Riach\u00e3o do Bacamarte": 2512754, - "Riach\u00e3o do Dantas": 2805802, - "Riach\u00e3o do Jacu\u00edpe": 2926301, - "Riach\u00e3o do Po\u00e7o": 2512762, - "Rialma": 5218607, - "Rian\u00e1polis": 5218706, - "Ribamar Fiquene": 2109551, - "Ribas do Rio Pardo": 5007109, - "Ribeira": 3542800, - "Ribeira do Amparo": 2926509, - "Ribeira do Piau\u00ed": 2208874, - "Ribeira do Pombal": 2926608, - "Ribeiro Gon\u00e7alves": 2208908, - "Ribeir\u00e3o": 2611804, - "Ribeir\u00e3o Bonito": 3542909, - "Ribeir\u00e3o Branco": 3543006, - "Ribeir\u00e3o Cascalheira": 5107180, - "Ribeir\u00e3o Claro": 4121802, - "Ribeir\u00e3o Corrente": 3543105, - "Ribeir\u00e3o Grande": 3543253, - "Ribeir\u00e3o Pires": 3543303, - "Ribeir\u00e3o Preto": 3543402, - "Ribeir\u00e3o Vermelho": 3154705, - "Ribeir\u00e3o das Neves": 3154606, - "Ribeir\u00e3o do Largo": 2926657, - "Ribeir\u00e3o do Pinhal": 4121901, - "Ribeir\u00e3o do Sul": 3543204, - "Ribeir\u00e3o dos \u00cdndios": 3543238, - "Ribeir\u00e3ozinho": 5107198, - "Ribeir\u00f3polis": 2806008, - "Rifaina": 3543600, - "Rinc\u00e3o": 3543709, - "Rin\u00f3polis": 3543808, - "Rio Acima": 3154804, - "Rio Azul": 4122008, - "Rio Bananal": 3204351, - "Rio Bom": 4122107, - "Rio Bonito": 3304300, - "Rio Bonito do Igua\u00e7u": 4122156, - "Rio Branco": 5107206, - "Rio Branco do Iva\u00ed": 4122172, - "Rio Branco do Sul": 4122206, - "Rio Brilhante": 5007208, - "Rio Casca": 3154903, - "Rio Claro": 3304409, - "Rio Crespo": 1100262, - "Rio Doce": 3155009, - "Rio Espera": 3155207, - "Rio Formoso": 2611903, - "Rio Fortuna": 4214904, - "Rio Grande": 4315602, - "Rio Grande da Serra": 3544103, - "Rio Grande do Piau\u00ed": 2209005, - "Rio Largo": 2707701, - "Rio Manso": 3155306, - "Rio Maria": 1506161, - "Rio Negrinho": 4215000, - "Rio Negro": 4122305, - "Rio Novo": 3155405, - "Rio Novo do Sul": 3204401, - "Rio Parana\u00edba": 3155504, - "Rio Pardo": 4315701, - "Rio Pardo de Minas": 3155603, - "Rio Piracicaba": 3155702, - "Rio Pomba": 3155801, - "Rio Preto": 3155900, - "Rio Preto da Eva": 1303569, - "Rio Quente": 5218789, - "Rio Real": 2927002, - "Rio Rufino": 4215059, - "Rio Sono": 1718758, - "Rio Tinto": 2512903, - "Rio Verde": 5218805, - "Rio Verde de Mato Grosso": 5007406, - "Rio Vermelho": 3156007, - "Rio da Concei\u00e7\u00e3o": 1718659, - "Rio das Antas": 4214409, - "Rio das Flores": 3304508, - "Rio das Ostras": 3304524, - "Rio das Pedras": 3544004, - "Rio de Contas": 2926707, - "Rio de Janeiro": 3304557, - "Rio do Ant\u00f4nio": 2926806, - "Rio do Campo": 4214508, - "Rio do Fogo": 2408953, - "Rio do Oeste": 4214607, - "Rio do Pires": 2926905, - "Rio do Prado": 3155108, - "Rio do Sul": 4214805, - "Rio dos Bois": 1718709, - "Rio dos Cedros": 4214706, - "Rio dos \u00cdndios": 4315552, - "Riol\u00e2ndia": 3544202, - "Riozinho": 4315750, - "Riqueza": 4215075, - "Rit\u00e1polis": 3156106, - "Riversul": 3543501, - "Roca Sales": 4315800, - "Rochedo": 5007505, - "Rochedo de Minas": 3156205, - "Rodeio": 4215109, - "Rodeio Bonito": 4315909, - "Rodeiro": 3156304, - "Rodelas": 2927101, - "Rodolfo Fernandes": 2411007, - "Rodrigues Alves": 1200427, - "Rolador": 4315958, - "Rolante": 4316006, - "Rolim de Moura": 1100288, - "Rol\u00e2ndia": 4122404, - "Romaria": 3156403, - "Romel\u00e2ndia": 4215208, - "Roncador": 4122503, - "Ronda Alta": 4316105, - "Rondinha": 4316204, - "Rondol\u00e2ndia": 5107578, - "Rondon": 4122602, - "Rondon do Par\u00e1": 1506187, - "Rondon\u00f3polis": 5107602, - "Roque Gonzales": 4316303, - "Rorain\u00f3polis": 1400472, - "Rosana": 3544251, - "Roseira": 3544301, - "Ros\u00e1rio": 2109601, - "Ros\u00e1rio Oeste": 5107701, - "Ros\u00e1rio da Limeira": 3156452, - "Ros\u00e1rio do Catete": 2806107, - "Ros\u00e1rio do Iva\u00ed": 4122651, - "Ros\u00e1rio do Sul": 4316402, - "Roteiro": 2707800, - "Rubelita": 3156502, - "Rubiataba": 5218904, - "Rubim": 3156601, - "Rubin\u00e9ia": 3544509, - "Rubi\u00e1cea": 3544400, - "Rur\u00f3polis": 1506195, - "Russas": 2311801, - "Ruy Barbosa": 2927200, - "Sabar\u00e1": 3156700, - "Sabino": 3544608, - "Sabin\u00f3polis": 3156809, - "Saboeiro": 2311900, - "Sab\u00e1udia": 4122701, - "Sacramento": 3156908, - "Sagrada Fam\u00edlia": 4316428, - "Sagres": 3544707, - "Sair\u00e9": 2612000, - "Saldanha Marinho": 4316436, - "Sales": 3544806, - "Sales Oliveira": 3544905, - "Sales\u00f3polis": 3545001, - "Salete": 4215307, - "Salgadinho": 2612109, - "Salgado": 2806206, - "Salgado Filho": 4122800, - "Salgado de S\u00e3o F\u00e9lix": 2513109, - "Salgueiro": 2612208, - "Salinas": 3157005, - "Salinas da Margarida": 2927309, - "Salin\u00f3polis": 1506203, - "Salitre": 2311959, - "Salmour\u00e3o": 3545100, - "Salo\u00e1": 2612307, - "Saltinho": 4215356, - "Salto": 3545209, - "Salto Grande": 3545407, - "Salto Veloso": 4215406, - "Salto da Divisa": 3157104, - "Salto de Pirapora": 3545308, - "Salto do C\u00e9u": 5107750, - "Salto do Itarar\u00e9": 4122909, - "Salto do Jacu\u00ed": 4316451, - "Salto do Lontra": 4123006, - "Salvador": 2927408, - "Salvador das Miss\u00f5es": 4316477, - "Salvador do Sul": 4316501, - "Salvaterra": 1506302, - "Samba\u00edba": 2109700, - "Sampaio": 1718808, - "Sananduva": 4316600, - "Sanclerl\u00e2ndia": 5219001, - "Sandol\u00e2ndia": 1718840, - "Sandovalina": 3545506, - "Sang\u00e3o": 4215455, - "Sanhar\u00f3": 2612406, - "Sant'Ana do Livramento": 4317103, - "Santa Ad\u00e9lia": 3545605, - "Santa Albertina": 3545704, - "Santa Am\u00e9lia": 4123105, - "Santa Branca": 3546009, - "Santa Br\u00edgida": 2927606, - "Santa B\u00e1rbara": 3157203, - "Santa B\u00e1rbara d'Oeste": 3545803, - "Santa B\u00e1rbara de Goi\u00e1s": 5219100, - "Santa B\u00e1rbara do Leste": 3157252, - "Santa B\u00e1rbara do Monte Verde": 3157278, - "Santa B\u00e1rbara do Par\u00e1": 1506351, - "Santa B\u00e1rbara do Sul": 4316709, - "Santa B\u00e1rbara do Tug\u00fario": 3157302, - "Santa Carmem": 5107248, - "Santa Cec\u00edlia": 2513158, - "Santa Cec\u00edlia do Pav\u00e3o": 4123204, - "Santa Cec\u00edlia do Sul": 4316733, - "Santa Clara d'Oeste": 3546108, - "Santa Clara do Sul": 4316758, - "Santa Cruz": 2513208, - "Santa Cruz Cabr\u00e1lia": 2927705, - "Santa Cruz da Baixa Verde": 2612471, - "Santa Cruz da Concei\u00e7\u00e3o": 3546207, - "Santa Cruz da Esperan\u00e7a": 3546256, - "Santa Cruz da Vit\u00f3ria": 2927804, - "Santa Cruz das Palmeiras": 3546306, - "Santa Cruz de Goi\u00e1s": 5219209, - "Santa Cruz de Minas": 3157336, - "Santa Cruz de Monte Castelo": 4123303, - "Santa Cruz de Salinas": 3157377, - "Santa Cruz do Arari": 1506401, - "Santa Cruz do Capibaribe": 2612505, - "Santa Cruz do Escalvado": 3157401, - "Santa Cruz do Piau\u00ed": 2209104, - "Santa Cruz do Rio Pardo": 3546405, - "Santa Cruz do Sul": 4316808, - "Santa Cruz do Xingu": 5107743, - "Santa Cruz dos Milagres": 2209153, - "Santa Efig\u00eania de Minas": 3157500, - "Santa Ernestina": 3546504, - "Santa Filomena": 2209203, - "Santa Filomena do Maranh\u00e3o": 2109759, - "Santa F\u00e9": 4123402, - "Santa F\u00e9 de Goi\u00e1s": 5219258, - "Santa F\u00e9 de Minas": 3157609, - "Santa F\u00e9 do Araguaia": 1718865, - "Santa F\u00e9 do Sul": 3546603, - "Santa Gertrudes": 3546702, - "Santa Helena": 4123501, - "Santa Helena de Goi\u00e1s": 5219308, - "Santa Helena de Minas": 3157658, - "Santa In\u00eas": 2513356, - "Santa Isabel": 3546801, - "Santa Isabel do Iva\u00ed": 4123709, - "Santa Isabel do Rio Negro": 1303601, - "Santa Izabel do Oeste": 4123808, - "Santa Izabel do Par\u00e1": 1506500, - "Santa Juliana": 3157708, - "Santa Leopoldina": 3204500, - "Santa Luz": 2209302, - "Santa Luzia": 2928059, - "Santa Luzia D'Oeste": 1100296, - "Santa Luzia do Itanhy": 2806305, - "Santa Luzia do Norte": 2707909, - "Santa Luzia do Paru\u00e1": 2110039, - "Santa Luzia do Par\u00e1": 1506559, - "Santa L\u00facia": 3546900, - "Santa Margarida": 3157906, - "Santa Margarida do Sul": 4316972, - "Santa Maria": 4316907, - "Santa Maria Madalena": 3304607, - "Santa Maria da Boa Vista": 2612604, - "Santa Maria da Serra": 3547007, - "Santa Maria da Vit\u00f3ria": 2928109, - "Santa Maria das Barreiras": 1506583, - "Santa Maria de Itabira": 3158003, - "Santa Maria de Jetib\u00e1": 3204559, - "Santa Maria do Cambuc\u00e1": 2612703, - "Santa Maria do Herval": 4316956, - "Santa Maria do Oeste": 4123857, - "Santa Maria do Par\u00e1": 1506609, - "Santa Maria do Salto": 3158102, - "Santa Maria do Sua\u00e7u\u00ed": 3158201, - "Santa Maria do Tocantins": 1718881, - "Santa Mariana": 4123907, - "Santa Mercedes": 3547106, - "Santa M\u00f4nica": 4123956, - "Santa Quit\u00e9ria": 2312205, - "Santa Quit\u00e9ria do Maranh\u00e3o": 2110104, - "Santa Rita": 2513703, - "Santa Rita d'Oeste": 3547403, - "Santa Rita de Caldas": 3159209, - "Santa Rita de C\u00e1ssia": 2928406, - "Santa Rita de Ibitipoca": 3159407, - "Santa Rita de Jacutinga": 3159308, - "Santa Rita de Minas": 3159357, - "Santa Rita do Araguaia": 5219407, - "Santa Rita do Itueto": 3159506, - "Santa Rita do Novo Destino": 5219456, - "Santa Rita do Pardo": 5007554, - "Santa Rita do Passa Quatro": 3547502, - "Santa Rita do Sapuca\u00ed": 3159605, - "Santa Rita do Tocantins": 1718899, - "Santa Rita do Trivelato": 5107768, - "Santa Rosa": 4317202, - "Santa Rosa da Serra": 3159704, - "Santa Rosa de Goi\u00e1s": 5219506, - "Santa Rosa de Lima": 2806503, - "Santa Rosa de Viterbo": 3547601, - "Santa Rosa do Piau\u00ed": 2209377, - "Santa Rosa do Purus": 1200435, - "Santa Rosa do Sul": 4215653, - "Santa Rosa do Tocantins": 1718907, - "Santa Salete": 3547650, - "Santa Teresa": 3204609, - "Santa Teresinha": 2928505, - "Santa Tereza": 4317251, - "Santa Tereza de Goi\u00e1s": 5219605, - "Santa Tereza do Oeste": 4124020, - "Santa Tereza do Tocantins": 1719004, - "Santa Terezinha": 2612802, - "Santa Terezinha de Goi\u00e1s": 5219704, - "Santa Terezinha de Itaipu": 4124053, - "Santa Terezinha do Progresso": 4215687, - "Santa Terezinha do Tocantins": 1720002, - "Santa Vit\u00f3ria": 3159803, - "Santa Vit\u00f3ria do Palmar": 4317301, - "Santaluz": 2928000, - "Santana": 2928208, - "Santana da Boa Vista": 4317004, - "Santana da Ponte Pensa": 3547205, - "Santana da Vargem": 3158300, - "Santana de Cataguases": 3158409, - "Santana de Mangueira": 2513505, - "Santana de Parna\u00edba": 3547304, - "Santana de Pirapama": 3158508, - "Santana do Acara\u00fa": 2312007, - "Santana do Araguaia": 1506708, - "Santana do Cariri": 2312106, - "Santana do Deserto": 3158607, - "Santana do Garamb\u00e9u": 3158706, - "Santana do Ipanema": 2708006, - "Santana do Itarar\u00e9": 4124004, - "Santana do Jacar\u00e9": 3158805, - "Santana do Manhua\u00e7u": 3158904, - "Santana do Maranh\u00e3o": 2110237, - "Santana do Matos": 2411403, - "Santana do Munda\u00fa": 2708105, - "Santana do Para\u00edso": 3158953, - "Santana do Piau\u00ed": 2209351, - "Santana do Riacho": 3159001, - "Santana do Serid\u00f3": 2411429, - "Santana do S\u00e3o Francisco": 2806404, - "Santana dos Garrotes": 2513604, - "Santana dos Montes": 3159100, - "Santan\u00f3polis": 2928307, - "Santar\u00e9m": 1506807, - "Santar\u00e9m Novo": 1506906, - "Santiago": 4317400, - "Santiago do Sul": 4215695, - "Santo Afonso": 5107263, - "Santo Amaro": 2928604, - "Santo Amaro da Imperatriz": 4215703, - "Santo Amaro das Brotas": 2806602, - "Santo Amaro do Maranh\u00e3o": 2110278, - "Santo Anast\u00e1cio": 3547700, - "Santo Andr\u00e9": 2513851, - "Santo Ant\u00f4nio": 2411502, - "Santo Ant\u00f4nio da Alegria": 3547908, - "Santo Ant\u00f4nio da Barra": 5219712, - "Santo Ant\u00f4nio da Patrulha": 4317608, - "Santo Ant\u00f4nio da Platina": 4124103, - "Santo Ant\u00f4nio das Miss\u00f5es": 4317707, - "Santo Ant\u00f4nio de Goi\u00e1s": 5219738, - "Santo Ant\u00f4nio de Jesus": 2928703, - "Santo Ant\u00f4nio de Lisboa": 2209401, - "Santo Ant\u00f4nio de Posse": 3548005, - "Santo Ant\u00f4nio de P\u00e1dua": 3304706, - "Santo Ant\u00f4nio do Amparo": 3159902, - "Santo Ant\u00f4nio do Aracangu\u00e1": 3548054, - "Santo Ant\u00f4nio do Aventureiro": 3160009, - "Santo Ant\u00f4nio do Caiu\u00e1": 4124202, - "Santo Ant\u00f4nio do Descoberto": 5219753, - "Santo Ant\u00f4nio do Grama": 3160108, - "Santo Ant\u00f4nio do Itamb\u00e9": 3160207, - "Santo Ant\u00f4nio do I\u00e7\u00e1": 1303700, - "Santo Ant\u00f4nio do Jacinto": 3160306, - "Santo Ant\u00f4nio do Jardim": 3548104, - "Santo Ant\u00f4nio do Leste": 5107792, - "Santo Ant\u00f4nio do Leverger": 5107800, - "Santo Ant\u00f4nio do Monte": 3160405, - "Santo Ant\u00f4nio do Palma": 4317558, - "Santo Ant\u00f4nio do Para\u00edso": 4124301, - "Santo Ant\u00f4nio do Pinhal": 3548203, - "Santo Ant\u00f4nio do Planalto": 4317756, - "Santo Ant\u00f4nio do Retiro": 3160454, - "Santo Ant\u00f4nio do Rio Abaixo": 3160504, - "Santo Ant\u00f4nio do Sudoeste": 4124400, - "Santo Ant\u00f4nio do Tau\u00e1": 1507003, - "Santo Ant\u00f4nio dos Lopes": 2110302, - "Santo Ant\u00f4nio dos Milagres": 2209450, - "Santo Augusto": 4317806, - "Santo Cristo": 4317905, - "Santo Est\u00eav\u00e3o": 2928802, - "Santo Expedito": 3548302, - "Santo Expedito do Sul": 4317954, - "Santo Hip\u00f3lito": 3160603, - "Santo In\u00e1cio": 4124509, - "Santo In\u00e1cio do Piau\u00ed": 2209500, - "Santo \u00c2ngelo": 4317509, - "Santos": 3548500, - "Santos Dumont": 3160702, - "Sant\u00f3polis do Aguape\u00ed": 3548401, - "Sapea\u00e7u": 2929602, - "Sapezal": 5107875, - "Sapiranga": 4319901, - "Sapopema": 4126207, - "Sapucaia": 1507755, - "Sapucaia do Sul": 4320008, - "Sapuca\u00ed-Mirim": 3165404, - "Sap\u00e9": 2515302, - "Saquarema": 3305505, - "Sarandi": 4320107, - "Sarapu\u00ed": 3551108, - "Sardo\u00e1": 3165503, - "Sarutai\u00e1": 3551207, - "Sarzedo": 3165537, - "Satuba": 2708907, - "Satubinha": 2111722, - "Saubara": 2929750, - "Saudade do Igua\u00e7u": 4126272, - "Saudades": 4217303, - "Sa\u00fade": 2929800, - "Schroeder": 4217402, - "Seabra": 2929909, - "Seara": 4217501, - "Sebastian\u00f3polis do Sul": 3551306, - "Sebasti\u00e3o Barros": 2210623, - "Sebasti\u00e3o Laranjeiras": 2930006, - "Sebasti\u00e3o Leal": 2210631, - "Seberi": 4320206, - "Sede Nova": 4320230, - "Segredo": 4320263, - "Selbach": 4320305, - "Selv\u00edria": 5007802, - "Sem-Peixe": 3165560, - "Sena Madureira": 1200500, - "Senador Alexandre Costa": 2111748, - "Senador Amaral": 3165578, - "Senador Canedo": 5220454, - "Senador Cortes": 3165602, - "Senador El\u00f3i de Souza": 2413102, - "Senador Firmino": 3165701, - "Senador Georgino Avelino": 2413201, - "Senador Guiomard": 1200450, - "Senador Jos\u00e9 Bento": 3165800, - "Senador Jos\u00e9 Porf\u00edrio": 1507805, - "Senador La Rocque": 2111763, - "Senador Modestino Gon\u00e7alves": 3165909, - "Senador Pompeu": 2312700, - "Senador Rui Palmeira": 2708956, - "Senador Salgado Filho": 4320321, - "Senador S\u00e1": 2312809, - "Seng\u00e9s": 4126306, - "Senhor do Bonfim": 2930105, - "Senhora de Oliveira": 3166006, - "Senhora do Porto": 3166105, - "Senhora dos Rem\u00e9dios": 3166204, - "Sentinela do Sul": 4320354, - "Sento S\u00e9": 2930204, - "Serafina Corr\u00eaa": 4320404, - "Sericita": 3166303, - "Seringueiras": 1101500, - "Seritinga": 3166402, - "Serop\u00e9dica": 3305554, - "Serra": 3205002, - "Serra Alta": 4217550, - "Serra Azul": 3551405, - "Serra Azul de Minas": 3166501, - "Serra Branca": 2515500, - "Serra Caiada": 2410306, - "Serra Dourada": 2930303, - "Serra Grande": 2515708, - "Serra Negra": 3551603, - "Serra Negra do Norte": 2413409, - "Serra Nova Dourada": 5107883, - "Serra Preta": 2930402, - "Serra Redonda": 2515807, - "Serra Talhada": 2613909, - "Serra da Raiz": 2515609, - "Serra da Saudade": 3166600, - "Serra de S\u00e3o Bento": 2413300, - "Serra do Mel": 2413359, - "Serra do Navio": 1600055, - "Serra do Ramalho": 2930154, - "Serra do Salitre": 3166808, - "Serra dos Aimor\u00e9s": 3166709, - "Serrana": 3551504, - "Serrania": 3166907, - "Serrano do Maranh\u00e3o": 2111789, - "Serranos": 3167004, - "Serran\u00f3polis": 5220504, - "Serran\u00f3polis de Minas": 3166956, - "Serran\u00f3polis do Igua\u00e7u": 4126355, - "Serraria": 2515906, - "Serrinha": 2930501, - "Serrinha dos Pintos": 2413557, - "Serrita": 2614006, - "Serro": 3167103, - "Serrol\u00e2ndia": 2930600, - "Sertaneja": 4126405, - "Sertan\u00f3polis": 4126504, - "Sert\u00e2nia": 2614105, - "Sert\u00e3o": 4320503, - "Sert\u00e3o Santana": 4320552, - "Sert\u00e3ozinho": 3551702, - "Sete Barras": 3551801, - "Sete Lagoas": 3167202, - "Sete Quedas": 5007703, - "Sete de Setembro": 4320578, - "Setubinha": 3165552, - "Severiano Melo": 2413607, - "Severiano de Almeida": 4320602, - "Sever\u00ednia": 3551900, - "Sider\u00f3polis": 4217600, - "Sidrol\u00e2ndia": 5007901, - "Sigefredo Pacheco": 2210656, - "Silva Jardim": 3305604, - "Silvan\u00f3polis": 1720655, - "Silveira Martins": 4320651, - "Silveiras": 3552007, - "Silveir\u00e2nia": 3167301, - "Silves": 1304005, - "Silvian\u00f3polis": 3167400, - "Silv\u00e2nia": 5220603, - "Simol\u00e2ndia": 5220686, - "Simon\u00e9sia": 3167608, - "Simpl\u00edcio Mendes": 2210805, - "Sim\u00e3o Dias": 2807105, - "Sim\u00e3o Pereira": 3167509, - "Sim\u00f5es": 2210706, - "Sim\u00f5es Filho": 2930709, - "Sinimbu": 4320677, - "Sinop": 5107909, - "Siqueira Campos": 4126603, - "Sirinha\u00e9m": 2614204, - "Siriri": 2807204, - "Sobradinho": 2930774, - "Sobrado": 2515971, - "Sobral": 2312908, - "Sobr\u00e1lia": 3167707, - "Socorro": 3552106, - "Socorro do Piau\u00ed": 2210904, - "Soledade": 2516102, - "Soledade de Minas": 3167806, - "Solid\u00e3o": 2614402, - "Solon\u00f3pole": 2313005, - "Sol\u00e2nea": 2516003, - "Sombrio": 4217709, - "Sonora": 5007935, - "Sooretama": 3205010, - "Sorocaba": 3552205, - "Sorriso": 5107925, - "Soss\u00eago": 2516151, - "Soure": 1507904, - "Sousa": 2516201, - "Souto Soares": 2930808, - "Sucupira": 1720853, - "Sucupira do Norte": 2111904, - "Sucupira do Riach\u00e3o": 2111953, - "Sud Mennucci": 3552304, - "Sul Brasil": 4217758, - "Sulina": 4126652, - "Sumar\u00e9": 3552403, - "Sumidouro": 3305703, - "Sum\u00e9": 2516300, - "Surubim": 2614501, - "Sussuapara": 2210938, - "Suzano": 3552502, - "Suzan\u00e1polis": 3552551, - "S\u00e1tiro Dias": 2929701, - "S\u00e3o Benedito": 2312304, - "S\u00e3o Benedito do Rio Preto": 2110401, - "S\u00e3o Benedito do Sul": 2612901, - "S\u00e3o Bentinho": 2513927, - "S\u00e3o Bento": 2110500, - "S\u00e3o Bento Abade": 3160801, - "S\u00e3o Bento do Norte": 2411601, - "S\u00e3o Bento do Sapuca\u00ed": 3548609, - "S\u00e3o Bento do Sul": 4215802, - "S\u00e3o Bento do Tocantins": 1720101, - "S\u00e3o Bento do Trair\u00ed": 2411700, - "S\u00e3o Bento do Una": 2613008, - "S\u00e3o Bernardino": 4215752, - "S\u00e3o Bernardo": 2110609, - "S\u00e3o Bernardo do Campo": 3548708, - "S\u00e3o Bonif\u00e1cio": 4215901, - "S\u00e3o Borja": 4318002, - "S\u00e3o Braz do Piau\u00ed": 2209559, - "S\u00e3o Br\u00e1s": 2708204, - "S\u00e3o Br\u00e1s do Sua\u00e7u\u00ed": 3160900, - "S\u00e3o Caetano de Odivelas": 1507102, - "S\u00e3o Caetano do Sul": 3548807, - "S\u00e3o Caitano": 2613107, - "S\u00e3o Carlos": 3548906, - "S\u00e3o Carlos do Iva\u00ed": 4124608, - "S\u00e3o Cristov\u00e3o do Sul": 4216057, - "S\u00e3o Crist\u00f3v\u00e3o": 2806701, - "S\u00e3o Desid\u00e9rio": 2928901, - "S\u00e3o Domingos": 4216107, - "S\u00e3o Domingos das Dores": 3160959, - "S\u00e3o Domingos do Araguaia": 1507151, - "S\u00e3o Domingos do Azeit\u00e3o": 2110658, - "S\u00e3o Domingos do Capim": 1507201, - "S\u00e3o Domingos do Cariri": 2513943, - "S\u00e3o Domingos do Maranh\u00e3o": 2110708, - "S\u00e3o Domingos do Norte": 3204658, - "S\u00e3o Domingos do Prata": 3161007, - "S\u00e3o Domingos do Sul": 4318051, - "S\u00e3o Felipe": 2929107, - "S\u00e3o Felipe D'Oeste": 1101484, - "S\u00e3o Fernando": 2411809, - "S\u00e3o Fid\u00e9lis": 3304805, - "S\u00e3o Francisco": 3161106, - "S\u00e3o Francisco de Assis": 4318101, - "S\u00e3o Francisco de Assis do Piau\u00ed": 2209658, - "S\u00e3o Francisco de Goi\u00e1s": 5219902, - "S\u00e3o Francisco de Itabapoana": 3304755, - "S\u00e3o Francisco de Paula": 3161205, - "S\u00e3o Francisco de Sales": 3161304, - "S\u00e3o Francisco do Brej\u00e3o": 2110856, - "S\u00e3o Francisco do Conde": 2929206, - "S\u00e3o Francisco do Gl\u00f3ria": 3161403, - "S\u00e3o Francisco do Guapor\u00e9": 1101492, - "S\u00e3o Francisco do Maranh\u00e3o": 2110906, - "S\u00e3o Francisco do Oeste": 2411908, - "S\u00e3o Francisco do Par\u00e1": 1507409, - "S\u00e3o Francisco do Piau\u00ed": 2209708, - "S\u00e3o Francisco do Sul": 4216206, - "S\u00e3o F\u00e9lix": 2929008, - "S\u00e3o F\u00e9lix de Balsas": 2110807, - "S\u00e3o F\u00e9lix de Minas": 3161056, - "S\u00e3o F\u00e9lix do Araguaia": 5107859, - "S\u00e3o F\u00e9lix do Coribe": 2929057, - "S\u00e3o F\u00e9lix do Piau\u00ed": 2209609, - "S\u00e3o F\u00e9lix do Tocantins": 1720150, - "S\u00e3o F\u00e9lix do Xingu": 1507300, - "S\u00e3o Gabriel": 4318309, - "S\u00e3o Gabriel da Cachoeira": 1303809, - "S\u00e3o Gabriel da Palha": 3204708, - "S\u00e3o Gabriel do Oeste": 5007695, - "S\u00e3o Geraldo": 3161502, - "S\u00e3o Geraldo da Piedade": 3161601, - "S\u00e3o Geraldo do Araguaia": 1507458, - "S\u00e3o Geraldo do Baixio": 3161650, - "S\u00e3o Gon\u00e7alo": 3304904, - "S\u00e3o Gon\u00e7alo do Abaet\u00e9": 3161700, - "S\u00e3o Gon\u00e7alo do Amarante": 2312403, - "S\u00e3o Gon\u00e7alo do Gurgu\u00e9ia": 2209757, - "S\u00e3o Gon\u00e7alo do Par\u00e1": 3161809, - "S\u00e3o Gon\u00e7alo do Piau\u00ed": 2209807, - "S\u00e3o Gon\u00e7alo do Rio Abaixo": 3161908, - "S\u00e3o Gon\u00e7alo do Rio Preto": 3125507, - "S\u00e3o Gon\u00e7alo do Sapuca\u00ed": 3162005, - "S\u00e3o Gon\u00e7alo dos Campos": 2929305, - "S\u00e3o Gotardo": 3162104, - "S\u00e3o Jer\u00f4nimo": 4318408, - "S\u00e3o Jer\u00f4nimo da Serra": 4124707, - "S\u00e3o Joaquim": 4216503, - "S\u00e3o Joaquim da Barra": 3549409, - "S\u00e3o Joaquim de Bicas": 3162922, - "S\u00e3o Joaquim do Monte": 2613305, - "S\u00e3o Jorge": 4318440, - "S\u00e3o Jorge d'Oeste": 4125209, - "S\u00e3o Jorge do Iva\u00ed": 4125308, - "S\u00e3o Jorge do Patroc\u00ednio": 4125357, - "S\u00e3o Jos\u00e9": 4216602, - "S\u00e3o Jos\u00e9 da Barra": 3162948, - "S\u00e3o Jos\u00e9 da Bela Vista": 3549508, - "S\u00e3o Jos\u00e9 da Boa Vista": 4125407, - "S\u00e3o Jos\u00e9 da Coroa Grande": 2613404, - "S\u00e3o Jos\u00e9 da Lagoa Tapada": 2514206, - "S\u00e3o Jos\u00e9 da Laje": 2708303, - "S\u00e3o Jos\u00e9 da Lapa": 3162955, - "S\u00e3o Jos\u00e9 da Safira": 3163003, - "S\u00e3o Jos\u00e9 da Tapera": 2708402, - "S\u00e3o Jos\u00e9 da Varginha": 3163102, - "S\u00e3o Jos\u00e9 da Vit\u00f3ria": 2929354, - "S\u00e3o Jos\u00e9 das Miss\u00f5es": 4318457, - "S\u00e3o Jos\u00e9 das Palmeiras": 4125456, - "S\u00e3o Jos\u00e9 de Caiana": 2514305, - "S\u00e3o Jos\u00e9 de Espinharas": 2514404, - "S\u00e3o Jos\u00e9 de Mipibu": 2412203, - "S\u00e3o Jos\u00e9 de Piranhas": 2514503, - "S\u00e3o Jos\u00e9 de Princesa": 2514552, - "S\u00e3o Jos\u00e9 de Ribamar": 2111201, - "S\u00e3o Jos\u00e9 de Ub\u00e1": 3305133, - "S\u00e3o Jos\u00e9 do Alegre": 3163201, - "S\u00e3o Jos\u00e9 do Barreiro": 3549607, - "S\u00e3o Jos\u00e9 do Belmonte": 2613503, - "S\u00e3o Jos\u00e9 do Bonfim": 2514602, - "S\u00e3o Jos\u00e9 do Brejo do Cruz": 2514651, - "S\u00e3o Jos\u00e9 do Cal\u00e7ado": 3204807, - "S\u00e3o Jos\u00e9 do Campestre": 2412302, - "S\u00e3o Jos\u00e9 do Cedro": 4216701, - "S\u00e3o Jos\u00e9 do Cerrito": 4216800, - "S\u00e3o Jos\u00e9 do Divino": 3163300, - "S\u00e3o Jos\u00e9 do Egito": 2613602, - "S\u00e3o Jos\u00e9 do Goiabal": 3163409, - "S\u00e3o Jos\u00e9 do Herval": 4318465, - "S\u00e3o Jos\u00e9 do Hort\u00eancio": 4318481, - "S\u00e3o Jos\u00e9 do Inhacor\u00e1": 4318499, - "S\u00e3o Jos\u00e9 do Jacuri": 3163508, - "S\u00e3o Jos\u00e9 do Jacu\u00edpe": 2929370, - "S\u00e3o Jos\u00e9 do Mantimento": 3163607, - "S\u00e3o Jos\u00e9 do Norte": 4318507, - "S\u00e3o Jos\u00e9 do Ouro": 4318606, - "S\u00e3o Jos\u00e9 do Peixe": 2210102, - "S\u00e3o Jos\u00e9 do Piau\u00ed": 2210201, - "S\u00e3o Jos\u00e9 do Povo": 5107297, - "S\u00e3o Jos\u00e9 do Rio Claro": 5107305, - "S\u00e3o Jos\u00e9 do Rio Pardo": 3549706, - "S\u00e3o Jos\u00e9 do Rio Preto": 3549805, - "S\u00e3o Jos\u00e9 do Sabugi": 2514701, - "S\u00e3o Jos\u00e9 do Serid\u00f3": 2412401, - "S\u00e3o Jos\u00e9 do Sul": 4318614, - "S\u00e3o Jos\u00e9 do Vale do Rio Preto": 3305158, - "S\u00e3o Jos\u00e9 do Xingu": 5107354, - "S\u00e3o Jos\u00e9 dos Ausentes": 4318622, - "S\u00e3o Jos\u00e9 dos Bas\u00edlios": 2111250, - "S\u00e3o Jos\u00e9 dos Campos": 3549904, - "S\u00e3o Jos\u00e9 dos Cordeiros": 2514800, - "S\u00e3o Jos\u00e9 dos Pinhais": 4125506, - "S\u00e3o Jos\u00e9 dos Quatro Marcos": 5107107, - "S\u00e3o Jos\u00e9 dos Ramos": 2514453, - "S\u00e3o Jo\u00e3o": 2613206, - "S\u00e3o Jo\u00e3o Batista": 4216305, - "S\u00e3o Jo\u00e3o Batista do Gl\u00f3ria": 3162203, - "S\u00e3o Jo\u00e3o Evangelista": 3162807, - "S\u00e3o Jo\u00e3o Nepomuceno": 3162906, - "S\u00e3o Jo\u00e3o d'Alian\u00e7a": 5220009, - "S\u00e3o Jo\u00e3o da Baliza": 1400506, - "S\u00e3o Jo\u00e3o da Barra": 3305000, - "S\u00e3o Jo\u00e3o da Boa Vista": 3549102, - "S\u00e3o Jo\u00e3o da Canabrava": 2209856, - "S\u00e3o Jo\u00e3o da Fronteira": 2209872, - "S\u00e3o Jo\u00e3o da Lagoa": 3162252, - "S\u00e3o Jo\u00e3o da Mata": 3162302, - "S\u00e3o Jo\u00e3o da Para\u00fana": 5220058, - "S\u00e3o Jo\u00e3o da Ponta": 1507466, - "S\u00e3o Jo\u00e3o da Ponte": 3162401, - "S\u00e3o Jo\u00e3o da Serra": 2209906, - "S\u00e3o Jo\u00e3o da Urtiga": 4318424, - "S\u00e3o Jo\u00e3o da Varjota": 2209955, - "S\u00e3o Jo\u00e3o das Duas Pontes": 3549201, - "S\u00e3o Jo\u00e3o das Miss\u00f5es": 3162450, - "S\u00e3o Jo\u00e3o de Iracema": 3549250, - "S\u00e3o Jo\u00e3o de Meriti": 3305109, - "S\u00e3o Jo\u00e3o de Pirabas": 1507474, - "S\u00e3o Jo\u00e3o del Rei": 3162500, - "S\u00e3o Jo\u00e3o do Araguaia": 1507508, - "S\u00e3o Jo\u00e3o do Arraial": 2209971, - "S\u00e3o Jo\u00e3o do Caiu\u00e1": 4124905, - "S\u00e3o Jo\u00e3o do Cariri": 2514008, - "S\u00e3o Jo\u00e3o do Car\u00fa": 2111029, - "S\u00e3o Jo\u00e3o do Itaperi\u00fa": 4216354, - "S\u00e3o Jo\u00e3o do Iva\u00ed": 4125001, - "S\u00e3o Jo\u00e3o do Jaguaribe": 2312502, - "S\u00e3o Jo\u00e3o do Manhua\u00e7u": 3162559, - "S\u00e3o Jo\u00e3o do Manteninha": 3162575, - "S\u00e3o Jo\u00e3o do Oeste": 4216255, - "S\u00e3o Jo\u00e3o do Oriente": 3162609, - "S\u00e3o Jo\u00e3o do Pacu\u00ed": 3162658, - "S\u00e3o Jo\u00e3o do Para\u00edso": 3162708, - "S\u00e3o Jo\u00e3o do Pau d'Alho": 3549300, - "S\u00e3o Jo\u00e3o do Piau\u00ed": 2210003, - "S\u00e3o Jo\u00e3o do Pol\u00easine": 4318432, - "S\u00e3o Jo\u00e3o do Rio do Peixe": 2500700, - "S\u00e3o Jo\u00e3o do Sabugi": 2412104, - "S\u00e3o Jo\u00e3o do Soter": 2111078, - "S\u00e3o Jo\u00e3o do Sul": 4216404, - "S\u00e3o Jo\u00e3o do Tigre": 2514107, - "S\u00e3o Jo\u00e3o do Triunfo": 4125100, - "S\u00e3o Jo\u00e3o dos Patos": 2111102, - "S\u00e3o Juli\u00e3o": 2210300, - "S\u00e3o Leopoldo": 4318705, - "S\u00e3o Louren\u00e7o": 3163706, - "S\u00e3o Louren\u00e7o da Mata": 2613701, - "S\u00e3o Louren\u00e7o da Serra": 3549953, - "S\u00e3o Louren\u00e7o do Oeste": 4216909, - "S\u00e3o Louren\u00e7o do Piau\u00ed": 2210359, - "S\u00e3o Louren\u00e7o do Sul": 4318804, - "S\u00e3o Ludgero": 4217006, - "S\u00e3o Luis do Piau\u00ed": 2210375, - "S\u00e3o Luiz": 1400605, - "S\u00e3o Luiz Gonzaga": 4318903, - "S\u00e3o Lu\u00eds": 2111300, - "S\u00e3o Lu\u00eds Gonzaga do Maranh\u00e3o": 2111409, - "S\u00e3o Lu\u00eds de Montes Belos": 5220108, - "S\u00e3o Lu\u00eds do Curu": 2312601, - "S\u00e3o Lu\u00eds do Paraitinga": 3550001, - "S\u00e3o Lu\u00eds do Quitunde": 2708501, - "S\u00e3o Lu\u00edz do Norte": 5220157, - "S\u00e3o Mamede": 2514909, - "S\u00e3o Manoel do Paran\u00e1": 4125555, - "S\u00e3o Manuel": 3550100, - "S\u00e3o Marcos": 4319000, - "S\u00e3o Martinho": 4319109, - "S\u00e3o Martinho da Serra": 4319125, - "S\u00e3o Mateus": 3204906, - "S\u00e3o Mateus do Maranh\u00e3o": 2111508, - "S\u00e3o Mateus do Sul": 4125605, - "S\u00e3o Miguel": 2412500, - "S\u00e3o Miguel Arcanjo": 3550209, - "S\u00e3o Miguel da Baixa Grande": 2210383, - "S\u00e3o Miguel da Boa Vista": 4217154, - "S\u00e3o Miguel das Matas": 2929404, - "S\u00e3o Miguel das Miss\u00f5es": 4319158, - "S\u00e3o Miguel de Taipu": 2515005, - "S\u00e3o Miguel do Aleixo": 2807006, - "S\u00e3o Miguel do Anta": 3163805, - "S\u00e3o Miguel do Araguaia": 5220207, - "S\u00e3o Miguel do Fidalgo": 2210391, - "S\u00e3o Miguel do Gostoso": 2412559, - "S\u00e3o Miguel do Guam\u00e1": 1507607, - "S\u00e3o Miguel do Guapor\u00e9": 1100320, - "S\u00e3o Miguel do Igua\u00e7u": 4125704, - "S\u00e3o Miguel do Oeste": 4217204, - "S\u00e3o Miguel do Passa Quatro": 5220264, - "S\u00e3o Miguel do Tapuio": 2210409, - "S\u00e3o Miguel do Tocantins": 1720200, - "S\u00e3o Miguel dos Campos": 2708600, - "S\u00e3o Miguel dos Milagres": 2708709, - "S\u00e3o Nicolau": 4319208, - "S\u00e3o Patr\u00edcio": 5220280, - "S\u00e3o Paulo": 3550308, - "S\u00e3o Paulo das Miss\u00f5es": 4319307, - "S\u00e3o Paulo de Oliven\u00e7a": 1303908, - "S\u00e3o Paulo do Potengi": 2412609, - "S\u00e3o Pedro": 2412708, - "S\u00e3o Pedro da Aldeia": 3305208, - "S\u00e3o Pedro da Cipa": 5107404, - "S\u00e3o Pedro da Serra": 4319356, - "S\u00e3o Pedro da Uni\u00e3o": 3163904, - "S\u00e3o Pedro da \u00c1gua Branca": 2111532, - "S\u00e3o Pedro das Miss\u00f5es": 4319364, - "S\u00e3o Pedro de Alc\u00e2ntara": 4217253, - "S\u00e3o Pedro do Buti\u00e1": 4319372, - "S\u00e3o Pedro do Igua\u00e7u": 4125753, - "S\u00e3o Pedro do Iva\u00ed": 4125803, - "S\u00e3o Pedro do Paran\u00e1": 4125902, - "S\u00e3o Pedro do Piau\u00ed": 2210508, - "S\u00e3o Pedro do Sua\u00e7u\u00ed": 3164100, - "S\u00e3o Pedro do Sul": 4319406, - "S\u00e3o Pedro do Turvo": 3550506, - "S\u00e3o Pedro dos Crentes": 2111573, - "S\u00e3o Pedro dos Ferros": 3164001, - "S\u00e3o Rafael": 2412807, - "S\u00e3o Raimundo Nonato": 2210607, - "S\u00e3o Raimundo das Mangabeiras": 2111607, - "S\u00e3o Raimundo do Doca Bezerra": 2111631, - "S\u00e3o Roberto": 2111672, - "S\u00e3o Rom\u00e3o": 3164209, - "S\u00e3o Roque": 3550605, - "S\u00e3o Roque de Minas": 3164308, - "S\u00e3o Roque do Cana\u00e3": 3204955, - "S\u00e3o Salvador do Tocantins": 1720259, - "S\u00e3o Sebasti\u00e3o": 2708808, - "S\u00e3o Sebasti\u00e3o da Amoreira": 4126009, - "S\u00e3o Sebasti\u00e3o da Bela Vista": 3164407, - "S\u00e3o Sebasti\u00e3o da Boa Vista": 1507706, - "S\u00e3o Sebasti\u00e3o da Grama": 3550803, - "S\u00e3o Sebasti\u00e3o da Vargem Alegre": 3164431, - "S\u00e3o Sebasti\u00e3o de Lagoa de Ro\u00e7a": 2515104, - "S\u00e3o Sebasti\u00e3o do Alto": 3305307, - "S\u00e3o Sebasti\u00e3o do Anta": 3164472, - "S\u00e3o Sebasti\u00e3o do Ca\u00ed": 4319505, - "S\u00e3o Sebasti\u00e3o do Maranh\u00e3o": 3164506, - "S\u00e3o Sebasti\u00e3o do Oeste": 3164605, - "S\u00e3o Sebasti\u00e3o do Para\u00edso": 3164704, - "S\u00e3o Sebasti\u00e3o do Pass\u00e9": 2929503, - "S\u00e3o Sebasti\u00e3o do Rio Preto": 3164803, - "S\u00e3o Sebasti\u00e3o do Rio Verde": 3164902, - "S\u00e3o Sebasti\u00e3o do Tocantins": 1720309, - "S\u00e3o Sebasti\u00e3o do Uatum\u00e3": 1303957, - "S\u00e3o Sebasti\u00e3o do Umbuzeiro": 2515203, - "S\u00e3o Sep\u00e9": 4319604, - "S\u00e3o Sim\u00e3o": 3550902, - "S\u00e3o Thom\u00e9 das Letras": 3165206, - "S\u00e3o Tiago": 3165008, - "S\u00e3o Tom\u00e1s de Aquino": 3165107, - "S\u00e3o Tom\u00e9": 2412906, - "S\u00e3o Valentim": 4319703, - "S\u00e3o Valentim do Sul": 4319711, - "S\u00e3o Val\u00e9rio": 1720499, - "S\u00e3o Val\u00e9rio do Sul": 4319737, - "S\u00e3o Vendelino": 4319752, - "S\u00e3o Vicente": 3551009, - "S\u00e3o Vicente Ferrer": 2613800, - "S\u00e3o Vicente de Minas": 3165305, - "S\u00e3o Vicente do Serid\u00f3": 2515401, - "S\u00e3o Vicente do Sul": 4319802, - "S\u00e9rio": 4320453, - "S\u00edtio Novo": 2111805, - "S\u00edtio Novo do Tocantins": 1720804, - "S\u00edtio d'Abadia": 5220702, - "S\u00edtio do Mato": 2930758, - "S\u00edtio do Quinto": 2930766, - "Tabapor\u00e3": 5107941, - "Tabapu\u00e3": 3552601, - "Tabatinga": 1304062, - "Taba\u00ed": 4320859, - "Tabira": 2614600, - "Tabocas do Brejo Velho": 2930907, - "Taboleiro Grande": 2413805, - "Tabo\u00e3o da Serra": 3552809, - "Tabuleiro": 3167905, - "Tabuleiro do Norte": 2313104, - "Tacaimb\u00f3": 2614709, - "Tacaratu": 2614808, - "Taciba": 3552908, - "Tacima": 2516409, - "Tacuru": 5007950, - "Taguatinga": 1720903, - "Tagua\u00ed": 3553005, - "Taia\u00e7u": 3553104, - "Tail\u00e2ndia": 1507953, - "Taiobeiras": 3168002, - "Taipas do Tocantins": 1720937, - "Taipu": 2413904, - "Tai\u00f3": 4217808, - "Tai\u00fava": 3553203, - "Talism\u00e3": 1720978, - "Tamandar\u00e9": 2614857, - "Tamarana": 4126678, - "Tamba\u00fa": 3553302, - "Tamboara": 4126702, - "Tamboril": 2313203, - "Tamboril do Piau\u00ed": 2210953, - "Tanabi": 3553401, - "Tangar\u00e1": 4217907, - "Tangar\u00e1 da Serra": 5107958, - "Tangu\u00e1": 3305752, - "Tanha\u00e7u": 2931004, - "Tanque Novo": 2931053, - "Tanque d'Arca": 2709004, - "Tanque do Piau\u00ed": 2210979, - "Tanquinho": 2931103, - "Taparuba": 3168051, - "Tapau\u00e1": 1304104, - "Tapejara": 4126801, - "Tapera": 4321006, - "Tapero\u00e1": 2516508, - "Tapes": 4321105, - "Tapira": 4126900, - "Tapiramut\u00e1": 2931301, - "Tapiratiba": 3553609, - "Tapira\u00ed": 3553500, - "Tapurah": 5108006, - "Taquara": 4321204, - "Taquaral": 3553658, - "Taquaral de Goi\u00e1s": 5221007, - "Taquarana": 2709103, - "Taquara\u00e7u de Minas": 3168309, - "Taquari": 4321303, - "Taquaritinga": 3553708, - "Taquaritinga do Norte": 2615003, - "Taquarituba": 3553807, - "Taquariva\u00ed": 3553856, - "Taquarussu": 5007976, - "Taquaru\u00e7u do Sul": 4321329, - "Tarabai": 3553906, - "Tarauac\u00e1": 1200609, - "Tarrafas": 2313252, - "Tartarugalzinho": 1600709, - "Tarumirim": 3168408, - "Tarum\u00e3": 3553955, - "Tasso Fragoso": 2112001, - "Tatu\u00ed": 3554003, - "Taubat\u00e9": 3554102, - "Tau\u00e1": 2313302, - "Tavares": 4321352, - "Tef\u00e9": 1304203, - "Teixeira": 2516706, - "Teixeira Soares": 4127007, - "Teixeira de Freitas": 2931350, - "Teixeiras": 3168507, - "Teixeir\u00f3polis": 1101559, - "Tejup\u00e1": 3554201, - "Teju\u00e7uoca": 2313351, - "Telha": 2807303, - "Tel\u00eamaco Borba": 4127106, - "Tenente Ananias": 2414100, - "Tenente Laurentino Cruz": 2414159, - "Tenente Portela": 4321402, - "Ten\u00f3rio": 2516755, - "Teodoro Sampaio": 2931400, - "Teofil\u00e2ndia": 2931509, - "Teol\u00e2ndia": 2931608, - "Teot\u00f4nio Vilela": 2709152, - "Terenos": 5008008, - "Teresina": 2211001, - "Teresina de Goi\u00e1s": 5221080, - "Teres\u00f3polis": 3305802, - "Terezinha": 2615102, - "Terez\u00f3polis de Goi\u00e1s": 5221197, - "Terra Alta": 1507961, - "Terra Boa": 4127205, - "Terra Nova": 2931707, - "Terra Nova do Norte": 5108055, - "Terra Rica": 4127304, - "Terra Roxa": 3554409, - "Terra Santa": 1507979, - "Terra de Areia": 4321436, - "Tesouro": 5108105, - "Teut\u00f4nia": 4321451, - "Te\u00f3filo Otoni": 3168606, - "Theobroma": 1101609, - "Tiangu\u00e1": 2313401, - "Tibagi": 4127502, - "Tibau": 2411056, - "Tibau do Sul": 2414209, - "Tiet\u00ea": 3554508, - "Tigrinhos": 4217956, - "Tijucas": 4218004, - "Tijucas do Sul": 4127601, - "Timba\u00faba": 2615300, - "Timba\u00faba dos Batistas": 2414308, - "Timbiras": 2112100, - "Timburi": 3554607, - "Timb\u00e9 do Sul": 4218103, - "Timb\u00f3": 4218202, - "Timb\u00f3 Grande": 4218251, - "Timon": 2112209, - "Tim\u00f3teo": 3168705, - "Tio Hugo": 4321469, - "Tiradentes": 3168804, - "Tiradentes do Sul": 4321477, - "Tiros": 3168903, - "Tobias Barreto": 2807402, - "Tocantins": 3169000, - "Tocantin\u00f3polis": 1721208, - "Tocant\u00ednia": 1721109, - "Tocos do Moji": 3169059, - "Toledo": 3169109, - "Tomar do Geru": 2807501, - "Tomazina": 4127809, - "Tombos": 3169208, - "Tom\u00e9-A\u00e7u": 1508001, - "Tonantins": 1304237, - "Toritama": 2615409, - "Torixor\u00e9u": 5108204, - "Toropi": 4321493, - "Torre de Pedra": 3554656, - "Torres": 4321501, - "Torrinha": 3554706, - "Touros": 2414407, - "Trabiju": 3554755, - "Tracuateua": 1508035, - "Tracunha\u00e9m": 2615508, - "Traipu": 2709202, - "Trairi": 2313500, - "Trair\u00e3o": 1508050, - "Trajano de Moraes": 3305901, - "Tramanda\u00ed": 4321600, - "Travesseiro": 4321626, - "Tremedal": 2931806, - "Trememb\u00e9": 3554805, - "Treviso": 4218350, - "Treze T\u00edlias": 4218509, - "Treze de Maio": 4218400, - "Trindade": 5221403, - "Trindade do Sul": 4321956, - "Triunfo": 2615706, - "Triunfo Potiguar": 2414456, - "Trizidela do Vale": 2112233, - "Trombas": 5221452, - "Trombudo Central": 4218608, - "Tr\u00eas Arroios": 4321634, - "Tr\u00eas Barras": 4218301, - "Tr\u00eas Barras do Paran\u00e1": 4127858, - "Tr\u00eas Cachoeiras": 4321667, - "Tr\u00eas Cora\u00e7\u00f5es": 3169307, - "Tr\u00eas Coroas": 4321709, - "Tr\u00eas Forquilhas": 4321832, - "Tr\u00eas Fronteiras": 3554904, - "Tr\u00eas Lagoas": 5008305, - "Tr\u00eas Marias": 3169356, - "Tr\u00eas Palmeiras": 4321857, - "Tr\u00eas Passos": 4321907, - "Tr\u00eas Pontas": 3169406, - "Tr\u00eas Ranchos": 5221304, - "Tr\u00eas Rios": 3306008, - "Tr\u00eas de Maio": 4321808, - "Tubar\u00e3o": 4218707, - "Tucano": 2931905, - "Tucum\u00e3": 1508084, - "Tucunduva": 4322103, - "Tucuru\u00ed": 1508100, - "Tufil\u00e2ndia": 2112274, - "Tuiuti": 3554953, - "Tumiritinga": 3169505, - "Tunas": 4322152, - "Tunas do Paran\u00e1": 4127882, - "Tuneiras do Oeste": 4127908, - "Tuntum": 2112308, - "Tun\u00e1polis": 4218756, - "Tupaciguara": 3169604, - "Tupanatinga": 2615805, - "Tupanci do Sul": 4322186, - "Tupanciret\u00e3": 4322202, - "Tupandi": 4322251, - "Tuparendi": 4322301, - "Tuparetama": 2615904, - "Tupi Paulista": 3555109, - "Tupirama": 1721257, - "Tupiratins": 1721307, - "Tup\u00e3": 3555000, - "Tup\u00e3ssi": 4127957, - "Turia\u00e7u": 2112407, - "Turil\u00e2ndia": 2112456, - "Turi\u00faba": 3555208, - "Turmalina": 3169703, - "Tururu": 2313559, - "Turu\u00e7u": 4322327, - "Turvel\u00e2ndia": 5221551, - "Turvo": 4218806, - "Turvol\u00e2ndia": 3169802, - "Turv\u00e2nia": 5221502, - "Tut\u00f3ia": 2112506, - "Uarini": 1304260, - "Uau\u00e1": 2932002, - "Ubaitaba": 2932200, - "Ubajara": 2313609, - "Ubaporanga": 3170057, - "Ubarana": 3555356, - "Ubatuba": 3555406, - "Ubat\u00e3": 2932309, - "Uba\u00ed": 3170008, - "Uba\u00edra": 2932101, - "Uberaba": 3170107, - "Uberl\u00e2ndia": 3170206, - "Ubirajara": 3555505, - "Ubirat\u00e3": 4128005, - "Ubiretama": 4322343, - "Ub\u00e1": 3169901, - "Uchoa": 3555604, - "Uiba\u00ed": 2932408, - "Uiramut\u00e3": 1400704, - "Uirapuru": 5221577, - "Uira\u00fana": 2516904, - "Ulian\u00f3polis": 1508126, - "Umari": 2313708, - "Umarizal": 2414506, - "Umba\u00faba": 2807600, - "Umburanas": 2932457, - "Umburatiba": 3170305, - "Umbuzeiro": 2517001, - "Umirim": 2313757, - "Umuarama": 4128104, - "Una": 2932507, - "Una\u00ed": 3170404, - "Uniflor": 4128302, - "Unistalda": 4322376, - "Uni\u00e3o": 2211100, - "Uni\u00e3o Paulista": 3555703, - "Uni\u00e3o da Serra": 4322350, - "Uni\u00e3o da Vit\u00f3ria": 4128203, - "Uni\u00e3o de Minas": 3170438, - "Uni\u00e3o do Oeste": 4218855, - "Uni\u00e3o do Sul": 5108303, - "Uni\u00e3o dos Palmares": 2709301, - "Upanema": 2414605, - "Urandi": 2932606, - "Ura\u00ed": 4128401, - "Urbano Santos": 2112605, - "Uru": 3555901, - "Uruana": 5221700, - "Uruana de Minas": 3170479, - "Uruar\u00e1": 1508159, - "Urua\u00e7u": 5221601, - "Urubici": 4218905, - "Uruburetama": 2313807, - "Urucar\u00e1": 1304302, - "Urucuia": 3170529, - "Urucurituba": 1304401, - "Uruc\u00e2nia": 3170503, - "Uruguaiana": 4322400, - "Uruoca": 2313906, - "Urupema": 4218954, - "Urup\u00e1": 1101708, - "Urup\u00eas": 3556008, - "Urussanga": 4219002, - "Uruta\u00ed": 5221809, - "Uru\u00e7uca": 2932705, - "Uru\u00e7u\u00ed": 2211209, - "Ur\u00e2nia": 3555802, - "Utinga": 2932804, - "Vacaria": 4322509, - "Vale Real": 4322541, - "Vale Verde": 4322525, - "Vale de S\u00e3o Domingos": 5108352, - "Vale do Anari": 1101757, - "Vale do Para\u00edso": 1101807, - "Vale do Sol": 4322533, - "Valente": 2933000, - "Valentim Gentil": 3556107, - "Valen\u00e7a": 2932903, - "Valen\u00e7a do Piau\u00ed": 2211308, - "Valinhos": 3556206, - "Valpara\u00edso": 3556305, - "Valpara\u00edso de Goi\u00e1s": 5221858, - "Vanini": 4322558, - "Vargem": 4219150, - "Vargem Alegre": 3170578, - "Vargem Alta": 3205036, - "Vargem Bonita": 4219176, - "Vargem Grande": 2112704, - "Vargem Grande Paulista": 3556453, - "Vargem Grande do Rio Pardo": 3170651, - "Vargem Grande do Sul": 3556404, - "Varge\u00e3o": 4219101, - "Varginha": 3170701, - "Varjota": 2313955, - "Varj\u00e3o": 5221908, - "Varj\u00e3o de Minas": 3170750, - "Varre-Sai": 3306156, - "Varzedo": 2933174, - "Varzel\u00e2ndia": 3170909, - "Vassouras": 3306206, - "Vazante": 3171006, - "Venda Nova do Imigrante": 3205069, - "Venha-Ver": 2414753, - "Ventania": 4128534, - "Venturosa": 2616001, - "Ven\u00e2ncio Aires": 4322608, - "Vera": 5108501, - "Vera Cruz": 2933208, - "Vera Cruz do Oeste": 4128559, - "Vera Mendes": 2211506, - "Veran\u00f3polis": 4322806, - "Verdejante": 2616100, - "Verdel\u00e2ndia": 3171030, - "Vereda": 2933257, - "Veredinha": 3171071, - "Vermelho Novo": 3171154, - "Vertente do L\u00e9rio": 2616183, - "Vertentes": 2616209, - "Ver\u00ea": 4128609, - "Ver\u00edssimo": 3171105, - "Vespasiano": 3171204, - "Vespasiano Correa": 4322855, - "Viadutos": 4322905, - "Viam\u00e3o": 4323002, - "Viana": 2112803, - "Vian\u00f3polis": 5222005, - "Vicente Dutra": 4323101, - "Vicentina": 5008404, - "Vicentin\u00f3polis": 5222054, - "Victor Graeff": 4323200, - "Vic\u00eancia": 2616308, - "Vidal Ramos": 4219200, - "Videira": 4219309, - "Vieiras": 3171402, - "Vieir\u00f3polis": 2517209, - "Vigia": 1508209, - "Vila Bela da Sant\u00edssima Trindade": 5105507, - "Vila Boa": 5222203, - "Vila Flor": 2415008, - "Vila Flores": 4323309, - "Vila L\u00e2ngaro": 4323358, - "Vila Maria": 4323408, - "Vila Nova do Piau\u00ed": 2211605, - "Vila Nova do Sul": 4323457, - "Vila Nova dos Mart\u00edrios": 2112852, - "Vila Pav\u00e3o": 3205150, - "Vila Prop\u00edcio": 5222302, - "Vila Rica": 5108600, - "Vila Val\u00e9rio": 3205176, - "Vila Velha": 3205200, - "Vilhena": 1100304, - "Vinhedo": 3556701, - "Viradouro": 3556800, - "Virgem da Lapa": 3171600, - "Virgin\u00f3polis": 3171808, - "Virgol\u00e2ndia": 3171907, - "Virg\u00ednia": 3171709, - "Virmond": 4128658, - "Visconde do Rio Branco": 3172004, - "Viseu": 1508308, - "Vista Alegre": 4323507, - "Vista Alegre do Alto": 3556909, - "Vista Alegre do Prata": 4323606, - "Vista Ga\u00facha": 4323705, - "Vista Serrana": 2505501, - "Vitor Meireles": 4219358, - "Vitorino": 4128708, - "Vitorino Freire": 2113009, - "Vit\u00f3ria": 3205309, - "Vit\u00f3ria Brasil": 3556958, - "Vit\u00f3ria da Conquista": 2933307, - "Vit\u00f3ria das Miss\u00f5es": 4323754, - "Vit\u00f3ria de Santo Ant\u00e3o": 2616407, - "Vit\u00f3ria do Jari": 1600808, - "Vit\u00f3ria do Mearim": 2112902, - "Vit\u00f3ria do Xingu": 1508357, - "Vi\u00e7osa": 2414902, - "Vi\u00e7osa do Cear\u00e1": 2314102, - "Volta Grande": 3172103, - "Volta Redonda": 3306305, - "Votorantim": 3557006, - "Votuporanga": 3557105, - "V\u00e1rzea": 2517100, - "V\u00e1rzea Alegre": 2314003, - "V\u00e1rzea Branca": 2211357, - "V\u00e1rzea Grande": 5108402, - "V\u00e1rzea Nova": 2933158, - "V\u00e1rzea Paulista": 3556503, - "V\u00e1rzea da Palma": 3170800, - "V\u00e1rzea da Ro\u00e7a": 2933059, - "V\u00e1rzea do Po\u00e7o": 2933109, - "Wagner": 2933406, - "Wall Ferraz": 2211704, - "Wanderley": 2933455, - "Wanderl\u00e2ndia": 1722081, - "Wenceslau Braz": 3172202, - "Wenceslau Guimar\u00e3es": 2933505, - "Westfalia": 4323770, - "Witmarsum": 4219408, - "Xambio\u00e1": 1722107, - "Xambr\u00ea": 4128807, - "Xangri-l\u00e1": 4323804, - "Xanxer\u00ea": 4219507, - "Xapuri": 1200708, - "Xavantina": 4219606, - "Xaxim": 4219705, - "Xex\u00e9u": 2616506, - "Xinguara": 1508407, - "Xique-Xique": 2933604, - "Zabel\u00ea": 2517407, - "Zacarias": 3557154, - "Zort\u00e9a": 4219853, - "Z\u00e9 Doca": 2114007, - "\u00c1gua Azul do Norte": 1500347, - "\u00c1gua Boa": 3100609, - "\u00c1gua Branca": 2500106, - "\u00c1gua Clara": 5000203, - "\u00c1gua Comprida": 3100708, - "\u00c1gua Doce": 4200408, - "\u00c1gua Doce do Maranh\u00e3o": 2100154, - "\u00c1gua Doce do Norte": 3200169, - "\u00c1gua Fria": 2900405, - "\u00c1gua Fria de Goi\u00e1s": 5200175, - "\u00c1gua Limpa": 5200209, - "\u00c1gua Nova": 2400406, - "\u00c1gua Preta": 2600401, - "\u00c1gua Santa": 4300059, - "\u00c1guas Belas": 2600500, - "\u00c1guas Formosas": 3100906, - "\u00c1guas Frias": 4200556, - "\u00c1guas Lindas de Goi\u00e1s": 5200258, - "\u00c1guas Mornas": 4200606, - "\u00c1guas Vermelhas": 3101003, - "\u00c1guas da Prata": 3500402, - "\u00c1guas de Chapec\u00f3": 4200507, - "\u00c1guas de Lind\u00f3ia": 3500501, - "\u00c1guas de Santa B\u00e1rbara": 3500550, - "\u00c1guas de S\u00e3o Pedro": 3500600, - "\u00c1guia Branca": 3200136, - "\u00c1lvares Florence": 3501202, - "\u00c1lvares Machado": 3501301, - "\u00c1lvaro de Carvalho": 3501400, - "\u00c1urea": 4301552, - "\u00c2ngulo": 4101150, - "\u00c9rico Cardoso": 2900504, - "\u00d3bidos": 1505106, - "\u00d3leo": 3533809 -} diff --git a/pysus/ftp/__init__.py b/pysus/ftp/__init__.py deleted file mode 100644 index 93d0dd01..00000000 --- a/pysus/ftp/__init__.py +++ /dev/null @@ -1,580 +0,0 @@ -from __future__ import annotations - -import asyncio -import os -import pathlib -from datetime import datetime -from ftplib import FTP -from typing import ( - Any, - Dict, - Final, - List, - Optional, - Protocol, - Tuple, - TypedDict, - TypeVar, - Union, - runtime_checkable, -) - -import humanize -from aioftp import Client -from loguru import logger -from pysus.data.local import Data -from tqdm import tqdm -from typing_extensions import Self - -# Type aliases -PathLike = Union[str, pathlib.Path] -FileContent = Dict[str, Union["Directory", "File"]] -T = TypeVar("T") - -# Constants -CACHEPATH: Final[str] = os.getenv( - "PYSUS_CACHEPATH", os.path.join(str(pathlib.Path.home()), "pysus") -) -__cachepath__: Final[pathlib.Path] = pathlib.Path(CACHEPATH) -__cachepath__.mkdir(exist_ok=True) - - -def to_list(item: Union[T, List[T], Tuple[T, ...], None]) -> List[T]: - """Parse any builtin data type into a list""" - if item is None: - return [] - return [item] if not isinstance(item, (list, tuple)) else list(item) - - -# Cache storage -DIRECTORY_CACHE: Dict[str, "Directory"] = {} - - -class FileInfo(TypedDict): - """File information dictionary type""" - - size: Union[int, str] - type: str - modify: datetime - - -@runtime_checkable -class Downloadable(Protocol): - async def download(self, local_dir: str) -> Data: - """Protocol for downloadable objects""" - ... - - -class FTPSingleton: - """Singleton FTP client manager""" - - _instance: Optional[FTP] = None - - @classmethod - def get_instance(cls) -> FTP: - """Get or create the singleton FTP instance""" - if cls._instance is None or not cls._instance.sock: - cls._instance = FTP("ftp.datasus.gov.br") - cls._instance.login() - return cls._instance - - @classmethod - def close(cls) -> None: - """Close the singleton FTP instance""" - if cls._instance and cls._instance.sock: - cls._instance.close() - cls._instance = None - - -class File: - """ - FTP File representation with improved type safety. - - This class provides methods for interacting with files on the DataSUS FTP - server. It includes functionality for downloading files synchronously and - asynchronously, as well as retrieving file information in a human-readable - format. - - Attributes: - name (str): The name of the file without the extension. - extension (str): The file extension. - basename (str): The full name of the file including the extension. - path (str): The full path to the file on the FTP server. - parent_path (str): The directory path where the file is located on the - FTP server. - __info (FileInfo): Metadata about the file, including size, type, and - modification date. - - Methods: - info() -> Dict[str, str]: - Returns a dictionary with human-readable file information, - including size, type, and modification date. - - download( - local_dir: str = CACHEPATH, _pbar: Optional[tqdm] = None - ) -> Data: - Downloads the file to the specified local directory. If a progress - bar (_pbar) is provided, it updates the progress bar during the - download. - - async_download(local_dir: str = CACHEPATH) -> Data: - Asynchronously downloads the file to the specified local directory. - - _line_parser(file_line: bytes) -> Tuple[str, Dict[str, Any]]: - Static method to parse a line from the FTP LIST command and - extract file information. - """ - - def __init__(self, path: str, name: str, info: FileInfo) -> None: - self.name, self.extension = os.path.splitext(name) - self.basename: str = f"{self.name}{self.extension}" - self.path: str = ( - f"{path}/{self.basename}" - if not path.endswith("/") - else f"{path}{self.basename}" - ) - self.parent_path: str = os.path.dirname(self.path) - self.__info: FileInfo = info - - @property - def info(self) -> Dict[str, str]: - """Returns a dictionary with human-readable file information""" - return { - "size": humanize.naturalsize(self.__info["size"]), - "type": f"{self.extension[1:].upper()} file", - "modify": self.__info["modify"].strftime("%Y-%m-%d %I:%M%p"), - } - - def download( - self, local_dir: str = CACHEPATH, _pbar: Optional[tqdm] = None - ) -> Data: - """Downloads the file to the specified local directory""" - target_dir = pathlib.Path(local_dir) - target_dir.mkdir(exist_ok=True, parents=True) - - filepath = target_dir / self.basename - filesize = int(self.__info["size"]) - - # Check for existing files - for ext in (".parquet", ".dbf", ""): - existing = filepath.with_suffix(ext) - if existing.exists(): - if _pbar: - _pbar.update(filesize - _pbar.n) - return Data(str(existing), _pbar=_pbar) # type: ignore - - if _pbar: - _pbar.unit = "B" - _pbar.unit_scale = True - _pbar.reset(total=filesize) - _pbar.set_description(self.basename) - - try: - ftp = FTPSingleton.get_instance() - with open(filepath, "wb") as output: - - def callback(data: bytes) -> None: - output.write(data) - if _pbar: - _pbar.update(len(data)) - - ftp.retrbinary(f"RETR {self.path}", callback) - - except Exception as exc: - if filepath.exists(): - filepath.unlink() - raise exc - finally: - FTPSingleton.close() - - if _pbar: - _pbar.update(filesize - _pbar.n) - return Data(str(filepath), _pbar=_pbar) # type: ignore - - async def async_download(self, local_dir: str = CACHEPATH) -> Data: - """ - Asynchronously downloads the file to the specified local directory - """ - target_dir = pathlib.Path(local_dir) - target_dir.mkdir(exist_ok=True, parents=True) - filepath = target_dir / self.basename - - # Check existing files - for ext in (".parquet", ".dbf", ""): - existing = filepath.with_suffix(ext) - if existing.exists(): - return Data(str(existing)) # type: ignore - - async with Client.context( - host="ftp.datasus.gov.br", parse_list_line_custom=self._line_parser - ) as client: - await client.login() - await client.download(self.path, str(filepath), write_into=True) - - return Data(str(filepath)) # type: ignore - - @staticmethod - def _line_parser(file_line: bytes) -> Tuple[str, Dict[str, Any]]: - """Static method to parse a line from the FTP LIST command and extract - file information - """ - line = file_line.decode("utf-8") - if "" in line: - date, time, _, *name = line.strip().split() - info = {"size": 0, "type": "dir"} - name = " ".join(name) - else: - date, time, size, name = line.strip().split() - info = {"size": size, "type": "file"} - - modify = datetime.strptime(f"{date} {time}", "%m-%d-%y %I:%M%p") - info["modify"] = modify.strftime("%m/%d/%Y %I:%M%p") - return name, info - - def __str__(self) -> str: - return str(self.basename) - - def __repr__(self) -> str: - return str(self.basename) - - def __hash__(self): - return hash(self.path) - - def __eq__(self, other): - if isinstance(other, File): - return self.path == other.path - return False - - -class Directory: - """ - Directory class with caching and lazy loading. - - The Directory class represents a directory in a file system and includes - mechanisms for caching instances and lazy loading of directory content. - When a Directory instance is created, it normalizes the provided path - and caches the instance. The content of the directory is not loaded - immediately; instead, it is loaded when the `content` property or the - `load` method is accessed or called. - - Attributes: - path (str): The normalized path of the directory. - name (str): The name of the directory. - parent (Directory): The parent directory instance. - loaded (bool): Indicates whether the directory content has been loaded. - __content__ (Dict[str, Union[File, Directory]]): A dictionary - containing the directory's content, with names as keys and File or - Directory instances as values. - - Methods: - _normalize_path(path: str) -> str: Normalizes the given path. - _get_root_directory() -> Directory: Returns the root directory - instance, creating it if necessary. - _init_root_child(name: str) -> None: Initializes a root child - directory. - _init_regular(parent_path: str, name: str) -> None: Initializes a - regular directory. - content() -> List[Union[Directory, File]]: Returns the content of the - directory, loading it if necessary. - load() -> Self: Loads the content of the directory and marks it as - loaded. - """ - - name: str - path: str - parent: "Directory" - loaded: bool - __content__: Dict[str, Union[File, "Directory"]] - - def __new__(cls, path: str, _is_root_child: bool = False) -> "Directory": - normalized_path = os.path.normpath(path) - - # Handle root directory case - if normalized_path == "/": - return cls._get_root_directory() - - # Return cached instance if exists - if normalized_path in DIRECTORY_CACHE: - return DIRECTORY_CACHE[normalized_path] - - # Use os.path.split for reliable path splitting - parent_path, name = os.path.split(normalized_path) - - # Handle empty parent path - if not parent_path: - parent_path = "/" - # Handle parent paths that don't start with / - elif not parent_path.startswith("/"): - parent_path = "/" + parent_path - - # Create new instance - instance = super().__new__(cls) - instance.path = normalized_path - - if _is_root_child: - instance._init_root_child(name) - else: - instance._init_regular(parent_path, name) - - DIRECTORY_CACHE[normalized_path] = instance - return instance - - @staticmethod - def _normalize_path(path: str) -> str: - """Normalizes the given path""" - path = f"/{path}" if not path.startswith("/") else path - return path.removesuffix("/") - - @classmethod - def _get_root_directory(cls) -> Directory: - """Returns the root directory instance, creating it if necessary""" - if "/" not in DIRECTORY_CACHE: - root = super().__new__(cls) - root.parent = root - root.name = "/" - root.path = "/" - root.loaded = False - root.__content__ = {} - DIRECTORY_CACHE["/"] = root - return DIRECTORY_CACHE["/"] - - def _init_root_child(self, name: str) -> None: - """Initializes a root child directory""" - self.parent = DIRECTORY_CACHE["/"] - self.name = name - self.loaded = False - self.__content__ = {} - - def _init_regular(self, parent_path: str, name: str) -> None: - """Initializes a regular directory""" - self.parent = Directory(parent_path) - self.name = name - self.loaded = False - self.__content__ = {} - - @property - def content(self) -> List[Union[Directory, File]]: - """Returns the content of the directory, loading it if necessary""" - if not self.loaded: - self.load() - return list(self.__content__.values()) - - def load(self) -> Self: - """Loads the content of the directory and marks it as loaded""" - self.__content__ |= load_directory_content(self.path) - self.loaded = True - return self - - def reload(self): - """ - Reloads the content of the Directory - """ - self.loaded = False - return self.load() - - def __str__(self) -> str: - return self.path - - def __repr__(self) -> str: - return self.path - - def __hash__(self): - return hash(self.path) - - def __eq__(self, other): - if isinstance(other, Directory): - return self.path == other.path - return False - - -def load_directory_content(path: str) -> FileContent: - """Directory content loading""" - content: FileContent = {} - - try: - ftp = FTPSingleton.get_instance() - ftp.cwd(path) - path = path.removesuffix("/") - - def line_parser(line: str): - if "" in line: - date, time, _, name = line.strip().split(maxsplit=3) - modify = datetime.strptime( - f"{date} {time}", "%m-%d-%y %I:%M%p" - ) - info = {"size": 0, "type": "dir", "modify": modify} - xpath = f"{path}/{name}" - content[name] = Directory(xpath) - else: - date, time, size, name = line.strip().split(maxsplit=3) - modify = datetime.strptime( - f"{date} {time}", "%m-%d-%y %I:%M%p" - ) - info: FileInfo = { - "size": size, - "type": "file", - "modify": modify, - } - content[name] = File(path, name, info) - - ftp.retrlines("LIST", line_parser) - except Exception as exc: - raise exc - finally: - FTPSingleton.close() - - to_remove = [ - name - for name in content - if name.upper().endswith(".DBF") - and name.upper().replace(".DBF", ".DBC") in content - ] - - for name in to_remove: - del content[name] - - return content - - -class Database: - """ - Base class for PySUS databases. Contains common functions - for accessing DataSUS FTP server. With this class, it is - possible to construct database classes for different DataSUS - files, sharing state and functionalities. - - Parameters - ftp [FTP]: ftplib.FTP object for connecting in DataSUS server. - name [str]: database name - paths [list[Directory]]: server paths where the files are located - files [list[Files]]: list of parsed Files from Database content - metadata [dict]: dict containing database's metadata information - - Methods - load(): Loads the database paths content to its own content - describe(file): describes a file according to each database's - spec. Returns a dict with file information - format(file): extracts from file name database related info, such as - year, month, UF and/or other useful info for the DB - get_files(Any): filters files using database related format, depending - on the database's files specs - """ - - ftp: FTP - name: str - paths: Tuple[Directory, ...] - metadata: dict - __content__: Dict[str, Union[Directory, File]] - - def __init__(self) -> None: - self.ftp = FTP("ftp.datasus.gov.br") - self.__content__ = {} - - def __repr__(self) -> str: - return f'{self.name} - {self.metadata["long_name"]}' - - @property - def content(self) -> List[Union[Directory, File]]: - """ - Lists Database content. The `paths` will be loaded if this property is - called or if explicitly using `load()`. To add specific Directory - inside content, `load()` the directory and call `content` again. - """ - if not self.__content__: - logger.info( - "content is not loaded, use `load()` to load default paths" - ) - return [] - return sorted(list(self.__content__.values()), key=str) - - @property - def files(self) -> List[File]: - """ - Lists Files inside content. To load a specific Directory inside - content, just `load()` this directory and list files again. - """ - return [f for f in self.content if isinstance(f, File)] - - def load( - self, - directories: Optional[ - Union[Directory, List[Directory], Tuple[Directory, ...]] - ] = None, - ) -> Database: - """ - Loads specific directories to Database content. Will aggregate the - files found within Directories into Database.content. - """ - if not directories: - directories = list(self.paths) - - directories_list = to_list(directories) - - for directory in directories_list: - if not isinstance(directory, Directory): - raise ValueError("Invalid directory provided.") - - directory.load() - self.__content__.update(directory.__content__) - return self - - def describe(self, file: File) -> dict: - """ - Receives a `File` and returns a dict with its information, - according to the database's specifications. This method is - helpful to return the FTP's file in a humanized format - - Parameters - file [File]: a `File` instance - """ - ... - - def format(self, file: File) -> tuple: - """ - Formats a File based on the database specifications, - extracting its name's parameters given a pattern. - - Parameters - file [File]: a `File` instance - """ - ... - - def get_files(self, *args, **kwargs) -> list[File]: - """ - Filters the list of `File`s according to each database file - pattern, as UFs, Groups, Years, Months, etc. This method will - also be responsible to look for wrong values within the file - pattern and possible extra characters in its basename - """ - ... - - def download( - self, files: List[File], local_dir: str = CACHEPATH - ) -> List[str]: - """ - Downloads a list of Files. - """ - files = to_list(files) - pbar = tqdm(total=len(files), dynamic_ncols=True) - dfiles = [] - for file in files: - if isinstance(file, File): - dfiles.append(file.download(local_dir=local_dir, _pbar=pbar)) - pbar.close() - if len(dfiles) == 1: - return dfiles[0] - return dfiles - - async def async_download( - self, files: List[File], local_dir: str = CACHEPATH - ): - """ - Asynchronously downloads a list of files - """ - - async def download_file(file): - if isinstance(file, File): - await file.async_download(local_dir=local_dir) - - tasks = [download_file(file) for file in files] - await asyncio.gather(*tasks) diff --git a/pysus/ftp/databases/__init__.py b/pysus/ftp/databases/__init__.py deleted file mode 100644 index 8ad52e98..00000000 --- a/pysus/ftp/databases/__init__.py +++ /dev/null @@ -1,34 +0,0 @@ -from .ciha import CIHA -from .cnes import CNES -from .ibge_datasus import IBGEDATASUS -from .pni import PNI -from .sia import SIA -from .sih import SIH -from .sim import SIM -from .sinan import SINAN -from .sinasc import SINASC - -AVAILABLE_DATABASES = [ - CIHA, - CNES, - IBGEDATASUS, - PNI, - SIA, - SIH, - SIM, - SINAN, - SINASC, -] - -__all__ = [ - "CIHA", - "CNES", - "IBGEDATASUS", - "PNI", - "SIA", - "SIH", - "SIM", - "SINAN", - "SINASC", - "AVAILABLE_DATABASES", -] diff --git a/pysus/ftp/databases/ciha.py b/pysus/ftp/databases/ciha.py deleted file mode 100644 index 5c8c43c4..00000000 --- a/pysus/ftp/databases/ciha.py +++ /dev/null @@ -1,104 +0,0 @@ -__all__ = ["CIHA"] - -from typing import List, Optional, Union - -from pysus.ftp import Database, Directory, File -from pysus.ftp.utils import MONTHS, UFs, parse_UFs, to_list, zfill_year - - -class CIHA(Database): - name = "CIHA" - paths = (Directory("/dissemin/publicos/CIHA/201101_/Dados"),) - metadata = { - "long_name": "Comunicação de Internação Hospitalar e Ambulatorial", - "source": "http://ciha.datasus.gov.br/CIHA/index.php", - "description": ( - "A CIHA foi criada para ampliar o processo de planejamento, " - "programação, controle, avaliação e regulação da assistência à " - "saúde permitindo um conhecimento mais abrangente e profundo dos " - "perfis nosológico e epidemiológico da população brasileira, da " - "capacidade instalada e do potencial de produção de serviços do " - "conjunto de estabelecimentos de saúde do País. O sistema permite " - "o acompanhamento das ações e serviços de saúde custeados " - "por: planos privados de assistência à saúde; planos públicos; " - "pagamento particular por pessoa física; pagamento particular por " - "pessoa jurídica; programas e projetos federais (PRONON, PRONAS, " - "PROADI); recursos próprios das secretarias municipais e estaduais" - " de saúde; DPVAT; gratuidade e, a partir da publicação da " - "Portaria GM/MS nº 2.905/2022, consórcios públicos. As " - "informações registradas na CIHA servem como base para o processo " - "de Certificação de Entidades Beneficentes de Assistência Social " - "em Saúde (CEBAS) e para monitoramento dos programas PRONAS e " - "PRONON" - ), - } - groups = { - "CIHA": "Comunicação de Internação Hospitalar e Ambulatorial", - } - - def describe(self, file: File): - if not isinstance(file, File): - return file - - if file.extension.upper() in [".DBC", ".DBF"]: - group, _uf, year, month = self.format(file) - - try: - uf = UFs[_uf] - except KeyError: - uf = _uf - - description = { - "name": str(file.basename), - "group": self.groups[group], - "uf": uf, - "month": MONTHS[int(month)], - "year": zfill_year(year), - "size": file.info["size"], - "last_update": file.info["modify"], - } - - return description - return file - - def format(self, file: File) -> tuple: - group, _uf = file.name[:4].upper(), file.name[4:6].upper() - year, month = file.name[-4:-2], file.name[-2:] - return group, _uf, zfill_year(year), month - - def get_files( - self, - uf: Optional[Union[List[str], str]] = None, - year: Optional[Union[list, str, int]] = None, - month: Optional[Union[list, str, int]] = None, - group: Union[List[str], str] = "CIHA", - ) -> List[File]: - files = list( - filter( - lambda f: f.extension.upper() in [".DBC", ".DBF"], self.files - ) - ) - - groups = [gr.upper() for gr in to_list(group)] - - if not all(gr in list(self.groups) for gr in groups): - raise ValueError( - "Unknown CIHA Group(s): " - f"{set(groups).difference(list(self.groups))}" - ) - - files = list(filter(lambda f: self.format(f)[0] in groups, files)) - - if uf: - ufs = parse_UFs(uf) - files = list(filter(lambda f: self.format(f)[1] in ufs, files)) - - if year or str(year) in ["0", "00"]: - years = [zfill_year(str(m)[-2:]) for m in to_list(year)] - files = list(filter(lambda f: self.format(f)[2] in years, files)) - - if month: - months = [str(y)[-2:].zfill(2) for y in to_list(month)] - files = list(filter(lambda f: self.format(f)[3] in months, files)) - - return files diff --git a/pysus/ftp/databases/cnes.py b/pysus/ftp/databases/cnes.py deleted file mode 100644 index 1e070be7..00000000 --- a/pysus/ftp/databases/cnes.py +++ /dev/null @@ -1,137 +0,0 @@ -__all__ = ["CNES"] - -from typing import List, Optional, Union - -from pysus.ftp import Database, Directory, File -from pysus.ftp.utils import MONTHS, UFs, parse_UFs, to_list, zfill_year - - -class CNES(Database): - name = "CNES" - paths = (Directory("/dissemin/publicos/CNES/200508_/Dados"),) - metadata = { - "long_name": "Cadastro Nacional de Estabelecimentos de Saúde", - "source": "https://cnes.datasus.gov.br/", - "description": ( - "O Cadastro Nacional de Estabelecimentos de Saúde (CNES) é o " - "sistema de informação oficial de cadastramento de informações " - "de todos os estabelecimentos de saúde no país, independentemente " - "de sua natureza jurídica ou de integrarem o Sistema Único de " - "Saúde (SUS). Trata-se do cadastro oficial do Ministério da " - "Saúde (MS) no tocante à realidade da capacidade instalada e " - "mão-de-obra assistencial de saúde no Brasil em estabelecimentos " - "de saúde públicos ou privados, com convênio SUS ou não." - ), - } - groups = { - "DC": "Dados Complementares", - "EE": "Estabelecimento de Ensino", - "EF": "Estabelecimento Filantrópico", - "EP": "Equipes", - "EQ": "Equipamentos", - "GM": "Gestão e Metas", - "HB": "Habilitação", - "IN": "Incentivos", - "LT": "Leitos", - "PF": "Profissional", - "RC": "Regra Contratual", - "SR": "Serviço Especializado", - "ST": "Estabelecimentos", - } - __loaded__ = set() - - def load( - self, - groups: Union[str, List[str]] = None, - ): - """ - Loads CNES Groups into content. Will convert the files and directories - found within FTP Directories into self.content - """ - if not self.__content__: - self.paths[0].load() - self.__content__ |= self.paths[0].__content__ - - if groups: - groups = to_list(groups) - - if not all( - group in self.groups for group in [gr.upper() for gr in groups] - ): - raise ValueError( - "Unknown CNES group(s): " - f"{set(groups).difference(self.groups)}" - ) - - for group in groups: - group = group.upper() - if group not in self.__loaded__: - directory = self.__content__[group] - directory.load() - self.__content__ |= directory.__content__ - self.__loaded__.add(directory.name) - return self - - def describe(self, file: File) -> dict: - if not isinstance(file, File): - return {} - - if file.name == "GMufAAmm": - # Leftover - return {} - - if file.extension.upper() in [".DBC", ".DBF"]: - group, _uf, year, month = self.format(file) - - try: - uf = UFs[_uf] - except KeyError: - uf = _uf - - description = { - "name": str(file.basename), - "group": self.groups[group], - "uf": uf, - "month": MONTHS[int(month)], - "year": zfill_year(year), - "size": file.info["size"], - "last_update": file.info["modify"], - } - - return description - return {} - - def format(self, file: File) -> tuple: - group, _uf = file.name[:2].upper(), file.name[2:4].upper() - year, month = file.name[-4:-2], file.name[-2:] - return group, _uf, zfill_year(year), month - - def get_files( - self, - group: Union[List[str], str], - uf: Optional[Union[List[str], str]] = None, - year: Optional[Union[list, str, int]] = None, - month: Optional[Union[list, str, int]] = None, - ) -> List[File]: - if not group: - raise ValueError("At least one CNES group is required") - - groups = [gr.upper() for gr in to_list(group)] - - self.load(groups) - - files = list(filter(lambda f: f.name[:2] in groups, self.files)) - - if uf: - ufs = parse_UFs(uf) - files = list(filter(lambda f: f.name[2:4] in ufs, files)) - - if year or str(year) in ["0", "00"]: - years = [str(m)[-2:].zfill(2) for m in to_list(year)] - files = list(filter(lambda f: f.name[-4:-2] in years, files)) - - if month: - months = [str(y)[-2:].zfill(2) for y in to_list(month)] - files = list(filter(lambda f: f.name[-2:] in months, files)) - - return files diff --git a/pysus/ftp/databases/ibge_datasus.py b/pysus/ftp/databases/ibge_datasus.py deleted file mode 100644 index d1547ae5..00000000 --- a/pysus/ftp/databases/ibge_datasus.py +++ /dev/null @@ -1,88 +0,0 @@ -__all__ = ["IBGEDATASUS"] - -from typing import List, Literal, Optional, Union - -from pysus.ftp import Database, Directory, File -from pysus.ftp.utils import zfill_year - - -class IBGEDATASUS(Database): - name = "IBGE-DataSUS" - paths = ( - Directory("/dissemin/publicos/IBGE/POP"), - Directory("/dissemin/publicos/IBGE/censo"), - Directory("/dissemin/publicos/IBGE/POPTCU"), - Directory("/dissemin/publicos/IBGE/projpop"), - # Directory("/dissemin/publicos/IBGE/Auxiliar") # this has a different file name pattern # noqa - ) - metadata = { - "long_name": "Populaçao Residente, Censos, Contagens " - "Populacionais e Projeçoes Intercensitarias", - "source": "ftp://ftp.datasus.gov.br/dissemin/publicos/IBGE", - "description": ( - "São aqui apresentados informações sobre a população residente, " - "estratificadas por município, faixas etárias e sexo, obtidas a " - "partir dos Censos Demográficos, Contagens Populacionais " - "e Projeções Intercensitárias." - ), - } - - def describe(self, file: File) -> dict: - if file.extension.upper() in [".ZIP"]: - year = file.name.split(".")[0][-2:] - description = { - "name": str(file.basename), - "year": zfill_year(year), - "size": file.info["size"], - "last_update": file.info["modify"], - } - return description - elif file.extension.upper() == ".DBF": - year = file.name[-2:] - description = { - "name": str(file.basename), - "year": zfill_year(year), - "size": file.info["size"], - "last_update": file.info["modify"], - } - return description - return {} - - def format(self, file: File) -> tuple: - return (file.name[-2:],) - - def get_files( - self, - source: Literal["POP", "censo", "POPTCU", "projpop"] = "POPTCU", - year: Optional[Union[str, int, list]] = None, - *args, - **kwargs, - ) -> List[File]: - sources = ["POP", "censo", "POPTCU", "projpop"] - source_dir = None - - for dir in self.paths: - if source in sources and source in dir.path: - source_dir = dir - - if not source_dir: - raise ValueError(f"Unkown source {source}. Options: {sources}") - - files = source_dir.content - - if year: - if isinstance(year, (str, int)): - files = [ - f - for f in files - if self.describe(f)["year"] == zfill_year(year) - ] - elif isinstance(year, list): - files = [ - f - for f in files - if str(self.describe(f)["year"]) - in [str(zfill_year(y)) for y in year] - ] - - return files diff --git a/pysus/ftp/databases/pni.py b/pysus/ftp/databases/pni.py deleted file mode 100644 index 37cf8484..00000000 --- a/pysus/ftp/databases/pni.py +++ /dev/null @@ -1,99 +0,0 @@ -__all__ = ["PNI"] - -from typing import List, Literal, Optional, Union - -from pysus.ftp import Database, Directory, File -from pysus.ftp.utils import UFs, parse_UFs, to_list, zfill_year - - -class PNI(Database): - name = "PNI" - paths = (Directory("/dissemin/publicos/PNI/DADOS"),) - metadata = { - "long_name": ( - "Sistema de Informações do Programa Nacional de Imunizações" - ), - "source": ( - "https://datasus.saude.gov.br/acesso-a-informacao/morbidade-hospitalar-do-sus-sih-sus/", # noqa - "https://datasus.saude.gov.br/acesso-a-informacao/producao-hospitalar-sih-sus/", # noqa - ), - "description": ( - "O SI-PNI é um sistema desenvolvido para possibilitar aos " - "gestores envolvidos no Programa Nacional de Imunização, a " - "avaliação dinâmica do risco quanto à ocorrência de surtos ou " - "epidemias, a partir do registro dos imunobiológicos aplicados e " - "do quantitativo populacional vacinado, agregados por faixa " - "etária, período de tempo e área geográfica. Possibilita também " - "o controle do estoque de imunobiológicos necessário aos " - "administradores que têm a incumbência de programar sua aquisição " - "e distribuição. Controla as indicações de aplicação de " - "vacinas de imunobiológicos especiais e seus eventos adversos, " - "dentro dos Centros de Referências em imunobiológicos especiais." - ), - } - groups = { - "CPNI": "Cobertura Vacinal", # TODO: may be incorrect - "DPNI": "Doses Aplicadas", # TODO: may be incorrect - } - - def describe(self, file: File) -> dict: - if file.extension.upper() in [".DBC", ".DBF"]: - group, _uf, year = self.format(file) - - try: - uf = UFs[_uf] - except KeyError: - uf = _uf - - description = { - "name": file.basename, - "group": self.groups[group], - "uf": uf, - "year": zfill_year(year), - "size": file.info["size"], - "last_update": file.info["modify"], - } - - return description - return {} - - def format(self, file: File) -> tuple: - - if len(file.name) != 8: - raise ValueError(f"Can't format {file.name}") - - n = file.name - group, _uf, year = n[:4], n[4:6], n[-2:] - return group, _uf, zfill_year(year) - - def get_files( - self, - group: Union[list, Literal["CNPI", "DPNI"]], - uf: Optional[Union[List[str], str]] = None, - year: Optional[Union[list, str, int]] = None, - ) -> List[File]: - files = list( - filter( - lambda f: f.extension.upper() in [".DBC", ".DBF"], self.files - ) - ) - - groups = [gr.upper() for gr in to_list(group)] - - if not all(gr in list(self.groups) for gr in groups): - raise ValueError( - "Unknown PNI Group(s): " - f"{set(groups).difference(list(self.groups))}" - ) - - files = list(filter(lambda f: self.format(f)[0] in groups, files)) - - if uf: - ufs = parse_UFs(uf) - files = list(filter(lambda f: self.format(f)[1] in ufs, files)) - - if year or str(year) in ["0", "00"]: - years = [zfill_year(str(m)[-2:]) for m in to_list(year)] - files = list(filter(lambda f: self.format(f)[2] in years, files)) - - return files diff --git a/pysus/ftp/databases/sia.py b/pysus/ftp/databases/sia.py deleted file mode 100644 index 76b5dd7b..00000000 --- a/pysus/ftp/databases/sia.py +++ /dev/null @@ -1,123 +0,0 @@ -__all__ = ["SIA"] - -from typing import List, Optional, Union - -from pysus.ftp import Database, Directory, File -from pysus.ftp.utils import MONTHS, UFs, parse_UFs, to_list, zfill_year - - -class SIA(Database): - name = "SIA" - paths = ( - Directory("/dissemin/publicos/SIASUS/199407_200712/Dados"), - Directory("/dissemin/publicos/SIASUS/200801_/Dados"), - ) - metadata = { - "long_name": "Sistema de Informações Ambulatoriais", - "source": "http://sia.datasus.gov.br/principal/index.php", - "description": ( - "O Sistema de Informação Ambulatorial (SIA) foi instituído pela " - "Portaria GM/MS n.º 896 de 29 de junho de 1990. Originalmente, o " - "SIA foi concebido a partir do projeto SICAPS (Sistema de " - "Informação e Controle Ambulatorial da Previdência Social), em " - "que os conceitos, os objetivos e as diretrizes criados para o " - "desenvolvimento do SICAPS foram extremamente importantes e " - "amplamente utilizados para o desenvolvimento do SIA, tais" - " como: (i) o acompanhamento das programações físicas e " - "orçamentárias; (ii) o acompanhamento das ações de saúde " - "produzidas; (iii) a agilização do pagamento e controle " - "orçamentário e financeiro; e (iv) a formação de banco de dados " - "para contribuir com a construção do SUS." - ), - } - groups = { - "AB": "APAC de Cirurgia Bariátrica", - "ABO": "APAC de Acompanhamento Pós Cirurgia Bariátrica", - "ACF": "APAC de Confecção de Fístula", - "AD": "APAC de Laudos Diversos", - "AM": "APAC de Medicamentos", - "AMP": "APAC de Acompanhamento Multiprofissional", - "AN": "APAC de Nefrologia", - "AQ": "APAC de Quimioterapia", - "AR": "APAC de Radioterapia", - "ATD": "APAC de Tratamento Dialítico", - "BI": "Boletim de Produção Ambulatorial individualizado", - "IMPBO": "", # TODO - "PA": "Produção Ambulatorial", - "PAM": "", # TODO - "PAR": "", # TODO - "PAS": "", # TODO - "PS": "RAAS Psicossocial", - "SAD": "RAAS de Atenção Domiciliar", - } - - def describe(self, file: File) -> dict: - if file.extension.upper() == ".DBC": - group, _uf, year, month = self.format(file) - - try: - uf = UFs[_uf] - except KeyError: - uf = _uf - - description = { - "name": str(file.basename), - "group": self.groups[group], - "uf": uf, - "month": MONTHS[int(month)], - "year": zfill_year(year), - "size": file.info["size"], - "last_update": file.info["modify"], - } - - return description - return {} - - def format(self, file: File) -> tuple: - if file.extension.upper() in [".DBC", ".DBF"]: - digits = "".join([d for d in file.name if d.isdigit()]) - if "_" in file.name: - name, _ = file.name.split("_") - digits = "".join([d for d in name if d.isdigit()]) - chars, _ = file.name.split(digits) - year, month = digits[:2], digits[2:] - group, uf = chars[:-2].upper(), chars[-2:].upper() - return group, uf, zfill_year(year), month - return () - - def get_files( - self, - group: Union[List[str], str], - uf: Optional[Union[List[str], str]] = None, - year: Optional[Union[list, str, int]] = None, - month: Optional[Union[list, str, int]] = None, - ) -> List[File]: - files = list( - filter( - lambda f: f.extension.upper() in [".DBC", ".DBF"], self.files - ) - ) - - groups = [gr.upper() for gr in to_list(group)] - - if not all(gr in list(self.groups) for gr in groups): - raise ValueError( - "Unknown SIA Group(s): " - f"{set(groups).difference(list(self.groups))}" - ) - - files = list(filter(lambda f: self.format(f)[0] in groups, files)) - - if uf: - ufs = parse_UFs(uf) - files = list(filter(lambda f: self.format(f)[1] in ufs, files)) - - if year or str(year) in ["0", "00"]: - years = [zfill_year(str(m)[-2:]) for m in to_list(year)] - files = list(filter(lambda f: self.format(f)[2] in years, files)) - - if month: - months = [str(y)[-2:].zfill(2) for y in to_list(month)] - files = list(filter(lambda f: self.format(f)[3] in months, files)) - - return files diff --git a/pysus/ftp/databases/sih.py b/pysus/ftp/databases/sih.py deleted file mode 100644 index 97757d8c..00000000 --- a/pysus/ftp/databases/sih.py +++ /dev/null @@ -1,106 +0,0 @@ -__all__ = ["SIH"] - -from typing import List, Optional, Union - -from pysus.ftp import Database, Directory, File -from pysus.ftp.utils import MONTHS, UFs, parse_UFs, to_list, zfill_year - - -class SIH(Database): - name = "SIH" - paths = ( - Directory("/dissemin/publicos/SIHSUS/199201_200712/Dados"), - Directory("/dissemin/publicos/SIHSUS/200801_/Dados"), - ) - metadata = { - "long_name": "Sistema de Informações Hospitalares", - "source": ( - "https://datasus.saude.gov.br/acesso-a-informacao/morbidade-hospitalar-do-sus-sih-sus/", # noqa - "https://datasus.saude.gov.br/acesso-a-informacao/producao-hospitalar-sih-sus/", # noqa - ), - "description": ( - "A finalidade do AIH (Sistema SIHSUS) é a de transcrever todos os " - "atendimentos que provenientes de internações hospitalares que " - "foram financiadas pelo SUS, e após o processamento, gerarem " - "relatórios para os gestores que lhes possibilitem fazer os " - "pagamentos dos estabelecimentos de saúde. Além disso, o nível " - "Federal recebe mensalmente uma base de dados de todas as " - "internações autorizadas (aprovadas ou não para pagamento) para " - "que possam ser repassados às Secretarias de Saúde os valores de " - "Produção de Média e Alta complexidade além dos valores de CNRAC, " - "FAEC e de Hospitais Universitários – em suas variadas formas de " - "contrato de gestão." - ), - } - groups = { - "RD": "AIH Reduzida", - "RJ": "AIH Rejeitada", - "ER": "AIH Rejeitada com erro", - "SP": "Serviços Profissionais", - "CH": "Cadastro Hospitalar", - "CM": "", # TODO - } - - def describe(self, file: File) -> dict: - if file.extension.upper() in [".DBC", ".DBF"]: - group, _uf, year, month = self.format(file) - - try: - uf = UFs[_uf] - except KeyError: - uf = _uf - - description = { - "name": file.basename, - "group": self.groups[group], - "uf": uf, - "month": MONTHS[int(month)], - "year": zfill_year(year), - "size": file.info["size"], - "last_update": file.info["modify"], - } - - return description - return {} - - def format(self, file: File) -> tuple: - group, _uf = file.name[:2].upper(), file.name[2:4].upper() - year, month = file.name[-4:-2], file.name[-2:] - return group, _uf, zfill_year(year), month - - def get_files( - self, - group: Union[List[str], str], - uf: Optional[Union[List[str], str]] = None, - year: Optional[Union[list, str, int]] = None, - month: Optional[Union[list, str, int]] = None, - ) -> List[File]: - files = list( - filter( - lambda f: f.extension.upper() in [".DBC", ".DBF"], self.files - ) - ) - - groups = [gr.upper() for gr in to_list(group)] - - if not all(gr in list(self.groups) for gr in groups): - raise ValueError( - f"Unknown SIH Group(s): " - f"{set(groups).difference(list(self.groups))}" - ) - - files = list(filter(lambda f: self.format(f)[0] in groups, files)) - - if uf: - ufs = parse_UFs(uf) - files = list(filter(lambda f: self.format(f)[1] in ufs, files)) - - if year or str(year) in ["0", "00"]: - years = [zfill_year(str(m)[-2:]) for m in to_list(year)] - files = list(filter(lambda f: self.format(f)[2] in years, files)) - - if month: - months = [str(y)[-2:].zfill(2) for y in to_list(month)] - files = list(filter(lambda f: self.format(f)[3] in months, files)) - - return files diff --git a/pysus/ftp/databases/sim.py b/pysus/ftp/databases/sim.py deleted file mode 100644 index 83134a49..00000000 --- a/pysus/ftp/databases/sim.py +++ /dev/null @@ -1,69 +0,0 @@ -__all__ = ["SIM"] - -from typing import List, Optional, Union - -from pysus.ftp import Database, Directory, File -from pysus.ftp.utils import UFs, parse_UFs, to_list, zfill_year - - -class SIM(Database): - name = "SIM" - paths = ( - Directory("/dissemin/publicos/SIM/CID10/DORES"), - Directory("/dissemin/publicos/SIM/CID9/DORES"), - ) - metadata = { - "long_name": "Sistema de Informação sobre Mortalidade", - "source": "http://sim.saude.gov.br", - "description": "", - } - groups = {"CID10": "DO", "CID9": "DOR"} - - def describe(self, file: File) -> dict: - group, _uf, year = self.format(file) - _groups = {v: k for k, v in self.groups.items()} - - try: - uf = UFs[_uf] - except KeyError: - uf = _uf - - description = { - "name": str(file.basename), - "uf": uf, - "year": year, - "group": _groups[group], - "size": file.info["size"], - "last_update": file.info["modify"], - } - - return description - - def format(self, file: File) -> tuple: - if "CID9" in str(file.path): - group, _uf, year = file.name[:-4], file.name[-4:-2], file.name[-2:] - else: - group, _uf, year = file.name[:-6], file.name[-6:-4], file.name[-4:] - return group, _uf, zfill_year(year) - - def get_files( - self, - group: Union[list[str], str], - uf: Optional[Union[list[str], str]] = None, - year: Optional[Union[list, str, int]] = None, - ) -> List[File]: - files = self.files - - groups = [self.groups[g.upper()] for g in to_list(group)] - - files = list(filter(lambda f: self.format(f)[0] in groups, files)) - - if uf: - ufs = parse_UFs(uf) - files = list(filter(lambda f: self.format(f)[1] in ufs, files)) - - if year or str(year) in ["0", "00"]: - years = [zfill_year(y) for y in to_list(year)] - files = list(filter(lambda f: self.format(f)[2] in years, files)) - - return files diff --git a/pysus/ftp/databases/sinan.py b/pysus/ftp/databases/sinan.py deleted file mode 100644 index ccc3ae80..00000000 --- a/pysus/ftp/databases/sinan.py +++ /dev/null @@ -1,145 +0,0 @@ -__all__ = ["SINAN"] - -from typing import List, Optional, Union - -from pysus.ftp import Database, Directory, File -from pysus.ftp.utils import to_list, zfill_year - - -class SINAN(Database): - name = "SINAN" - paths = ( - Directory("/dissemin/publicos/SINAN/DADOS/FINAIS"), - Directory("/dissemin/publicos/SINAN/DADOS/PRELIM"), - ) - metadata = { - "long_name": "Doenças e Agravos de Notificação", - "source": "https://portalsinan.saude.gov.br/", - "description": ( - "The Notifiable Diseases Information System - Sinan is primarily" - "fed by the notification and investigation of cases of diseases " - "and conditions listed in the national list of compulsorily " - "notifiable diseases (Consolidation Ordinance No. 4, September 28," - " 2017, Annex). However, states and municipalities are allowed to " - "include other important health problems in their region, such as " - "difilobotriasis in the municipality of São Paulo. Its effective " - "use enables the dynamic diagnosis of the occurrence of an event " - "in the population, providing evidence for causal explanations of " - "compulsorily notifiable diseases and indicating risks to which " - "people are exposed. This contributes to identifying the " - "epidemiological reality of a specific geographical area. Its " - "systematic, decentralized use contributes to the democratization " - "of information, allowing all healthcare professionals to access " - "and make it available to the community. Therefore, it is a " - "relevant tool to assist in health planning, define intervention " - "priorities, and evaluate the impact of interventions." - ), - } - - diseases = { - "ACBI": "Acidente de trabalho com material biológico", - "ACGR": "Acidente de trabalho", - "ANIM": "Acidente por Animais Peçonhentos", - "ANTR": "Atendimento Antirrabico", - "BOTU": "Botulismo", - "CANC": "Cancêr relacionado ao trabalho", - "CHAG": "Doença de Chagas Aguda", - "CHIK": "Febre de Chikungunya", - "COLE": "Cólera", - "COQU": "Coqueluche", - "DENG": "Dengue", - "DERM": "Dermatoses ocupacionais", - "DIFT": "Difteria", - "ESQU": "Esquistossomose", - "EXAN": "Doença exantemáticas", - "FMAC": "Febre Maculosa", - "FTIF": "Febre Tifóide", - "HANS": "Hanseníase", - "HANT": "Hantavirose", - "HEPA": "Hepatites Virais", - "IEXO": "Intoxicação Exógena", - "INFL": "Influenza Pandêmica", - "LEIV": "Leishmaniose Visceral", - "LEPT": "Leptospirose", - "LERD": "LER/Dort", - "LTAN": "Leishmaniose Tegumentar Americana", - "MALA": "Malária", - "MENI": "Meningite", - "MENT": "Transtornos mentais relacionados ao trabalho", - "NTRA": "Notificação de Tracoma", - "PAIR": "Perda auditiva por ruído relacionado ao trabalho", - "PEST": "Peste", - "PFAN": "Paralisia Flácida Aguda", - "PNEU": "Pneumoconioses realacionadas ao trabalho", - "RAIV": "Raiva", - "SDTA": "Surto Doenças Transmitidas por Alimentos", - "SIFA": "Sífilis Adquirida", - "SIFC": "Sífilis Congênita", - "SIFG": "Sífilis em Gestante", - "SRC": "Síndrome da Rubéola Congênia", - "TETA": "Tétano Acidental", - "TETN": "Tétano Neonatal", - "TOXC": "Toxoplasmose Congênita", - "TOXG": "Toxoplasmose Gestacional", - "TRAC": "Inquérito de Tracoma", - "TUBE": "Tuberculose", - "VARC": "Varicela", - "VIOL": "Violência doméstica, sexual e/ou outras violências", - "ZIKA": "Zika Vírus", - } - - def describe(self, file: File) -> dict: - if file.extension.upper() == ".DBC": - dis_code, year = self.format(file) - - description = { - "name": str(file.basename), - "disease": self.diseases[dis_code], - "year": zfill_year(year), - "size": file.info["size"], - "last_update": file.info["modify"], - } - return description - return {} - - def format(self, file: File) -> tuple: - year = file.name[-2:] - - if file.name.startswith("SRC"): - dis_code = file.name[:3] - elif file.name == "LEIBR22": - dis_code = "LEIV" # MISPELLED FILE NAME - elif file.name == "LERBR19": - dis_code = "LERD" # ANOTHER ONE - else: - dis_code = file.name[:4] - - return dis_code, zfill_year(year) - - def get_files( - self, - dis_code: Optional[Union[str, list]] = None, - year: Optional[Union[str, int, list]] = None, - ) -> List[File]: - files = list( - filter( - lambda f: f.extension.upper() in [".DBC", ".DBF"], self.files - ) - ) - - if dis_code: - codes = [c.upper() for c in to_list(dis_code)] - - if codes and not all(code in self.diseases for code in codes): - raise ValueError( - "Unknown disease(s): " - f"{set(codes).difference(set(self.diseases))}" - ) - - files = list(filter(lambda f: self.format(f)[0] in codes, files)) - - if year or str(year) in ["0", "00"]: - years = [zfill_year(str(y)[-2:]) for y in to_list(year)] - files = list(filter(lambda f: self.format(f)[1] in years, files)) - - return files diff --git a/pysus/ftp/databases/sinasc.py b/pysus/ftp/databases/sinasc.py deleted file mode 100644 index aaac7b63..00000000 --- a/pysus/ftp/databases/sinasc.py +++ /dev/null @@ -1,82 +0,0 @@ -__all__ = ["SINASC"] - -from typing import List, Optional, Union - -from pysus.ftp import Database, Directory, File -from pysus.ftp.utils import UFs, parse_UFs, to_list, zfill_year - - -class SINASC(Database): - name = "SINASC" - paths = ( - Directory("/dissemin/publicos/SINASC/NOV/DNRES"), - Directory("/dissemin/publicos/SINASC/ANT/DNRES"), - ) - metadata = { - "long_name": "Sistema de Informações sobre Nascidos Vivos", - "source": "http://sinasc.saude.gov.br/", - "description": "", - } - groups = { - "DN": "Declarações de Nascidos Vivos", - "DNR": "Dados dos Nascidos Vivos por UF de residência", - } - - def describe(self, file: File) -> dict: - if file.extension.upper() == ".DBC": - group, _uf, year = self.format(file) - - try: - uf = UFs[_uf] - except KeyError: - uf = _uf - - description = { - "name": file.basename, - "group": self.groups[group], - "uf": uf, - "year": year, - "size": file.info["size"], - "last_update": file.info["modify"], - } - - return description - return {} - - def format(self, file: File) -> tuple: - if file.name == "DNEX2021": - pass - - year = zfill_year(file.name[-2:]) - charname = "".join([c for c in file.name if not c.isnumeric()]) - group, _uf = charname[:-2], charname[-2:] - return group, _uf, zfill_year(year) - - def get_files( - self, - group: Union[List[str], str], - uf: Optional[Union[List[str], str]] = None, - year: Optional[Union[List, str, int]] = None, - ) -> List[File]: - files = self.files - - groups = to_list(group) - - files = list(filter(lambda f: self.format(f)[0] in groups, files)) - - if uf: - if "EX" in to_list(uf): - # DNEX2021 - if len(to_list(uf)) == 1: - return [] - - to_list(uf).remove("EX") - - ufs = parse_UFs(uf) - files = list(filter(lambda f: self.format(f)[1] in ufs, files)) - - if year or str(year) in ["0", "00"]: - years = [zfill_year(str(y)[-2:]) for y in to_list(year)] - files = list(filter(lambda f: self.format(f)[2] in years, files)) - - return files diff --git a/pysus/ftp/utils.py b/pysus/ftp/utils.py deleted file mode 100644 index b700474d..00000000 --- a/pysus/ftp/utils.py +++ /dev/null @@ -1,28 +0,0 @@ -import datetime -from typing import Union - -from pysus.ftp import to_list -from pysus.utilities.brasil import MONTHS, UFs # noqa - - -def zfill_year(year: Union[str, int]) -> int: - """ - Formats a len(2) year into len(4) with the correct year preffix - E.g: 20 -> 2020; 99 -> 1999 - """ - year = str(year)[-2:].zfill(2) - current_year = str(datetime.datetime.now().year)[-2:] - suffix = "19" if str(year) > current_year else "20" - return int(suffix + str(year)) - - -def parse_UFs(UF: Union[list[str], str]) -> list: - """ - Formats states abbreviations into correct format and retuns a list. - Also checks if there is an incorrect UF in the list. - E.g: ['SC', 'mt', 'ba'] -> ['SC', 'MT', 'BA'] - """ - ufs = [uf.upper() for uf in to_list(UF)] - if not all(uf in list(UFs) for uf in ufs): - raise ValueError(f"Unknown UF(s): {set(ufs).difference(list(UFs))}") - return ufs diff --git a/pysus/management/__init__.py b/pysus/management/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/pysus/management/client.py b/pysus/management/client.py new file mode 100644 index 00000000..660734be --- /dev/null +++ b/pysus/management/client.py @@ -0,0 +1,315 @@ +import os +from collections.abc import Callable +from datetime import datetime +from logging import error +from pathlib import Path + +from anyio import to_thread +from pysus.api.client import PySUS +from pysus.api.dadosgov.models import File as APIFile +from pysus.api.ducklake.catalog import ( + CatalogDataset, + CatalogFile, + ColumnDefinition, + DatasetGroup, + Origin, +) +from pysus.api.extensions import Parquet +from pysus.api.ftp.models import File as FTPFile +from pysus.api.models import BaseRemoteFile + + +class CatalogManager: + def __init__( + self, + access_key: str | None = None, + secret_key: str | None = None, + dadosgov_token: str | None = None, + ): + self.pysus = PySUS() + self.access_key = access_key or os.getenv("ACCESS_KEY") + self.secret_key = secret_key or os.getenv("SECRET_KEY") + self.dadosgov_token = dadosgov_token or os.getenv("DADOSGOV_TOKEN") + + if not access_key or not secret_key: + raise ValueError("s3 credentials are needed") + + async def __aenter__(self): + await self.pysus.__aenter__() + ducklake = await self.pysus.get_ducklake() + await ducklake.login(self.access_key, self.secret_key) + return self + + async def __aexit__(self, exc_type, exc_val, exc_tb): + try: + if not exc_type: + ducklake = self.pysus._ducklake + if ducklake: + await ducklake._upload_catalog() + except Exception as e: # noqa + error(e) + pass + finally: + await self.pysus.__aexit__(exc_type, exc_val, exc_tb) + + async def upload( + self, + file: FTPFile | APIFile, + callback: Callable[[int, int], None] | None = None, + ) -> None: + if not self.pysus._ducklake: + raise ConnectionError("DuckLake is not connected") + + s3_key = ( + f"public/data/{file.client.name.lower()}" + f"/{file.dataset.name.lower()}/{file.basename}" + ) + + with self.pysus._ducklake._Session() as session: + dataset = self._get_or_create_dataset(session, file) + + existing = ( + session.query(CatalogFile) + .filter( + CatalogFile.dataset_id == dataset.id, + CatalogFile.origin_path == str(file.path), + ) + .first() + ) + + if not existing: + existing = ( + session.query(CatalogFile) + .filter( + CatalogFile.path == s3_key, + CatalogFile.dataset_id == dataset.id, + ) + .first() + ) + + if not existing: + existing = ( + session.query(CatalogFile) + .filter( + CatalogFile.path + == str(Path(s3_key).with_suffix(".parquet")), + CatalogFile.dataset_id == dataset.id, + ) + .first() + ) + + if existing and self._should_upload(file, existing): + return + + group = self._get_or_create_group(session, file, dataset) + cat_file = self._get_or_create_file(session, file, dataset, group) + + parquet_ext = await self.pysus.download_to_parquet( + file=file, token=self.dadosgov_token, callback=callback + ) + + with self.pysus._ducklake._Session() as session: + dataset = self._get_or_create_dataset(session, file) + group = self._get_or_create_group(session, file, dataset) + cat_file = self._get_or_create_file(session, file, dataset, group) + + existing_conflict = ( + session.query(CatalogFile) + .filter( + CatalogFile.path == s3_key, + CatalogFile.dataset_id == dataset.id, + ) + .first() + ) + + if existing_conflict: + cat_file = existing_conflict + else: + cat_file = session.merge(cat_file) + + await self._upload_to_s3(parquet_ext.path, s3_key) + + cat_file.path = s3_key + cat_file.size = parquet_ext.size + cat_file.rows = parquet_ext.rows + cat_file.modified = datetime.utcnow() + cat_file.origin_modified = file.modify + cat_file.columns = self._get_or_create_columns( + session, dataset, parquet_ext + ) + + session.commit() + + parquet_ext.path.unlink() + await self.pysus._delete_record(str(parquet_ext.path)) + + async def _upload_to_s3( + self, + local_path: Path, + s3_path: str, + callback: Callable[[int], None] | None = None, + ): + def _do_upload(): + if not self.pysus._ducklake: + raise ConnectionError("DuckLake not connected") + self.pysus._ducklake._s3_client.upload_file( + str(local_path), + self.pysus._ducklake.bucket, + s3_path, + Callback=callback, + ) + + await to_thread.run_sync(_do_upload) + + def _should_upload( + self, + file: BaseRemoteFile, + catalog_file: CatalogFile | None = None, + force: bool = False, + ) -> bool: + if force: + print(f"force=True, uploading {file.basename}") + return True + + if catalog_file is None: + print(f"no catalog record, uploading {file.basename}") + return True + + if catalog_file.origin_modified is None: + print(f"no origin_modified, uploading {file.basename}") + return True + + file_mod = getattr(file, "modify", None) + if file_mod is None: + print(f"no file modify date, uploading {file.basename}") + return True + + if file_mod > catalog_file.origin_modified: + print(f"{catalog_file.origin_modified} newer than ({file_mod})") + return True + + file_size = getattr(file, "size", None) + if file_size and file_size != catalog_file.size: + print(f"size differs: {file_size} != {catalog_file.size}") + return True + + print(f"skipping {file.basename} - already up to date") + return False + + def _get_or_create_dataset( + self, + session, + file: BaseRemoteFile, + ) -> CatalogDataset: + ds_name = file.dataset.name.lower() + ds = session.query(CatalogDataset).filter_by(name=ds_name).first() + if not ds: + is_ftp = file.client.name.lower() == "ftp" + origin = Origin.FTP if is_ftp else Origin.API + ds = CatalogDataset( + name=ds_name, long_name=file.dataset.long_name, origin=origin + ) + session.add(ds) + session.flush() + return ds + + def _get_or_create_group( + self, + session, + file: BaseRemoteFile, + dataset: CatalogDataset, + ) -> DatasetGroup | None: + if file.group is None: + return None + + group_name = file.group.name + group = ( + session.query(DatasetGroup) + .filter_by(name=group_name, dataset_id=dataset.id) + .first() + ) + + if not group: + group = DatasetGroup( + name=group_name, + dataset=dataset, + long_name=file.group.long_name, + ) + session.add(group) + session.flush() + return group + + def _get_or_create_file( + self, + session, + file: BaseRemoteFile, + dataset: CatalogDataset, + group: DatasetGroup | None = None, + ) -> CatalogFile: + query = session.query(CatalogFile).filter( + CatalogFile.dataset_id == dataset.id, + CatalogFile.group_id == (group.id if group else None), + CatalogFile.year == file.year, + CatalogFile.month == file.month, + CatalogFile.state == file.state, + ) + + cat_file = query.first() + + if not cat_file: + cat_file = CatalogFile( + dataset=dataset, + group=group, + path=f"pending/{file.basename}", + size=0, + rows=0, + modified=datetime.min, + origin_path=str(file.path), + year=file.year, + month=file.month, + state=file.state, + ) + session.add(cat_file) + session.flush() + + return cat_file + + def _get_or_create_columns( + self, session, dataset: CatalogDataset, file: Parquet + ) -> list[ColumnDefinition]: + existing_cols = {c.name: c for c in dataset.columns} + result = [] + + schema = file.schema + + type_map = { + "int64": "BIGINT", + "int32": "INTEGER", + "double": "DOUBLE", + "float": "FLOAT", + "bool": "BOOLEAN", + "timestamp[us]": "TIMESTAMP", + "string": "VARCHAR", + "binary": "BLOB", + } + + for col_name in schema.names: + field = schema.field(col_name) + arrow_type = str(field.type) + sql_type = type_map.get(arrow_type, "VARCHAR") + + if col_name not in existing_cols: + new_col = ColumnDefinition( + name=col_name, + dataset=dataset, + type=sql_type, + ) + session.add(new_col) + existing_cols[col_name] = new_col + else: + if existing_cols[col_name].type != sql_type: + existing_cols[col_name].type = sql_type + + result.append(existing_cols[col_name]) + + return result diff --git a/pysus/online_data/CIHA.py b/pysus/online_data/CIHA.py deleted file mode 100644 index 9be4ecc0..00000000 --- a/pysus/online_data/CIHA.py +++ /dev/null @@ -1,55 +0,0 @@ -""" -Download data from CIHA and CIH (Old) -Hospital and Ambulatorial information system -http://ciha.datasus.gov.br/CIHA/index.php?area=03 - -by fccoelho -license: GPL V3 or Later -""" -from typing import Union - -from loguru import logger -from pysus.ftp import CACHEPATH -from pysus.ftp.databases.ciha import CIHA -from pysus.ftp.utils import parse_UFs - -ciha = CIHA().load() - - -def get_available_years( - states: Union[list, str] = None, -) -> dict[str : set[int]]: - """ - Fetch available years for the `states`. - :param states: UF code. E.g: "SP" or ["SP", "RJ"] - :return: list of years in integers - """ - ufs = parse_UFs(states) - - years = dict() - for uf in ufs: - files = ciha.get_files(uf=uf) - years[uf] = set(sorted([ciha.describe(f)["year"] for f in files])) - - if len(set([len(v) for v in years.values()])) > 1: - logger.warning(f"Distinct years were found for UFs: {years}") - - return sorted(list(set.intersection(*map(set, years.values())))) - - -def download( - states: Union[str, list], - years: Union[str, list, int], - months: Union[str, list, int], - data_dir: str = CACHEPATH, -) -> list: - """ - Download CIHA records for state, year and month and returns the Parquets - files as a list of PartquetData - :param months: 1 to 12, can be a list - :param states: 2 letter state code, - :param years: 4 digit integer - """ - - files = ciha.get_files(uf=states, year=years, month=months) - return ciha.download(files, local_dir=data_dir) diff --git a/pysus/online_data/CNES.py b/pysus/online_data/CNES.py deleted file mode 100644 index a3b1188e..00000000 --- a/pysus/online_data/CNES.py +++ /dev/null @@ -1,95 +0,0 @@ -from typing import Union - -from loguru import logger -from pysus.ftp import CACHEPATH -from pysus.ftp.databases.cnes import CNES -from pysus.ftp.utils import parse_UFs - -cnes = CNES().load() - - -group_dict = { - "LT": ["Leitos - A partir de Out/2005", 10, 2005], - "ST": ["Estabelecimentos - A partir de Ago/2005", 8, 2005], - "DC": ["Dados Complementares - A partir de Ago/2005", 8, 2005], - "EQ": ["Equipamentos - A partir de Ago/2005", 8, 2005], - "SR": ["Serviço Especializado - A partir de Ago/2005", 8, 2005], - "HB": ["Habilitação - A partir de Mar/2007", 3, 2007], - "PF": ["Profissional - A partir de Ago/2005", 8, 2005], - "EP": ["Equipes - A partir de Abr/2007", 5, 2007], - "IN": ["Incentivos - A partir de Nov/2007", 11, 2007], - "RC": ["Regra Contratual - A partir de Mar/2007", 3, 2007], - "EE": ["Estabelecimento de Ensino - A partir de Mar/2007", 3, 2007], - "EF": ["Estabelecimento Filantrópico - A partir de Mar/2007", 3, 2007], - "GM": ["Gestão e Metas - A partir de Jun/2007", 6, 2007], -} - - -def get_available_years( - group: str, - states: Union[str, list] = None, -): - """ - Get CNES years for group and/or state and returns a - list of years - :param group: - LT – Leitos - A partir de Out/2005 - ST – Estabelecimentos - A partir de Ago/2005 - DC - Dados Complementares - A partir de Ago/2005 - EQ – Equipamentos - A partir de Ago/2005 - SR - Serviço Especializado - A partir de Ago/2005 - HB – Habilitação - A partir de Mar/2007 - PF – Profissional - A partir de Ago/2005 - EP – Equipes - A partir de Abr/2007 - IN – Incentivos - A partir de Nov/2007 - RC - Regra Contratual - A partir de Mar/2007 - EE - Estabelecimento de Ensino - A partir de Mar/2007 - EF - Estabelecimento Filantrópico - A partir de Mar/2007 - GM - Gestão e Metas - A partir de Jun/2007 - :param states: 2 letter state code, can be a list of UFs - """ - cnes.load(group) - - ufs = parse_UFs(states) - - years = dict() - for uf in ufs: - files = cnes.get_files(group, uf=uf) - years[uf] = sorted([cnes.describe(f)["year"] for f in files]) - - if len(set([len(v) for v in years.values()])) > 1: - logger.warning(f"Distinct years were found for UFs: {years}") - - return sorted(list(set.intersection(*map(set, years.values())))) - - -def download( - group: str, - states: Union[str, list], - years: Union[str, list, int], - months: Union[str, list, int], - data_dir: str = CACHEPATH, -) -> list: - """ - Download CNES records for group, state, year and month and returns a - list of local parquet files - :param group: - LT – Leitos - A partir de Out/2005 - ST – Estabelecimentos - A partir de Ago/2005 - DC - Dados Complementares - A partir de Ago/2005 - EQ – Equipamentos - A partir de Ago/2005 - SR - Serviço Especializado - A partir de Ago/2005 - HB – Habilitação - A partir de Mar/2007 - PF – Profissional - A partir de Ago/2005 - EP – Equipes - A partir de Abr/2007 - IN – Incentivos - A partir de Nov/2007 - RC - Regra Contratual - A partir de Mar/2007 - EE - Estabelecimento de Ensino - A partir de Mar/2007 - EF - Estabelecimento Filantrópico - A partir de Mar/2007 - GM - Gestão e Metas - A partir de Jun/2007 - :param months: 1 to 12, can be a list of years - :param states: 2 letter state code, can be a list of UFs - :param years: 4 digit integer, can be a list of years - """ - files = cnes.get_files(group, states, years, months) - return cnes.download(files, local_dir=data_dir) diff --git a/pysus/online_data/IBGE.py b/pysus/online_data/IBGE.py deleted file mode 100644 index 33fba909..00000000 --- a/pysus/online_data/IBGE.py +++ /dev/null @@ -1,422 +0,0 @@ -""" -Helper functions to download official statistics from IBGE SIDRA -""" - -import ssl # Builtin -from pathlib import Path -from tempfile import TemporaryDirectory -from typing import Literal -from urllib.error import HTTPError -from zipfile import ZipFile - -import pandas as pd -import requests -import urllib3 -from pysus.data.local import ParquetSet -from pysus.ftp.databases.ibge_datasus import IBGEDATASUS - -# requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS = 'ALL:@SECLEVEL=1' - - -APIBASE = "https://servicodados.ibge.gov.br/api/v3/" - -ibge = IBGEDATASUS().load() - - -def get_sidra_table( - table_id, - territorial_level, - geocode="all", - period=None, - variables=None, - classification=None, - categories=None, - format=None, - decimals=None, - headers=None, -): - """ - Wrapper for the SIDRA API. - More information here: http://apisidra.ibge.gov.br/home/ajuda - :param table_id: código da tabela de onde se deseja extrair os dados. - código pode ser obtido aqui: https://sidra.ibge.gov.br/acervo#/S/Q - :param territorial_level: - 1 – Brasil, - 2 – Grande Região, - 3 – Unidade da Federação, - 6 – Município, etc - :param geocode: geocódigo do IBGE: 3304557,3550308 – especifica os - municípios do Rio de Janeiro e São Paulo. - all – especifica todos os municípios. in n3 11,12 - especifica os - municípios contidos nas Unidades da Federação Rondônia e Acre. - - :param period: Os períodos podem ser especificados de forma avulsa, - separados por vírgula (,), em faixas, separados por traço (-), ou de - ambas as formas. Um período pode ter o formato AAAA, de 4 dígitos, que - representa um ano, ou o formato AAAADD, de 6 dígitos, onde AAAA - representa um ano e DD seu correspondente mês (01 a 12), - trimestre (01 a 04), semestre (01 a 02), etc, de acordo com a - periodicidade de divulgação dos dados da tabela. - - Exemplo 1: /p/2008,2010-2012 – 2008, e 2010 a 2012. - - Exemplo 2: /p/201101-201112,201204,201208 – janeiro a dezembro de 2012, - abril de 2012 e agosto de 2012. - - O parâmetro p pode ser seguido pela constante all para especificar - todos os períodos disponíveis. - - Exemplo 3: /p/all - - O parâmetro p pode ser seguido pela constante first e um número de - períodos, indicando os primeiros períodos da lista de períodos - disponíveis (períodos mais antigos). - O número de períodos pode ser omitido quando se tratar de apenas um - aperíodo. - - Exemplo 4: /p/first 12 - - Exemplo 5: /p/first - - O parâmetro p pode ser seguido pela constante last e um número de - períodos, indicando os últimos períodos da série (períodos mais - recentes). O número de períodos pode ser omitido quando se tratar de - apenas um período. - - Exemplo 6: /p/last 12 - - Exemplo 7: /p/last (default, quando não especificado o parâmetro p) - :param variables: As variáveis são especificadas através de seus códigos, - separados por vírgula (,). - A lista de variáveis pode incluir também as variáveis de percentual - geradas automaticamente pelo Sidra (são variáveis cujos códigos são - superiores a 1.000.000). - - Exemplo 1: /v/63,69 – especifica o percentual no mês e o percentual - acumulado no ano do IPCA. - - O parâmetro v pode ser seguido pela constante all para especificar - todas as variáveis da tabela, inclusive as variáveis de percentual - geradas automaticamente pelo Sidra. - - Exemplo 2: /v/all - - O parâmetro v pode ser seguido pela constante allxp para especificar - todas as variáveis da tabela, exceto as variáveis de percentual - geradas automaticamente pelo Sidra. - - Exemplo 3: /v/allxp (default, quando não especificado o parâmetro v) - :param classification: informa o código de uma das classificações da tabela - Como exemplos, temos 1 – Situação do domicílio, 2 – Sexo, 81 – Produto - da lavoura temporária, etc. - :param categories: As categorias são especificadas através de seus - códigos, de forma individual ou para compor uma soma, separadas por - vírgula (,). - As categorias que compõem a soma devem ser separadas por espaço. - - Exemplo 1: /c81/2692,2702,2694 2695 – especifica os produtos da lavoura - temporária arroz, feijão e (batata doce + batata inglesa) - :param format: - :param decimals: - :param headers: `y` para receber o header (valor default, caso o parâmetro - h não seja especificado). `n` para não receber o header. - :return: - """ - base_url = "https://apisidra.ibge.gov.br/values" - query = f"/t/{table_id}/n{territorial_level}/{geocode}" - if period is not None: - query += f"/p/{period}" - if variables is not None: - query += f"/v/{variables}" - if classification is not None: - query += f"/c{classification}" - if categories is not None: - query += f"/{categories}" - if format is not None: - query += f"/f/{format}" - if decimals is not None: - query += f"/d/{decimals}" - if headers is not None: - query += f"/h/{headers}" - - url = base_url + query - - print(f"Requesting data from {url}") - try: - with get_legacy_session() as s, s.get(url) as response: - df = pd.DataFrame(response.json()) - except HTTPError: - response = requests.get(url) - print(f"Consulta falhou: {response.text}") - return None - return df - - -def list_agregados(**kwargs): - """ - Lista de agregados agrupados por pesquisa. Veja - https://servicodados.ibge.gov.br/api/docs/agregados?versao=3#api-Agregados-agregadosGet # noqa - para maiores detalhes - :param kwargs: parâmetros válidos: período, assunto, classificacao, periodicidade,nivel. - :return: Dataframe - """ - url = APIBASE + "agregados?" - url += "&".join([f"{k}={v}" for k, v in kwargs.items()]) - print(f"Fetching Data groupings from {url}") - try: - with get_legacy_session() as s, s.get(url) as response: - table = pd.DataFrame(response.json()) - except requests.exceptions.SSLError as e: - print(f"Failed fetching aggregates: {e}") - return pd.DataFrame() - return table - - -def localidades_por_agregado(agregado: int, nivel: str): - """ - Obtém as localidades associadas ao agregado de acordo com um ou mais níveis - geográficos. - :param agregado: codigo numérico do agregado - :param nivel: Identificador do nível geográfico ao qual pertence as - localidades. Pode conter um ou mais níveis - delimitados pelo caracter | (pipe). p.ex. N7|N6 - :return: - """ - url = APIBASE + f"agregados/{agregado}/localidades/{nivel}" - try: - with get_legacy_session() as s, s.get(url) as response: - table = pd.DataFrame(response.json()) - except Exception as e: - print(f"Could not download from {url}\n{e}") - return None - return table - - -def metadados(agregado: int): - """ - Obtém os metadados associados ao agregado - - :param agregado: Identificador do agregado - """ - url = APIBASE + f"agregados/{agregado}/metadados" - try: - with get_legacy_session() as s, s.get(url) as response: - data = response.json() - except Exception as e: - print(f"Could not download from {url}\n{e}") - return None - return data - - -def lista_periodos(agregado: int): - """ - Obtém os períodos associados ao agregado - :param agregado: - :return: pd.DataFrame com os períodos de atualização - """ - url = APIBASE + f"agregados/{agregado}/periodos" - try: - with get_legacy_session() as s, s.get(url) as response: - table = pd.DataFrame(response.json()) - except Exception: - return None - return table - - -class FetchData: - """ - Obtém o conjunto de variáveis a partir do identificador do agregado, - períodos pesquisados e identificador das variáveis. - - :param agregado: Identificador do agregado. - :param periodos: Período do qual se deseja obter os resultados. Consulte os - identificadores dos períodos na Base de Identificadores. Informe - valores negativos para obter os últimos resultados. Pode conter um ou - mais períodos delimitados pelo caractere | (pipe). - :param variavel: Um ou mais identificadores de variável separados pelo - caractere | (pipe). Caso omitido, assume o valor allxp, que retorna - quaisquer variáveis relacionadas ao agregado. Para saber mais sobre as - variáveis de cada agregado, acesse seus respectivos metadados. - :kwargs: Parâmetros adicionais: - - **localidades**: Uma ou mais localidades delimitadas pelo caractere | - (pipe). No caso do Brasil, o identificador é BR. Para qualquer - outra localidade que NÃO seja Brasil, essa deve seguir o padrão - N[], em que pode ser uma - ou mais localidades separadas por vírgula. É possível ainda - generalizar o resultado, informando a classe da localidade, - conforme os exemplos a seguir: - - https://servicodados.ibge.gov.br/api/v3/agregados/1705/variaveis?localidades=N7 # noqa - - Obtém os resultados referentes às variáveis do agregado 1705 cujas - localidades sejam regiões metropolitanas (N7). - - https://servicodados.ibge.gov.br/api/v3/agregados/1705/variaveis?localidades=N7[3501,3301] # noqa - - Obtém os resultados referentes às variáveis do agregado 1705 cujas - localidades sejam as regiões metropolitanas (N7) de São Paulo e Rio - de Janeiro (3501,3301). Observe que 3501 e 3301 são os - identificadores das regiões metropolitanas de São Paulo e Rio de - Janeiro. Não podem ser confundidos com os identificadores dos - municípios de São Paulo/SP e Rio de Janeiro/RJ, que são 3550308 - e 3304557, respectivamente. - - - **classificacao**: Além de estar relacionado a uma dada localidade e - a um determinado período, os resultados das variáveis podem estar - relacionados a outros conjuntos de dados, que na nomenclatura do - SIDRA recebem o nome de classificação. Como exemplo, considere o - agregado Produção, venda, valor da produção e área colhida da - lavoura temporária nos estabelecimentos agropecuários. Além da - localidade e do período, os resultados produzidos por esse agregado - referem-se aos produtos produzidos, condição do produtor, grupos de - atividades econômicas, grupos de área, grupos de área colhida e - pronafiano, que são as classificações do agregado. Para conhecer as - classificações de cada agregado, acesse seus respectivos metadados. - Aos componentes da classificação, dá-se o nome de categoria. Na - prática, você fará uso das classificações para restringir a - consulta, conforme os exemplos a seguir: - - https://servicodados.ibge.gov.br/api/v3/agregados/1712/variaveis?classificacao=226[4844]&localidades=BR # noqa - - Obtém os resultados referentes às variáveis do agregado 1712 cujo - produto produzido (226) seja abacaxi (4844) no Brasil (BR). - - https://servicodados.ibge.gov.br/api/v3/agregados/1712/variaveis?classificacao=226[4844]|218[4780]&localidades=BR # noqa - - Obtém os resultados referentes às variáveis do agregado 1712 cujo - produto produzido (226) seja abacaxi (4844) e cuja condição do - produtor (218) seja proprietário (4780) no Brasil (BR). - - - **view**: Modo de visualização. Caso deseje que a resposta seja - renderizada usando notação OLAP, configure esse parâmetro com o - valor OLAP - - https://servicodados.ibge.gov.br/api/v3/agregados/1705/variaveis?view=OLAP&localidades=BR. # noqa - A outra opção é configurar esse parâmetro com o valor flat. No modo - flat, o primeiro elemento do array são metadados, de forma que os - resultados vêm a partir do segundo elemento. - """ - - def __init__( - self, agregado: int, periodos: str, variavel: str = "allxp", **kwargs - ): - self.url = ( - APIBASE - + f"agregados/{agregado}/periodos/{periodos}/variaveis/{variavel}?" - ) - self.url += "&".join([f"{k}={v}" for k, v in kwargs.items()]) - self.JSON = None - self._fetch_JSON() - - def _fetch_JSON(self): - try: - print(f"Fetching {self.url}") - with get_legacy_session() as s, s.get(self.url) as response: - self.JSON = response.json() - except Exception as e: - print("Couldn't download data:", e, sep="\n") - - def to_dataframe(self): - return pd.DataFrame(self.JSON) - - -""" -HTTPSConnectionPool(host='servicodados.ibge.gov.br', port=443): - Max retries exceeded with url: - /api/v3/agregados/{...} - Caused by SSLError( - SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] - unsafe legacy renegotiation disabled (_ssl.c:1129)' - -SOLUTION: https://github.com/scrapy/scrapy/issues/5491#issuecomment-1241862323 -""" - - -class CustomHttpAdapter(requests.sessions.HTTPAdapter): - # "Transport adapter" that allows us to use custom ssl_context. - - def __init__(self, ssl_context=None, **kwargs): - self.ssl_context = ssl_context - super().__init__(**kwargs) - - def init_poolmanager(self, connections, maxsize, block=False): - self.poolmanager = urllib3.poolmanager.PoolManager( - num_pools=connections, - maxsize=maxsize, - block=block, - ssl_context=self.ssl_context, - ) - - -def get_legacy_session(): - ctx = ssl.create_default_context(ssl.Purpose.SERVER_AUTH) - ctx.options |= 0x4 # OP_LEGACY_SERVER_CONNECT - session = requests.session() - session.mount("https://", CustomHttpAdapter(ctx)) - return session - - -def get_population( - year: int, - source: Literal["POP", "censo", "POPTCU", "projpop"] = "POPTCU", - censo_data: Literal["ALF", "ESCA", "ESCB", "IDOSO", "RENDA"] = "ALF", -) -> pd.DataFrame: - """ - Get population data from IBGE as shared by DATASUS - :param year: year of the data - :param source: - "POP" - 1992-presente: Estimativas populacionais estratificadas por - idade e sexo. - "censo" - 1991, 2000 e 2010: Censos Demográficos - "POPTCU" - 1992-presente: Estimativas populacionais enviadas para o - TCU, estratificadas por idade e sexo pelo MS/SGEP/Datasus. - "projpop": Estimativas preliminares para os anos intercensitários dos - totais populacionais, estratificadas por idade e sexo pelo - MS/SGEP/Datasus. - :param censo_data: - "ALF": Censo Demográfico - "ESCA": Censo Escolar da Educação Básica - "ESCB": Censo Escolar da Educação Superior - "IDOSO": População de pessoas com 65 anos ou mais - "RENDA": População de pessoas de acordo com a renda familiar - :return: DataFrame with population data - """ - - files = ibge.get_files(year=int(year), source=source) - - if files == []: - return pd.DataFrame() - - if source == "censo": - opts = ["ALF", "ESCA", "ESCB", "IDOSO", "RENDA"] - if not censo_data or censo_data not in opts: - raise ValueError( - f"Incorrect 'censo_data' parameter. Options: {opts}" - ) - file = [f for f in files if censo_data in f.name][0].download() - else: - file = files[0].download() - - if isinstance(file, ParquetSet): - return file.to_dataframe() - - file = Path(str(file)) - - if file.suffix.lower() == ".zip": - return _unzip_to_dataframe(str(file)) - else: - raise NotImplementedError(f"Unkown file type '{file.suffix}'") - - -def _unzip_to_dataframe(file: str) -> pd.DataFrame: - zip_file = ZipFile(file) # pyright: ignore - with TemporaryDirectory() as tempdir: - for file in zip_file.namelist(): - if file.lower().endswith(".csv"): - return pd.read_csv(zip_file.extract(file, tempdir)) - - if file.lower().endswith((".dbf", ".dbc")): - return ParquetSet( - zip_file.extract(file, tempdir) - ).to_dataframe() - - raise ValueError(f"No data found in {zip_file}") diff --git a/pysus/online_data/Infodengue.py b/pysus/online_data/Infodengue.py deleted file mode 100644 index 96ce55f1..00000000 --- a/pysus/online_data/Infodengue.py +++ /dev/null @@ -1,114 +0,0 @@ -import json -import string -from difflib import get_close_matches -from pathlib import Path -from typing import Dict - -import pandas as pd -import unidecode - -# from loguru import logger - -APP_DIR = Path(__file__).resolve(strict=True).parent.parent -CID10 = {"dengue": "A90", "chikungunya": "A92.0", "zika": "A928"} - -with open(APP_DIR / "dataset/geocode_by_cities.json", "r") as f: - geocode_by_cities = json.load(f) - - -def normalize(s): - for p in string.punctuation: - s = s.replace(p, "") - - return unidecode.unidecode(s.lower().strip()) - - -def search_string(substr: str) -> Dict[str, int]: - """ - Fetch geocode of the city name matching to the substring. - - Parameters - ---------- - substr: Part of city name - Returns - ------- - dict: Dictionary with key and values - with city name and IBGE codes of all municipalities in Brazil - """ - normalized_list = [normalize(f) for f in list(geocode_by_cities.keys())] - - matching_cities = [ - get_close_matches(i, normalized_list, n=55) - for i in normalize(substr).split(".") - ] - - return { - key: geocode_by_cities[key] - for key in geocode_by_cities - if normalize(key) in list(*matching_cities) - } - - -def download( - disease: str, - eyw_start: int, - eyw_end: int, - city_name: str, - format="csv", -) -> pd.DataFrame: - """ - Download InfoDengue API data by municipality and disease - in the epidemiological week. - - Parameters - ---------- - disease: Names of the diseases available in the InfoDengue System: - dengue|chikungunya|zika - eyw_start: Epidemiological week start - eyw_end: Epidemiological week end - city_name: Name of the municipalities of Brazil - format="csv": Default data visualization format for the endpoint - Returns - ------- - pd: Pandas dataframe - """ - - geocode = geocode_by_cities.get(city_name) - - if disease not in CID10.keys(): - raise Exception( - f"The diseases available are: {[k for k in CID10.keys()]}" - ) - elif len(str(eyw_start)) != 6 or len(str(eyw_end)) != 6: - raise Exception( - "The epidemiological week must contain 6 digits, " - "started in the year 2010 until 2022. Example: 202248" - ) - elif geocode is None: - list_of_cities = search_string(city_name) - print(f"You must choose one of these city names: {list_of_cities}") - else: - s_yw = str(eyw_start) - e_yw = str(eyw_end) - ew_start, ey_start = s_yw[-2:], s_yw[:4] - ew_end, ey_end = e_yw[-2:], e_yw[:4] - url = "https://info.dengue.mat.br/api/alertcity" - params = ( - "&disease=" - + f"{disease}" - + "&geocode=" - + f"{geocode}" - + "&format=" - + f"{format}" - + "&ew_start=" - + f"{ew_start}" - + "&ew_end=" - + f"{ew_end}" - + "&ey_start=" - + f"{ey_start}" - + "&ey_end=" - + f"{ey_end}" - ) - - url_resp = "?".join([url, params]) - return pd.read_csv(url_resp, index_col="SE").T diff --git a/pysus/online_data/Infogripe.py b/pysus/online_data/Infogripe.py deleted file mode 100644 index bd496c79..00000000 --- a/pysus/online_data/Infogripe.py +++ /dev/null @@ -1,23 +0,0 @@ -""" -Downloads data made available by the Infogripe service -""" - -import pandas as pd - -BASEURL = r"https://gitlab.fiocruz.br/marcelo.gomes/infogripe/-/raw/master/Dados/InfoGripe/" # noqa -DATASETS = { - "Alerta de situação": r"tabela_de_alerta.csv", - "Casos por idade, sexo e virus": r"dados_semanais_faixa_etaria_sexo_virus.csv.gz", # noqa - "Casos Totais e estimativas": r"serie_temporal_com_estimativas_recentes.csv.gz", # noqa - "Valores esperados por localidades": "valores_esperados_por_localidade.csv", # noqa -} - - -def list_datasets(): - return list(DATASETS.keys()) - - -def download(dataset_name): - url = BASEURL + DATASETS[dataset_name] + "?inline=false" - df = pd.read_csv(url, delimiter=";", decimal=",") - return df diff --git a/pysus/online_data/PNI.py b/pysus/online_data/PNI.py deleted file mode 100644 index 2df41c1c..00000000 --- a/pysus/online_data/PNI.py +++ /dev/null @@ -1,49 +0,0 @@ -""" -Download data from the national immunization program -""" -from typing import Literal, Union - -from loguru import logger -from pysus.ftp import CACHEPATH -from pysus.ftp.databases.pni import PNI -from pysus.ftp.utils import parse_UFs - -pni = PNI().load() - - -def get_available_years(group, states): - """ - Fetch available years for `group` and/or `months`. - :param group: PNI group, options are "CPNI" or "DPNI" - :param state: UF code, can be a list. E.g: "SP" or ["SP", "RJ"] - :return: list of available years - """ - ufs = parse_UFs(states) - - years = dict() - for uf in ufs: - files = pni.get_files(group, uf=uf) - years[uf] = set(sorted([pni.describe(f)["year"] for f in files])) - - if len(set([len(v) for v in years.values()])) > 1: - logger.warning(f"Distinct years were found for UFs: {years}") - - return sorted(list(set.intersection(*map(set, years.values())))) - - -def download( - group: Union[list, Literal["CNPI", "DPNI"]], - states: Union[str, list], - years: Union[str, list, int], - data_dir: str = CACHEPATH, -) -> list: - """ - Download imunization records for a given States and years. - :param group: PNI group, options are "CPNI" or "DPNI" - :param state: uf two letter code, can be a list. E.g: "SP" or ["SP", "RJ"] - :param year: year in 4 digits, can be a list. E.g: 1 or [1, 2, 3] - :param data_dir: directory where data will be downloaded - :return: list of downloaded ParquetData - """ - files = pni.get_files(group, uf=states, year=years) - return pni.download(files, local_dir=data_dir) diff --git a/pysus/online_data/SIA.py b/pysus/online_data/SIA.py deleted file mode 100644 index 19ff22a4..00000000 --- a/pysus/online_data/SIA.py +++ /dev/null @@ -1,93 +0,0 @@ -""" -Downloads SIA data from Datasus FTP server -Created on 21/09/18 -by fccoelho -Modified on 22/11/22 -by bcbernardo -license: GPL V3 or Later -""" -from pprint import pprint -from typing import Dict, Tuple, Union - -from loguru import logger -from pysus.ftp import CACHEPATH -from pysus.ftp.databases.sia import SIA -from pysus.ftp.utils import parse_UFs - -sia = SIA().load() - - -group_dict: Dict[str, Tuple[str, int, int]] = { - "PA": ("Produção Ambulatorial", 7, 1994), - "BI": ("Boletim de Produção Ambulatorial individualizado", 1, 2008), - "AD": ("APAC de Laudos Diversos", 1, 2008), - "AM": ("APAC de Medicamentos", 1, 2008), - "AN": ("APAC de Nefrologia", 1, 2008), - "AQ": ("APAC de Quimioterapia", 1, 2008), - "AR": ("APAC de Radioterapia", 1, 2008), - "AB": ("APAC de Cirurgia Bariátrica", 1, 2008), - "ACF": ("APAC de Confecção de Fístula", 1, 2008), - "ATD": ("APAC de Tratamento Dialítico", 1, 2008), - "AMP": ("APAC de Acompanhamento Multiprofissional", 1, 2008), - "SAD": ("RAAS de Atenção Domiciliar", 1, 2008), - "PS": ("RAAS Psicossocial", 1, 2008), -} - - -def get_available_years( - group: str, - states: Union[str, list] = None, -): - """ - Get SIA years for group and/or state and returns a list of years - :param group: - PA: Produção Ambulatorial (7, 1994) - BI: Boletim de Produção Ambulatorial individualizado (1, 2008) - AD: APAC de Laudos Diversos (1, 2008) - AM: APAC de Medicamentos (1, 2008) - AN: APAC de Nefrologia (1, 2008) - AQ: APAC de Quimioterapia (1, 2008) - AR: APAC de Radioterapia (1, 2008) - AB: APAC de Cirurgia Bariátrica (1, 2008) - ACF: APAC de Confecção de Fístula (1, 2008) - ATD: APAC de Tratamento Dialítico (1, 2008) - AMP: APAC de Acompanhamento Multiprofissional (1, 2008) - SAD: RAAS de Atenção Domiciliar (1, 2008) - PS: RAAS Psicossocial (1, 2008) - :param states: 2 letter state code, can be a list of UFs - """ - ufs = parse_UFs(states) - - years = dict() - for uf in ufs: - files = sia.get_files(group, uf=uf) - years[uf] = set(sorted([sia.describe(f)["year"] for f in files])) - - if len(set([len(v) for v in years.values()])) > 1: - logger.warning(f"Distinct years were found for UFs: {years}") - - return sorted(list(set.intersection(*map(set, years.values())))) - - -def show_datatypes(): - pprint(group_dict) - - -def download( - states: Union[str, list], - years: Union[str, list, int], - months: Union[str, list, int], - groups: Union[str, list], - data_dir: str = CACHEPATH, -) -> list: - """ - Download SIASUS records for state year and month and returns dataframe - :param states: 2 letter state code, can be a list - :param years: 4 digit integer, can be a list - :param months: 1 to 12, can be a list - :param data_dir: whether to cache files locally. default is True - :param group: SIA groups. For all groups, refer to `sia.groups` - :return: list of downloaded ParquetData - """ - files = sia.get_files(group=groups, uf=states, year=years, month=months) - return sia.download(files, local_dir=data_dir) diff --git a/pysus/online_data/SIH.py b/pysus/online_data/SIH.py deleted file mode 100644 index 67749f51..00000000 --- a/pysus/online_data/SIH.py +++ /dev/null @@ -1,64 +0,0 @@ -""" -Downloads SIH data from Datasus FTP server -Created on 21/09/18 -by fccoelho -license: GPL V3 or Later -""" -from typing import Union - -from loguru import logger -from pysus.ftp import CACHEPATH -from pysus.ftp.databases.sih import SIH -from pysus.ftp.utils import parse_UFs - -sih = SIH().load() - - -def get_available_years( - group: str, - states: Union[str, list] = None, -) -> list: - """ - Get SIH years for group and/or state and returns a list of years - :param group: - RD: AIH Reduzida - RJ: AIH Rejeitada - ER: AIH Rejeitada com erro - SP: Serviços Profissionais - CH: Cadastro Hospitalar - CM: # TODO - :param states: 2 letter uf code, can be a list. E.g: "SP" or ["SP", "RJ"] - :return: list of available years - """ - ufs = parse_UFs(states) - - years = dict() - for uf in ufs: - files = sih.get_files(group, uf=uf) - years[uf] = set(sorted([sih.describe(f)["year"] for f in files])) - - if len(set([len(v) for v in years.values()])) > 1: - logger.warning(f"Distinct years were found for UFs: {years}") - - return sorted(list(set.intersection(*map(set, years.values())))) - - -def download( - states: Union[str, list], - years: Union[str, list, int], - months: Union[str, list, int], - groups: Union[str, list], - data_dir: str = CACHEPATH, -) -> list: - """ - Download SIH records for state, year and month - :param states: 2 letter state code, can be a list - :param years: 4 digit integer, can be a list - :param months: 1 to 12, can be a list - :param groups: the groups of datasets to be downloaded. - See `sih.groups` - :param data_dir: Directory where parquets will be downloaded. - :return: list with the downloaded files as ParquetData objects - """ - files = sih.get_files(group=groups, uf=states, month=months, year=years) - return sih.download(files, local_dir=data_dir) diff --git a/pysus/online_data/SIM.py b/pysus/online_data/SIM.py deleted file mode 100644 index c021111b..00000000 --- a/pysus/online_data/SIM.py +++ /dev/null @@ -1,288 +0,0 @@ -""" -Download Mortality records from SIM Datasus -Created on 12/12/18 -by fccoelho -license: GPL V3 or Later -""" -import os -from ftplib import FTP, error_perm -from typing import Union - -import pandas as pd -from dbfread import DBF -from loguru import logger -from pysus.ftp import CACHEPATH -from pysus.ftp.databases.sim import SIM -from pysus.ftp.utils import parse_UFs - -sim = SIM().load() - - -def get_available_years( - group: str, - states: Union[str, list] = None, -) -> list: - """ - Get SIH years for group and/or state and returns a list of years - :param group: CID9 or CID10 - :param states: 2 letter uf code, can be a list. E.g: "SP" or ["SP", "RJ"] - :return: list of available years - """ - ufs = parse_UFs(states) - - years = dict() - for uf in ufs: - files = sim.get_files(group, uf=uf) - years[uf] = set(sorted([sim.describe(f)["year"] for f in files])) - - if len(set([len(v) for v in years.values()])) > 1: - logger.warning(f"Distinct years were found for UFs: {years}") - - return sorted(list(set.intersection(*map(set, years.values())))) - - -def download( - groups: Union[str, list], - states: Union[str, list], - years: Union[str, list, int], - data_dir: str = CACHEPATH, -): - """ - Downloads data directly from Datasus ftp server - :param groups: either CID9, CID10 or both - :param states: two-letter state identifier: MG == Minas Gerais - can be a list - :param years: years to download - :return: a list of downloaded files - """ - files = sim.get_files(groups, uf=states, year=years) - return sim.download(files, local_dir=data_dir) - - -def get_CID10_chapters_table(cache=True): - """ - Fetch the CID10 chapters table - :param cache: If set to True, stores data as parquets. - :return: Pandas DataFrame - """ - ftp = FTP("ftp.datasus.gov.br") - ftp.login() - logger.debug( - f"Stablishing connection with ftp.datasus.gov.br.\n{ftp.welcome}" - ) - ftp.cwd("/dissemin/publicos/SIM/CID10/TABELAS") - logger.debug( - "Changing FTP work dir to: /dissemin/publicos/SIM/CID10/TABELAS" - ) - - fname = "CIDCAP10.DBF" - cachefile = os.path.join( - CACHEPATH, "SIM_" + fname.split(".")[0] + "_.parquet" - ) - - if os.path.exists(cachefile): - logger.info(f"Local parquet file found at {cachefile}") - df = pd.read_parquet(cachefile) - - return df - - try: - ftp.retrbinary("RETR {}".format(fname), open(fname, "wb").write) - - except error_perm: - raise Exception("Could not download {}".format(fname)) - - dbf = DBF(fname, encoding="iso-8859-1") - df = pd.DataFrame(list(dbf)) - - if cache: - df.to_parquet(cachefile) - logger.info(f"Data stored as parquet at {cachefile}") - - os.unlink(fname) - logger.debug(f"{fname} removed") - - return df - - -def get_CID10_table(cache=True): - """ - Fetch the CID10 table - :param cache: If set to True, stores data as parquets. - :return: Pandas DataFrame - """ - ftp = FTP("ftp.datasus.gov.br") - ftp.login() - logger.debug( - f"Stablishing connection with ftp.datasus.gov.br.\n{ftp.welcome}" - ) - ftp.cwd("/dissemin/publicos/SIM/CID10/TABELAS") - logger.debug( - "Changing FTP work dir to: /dissemin/publicos/SIM/CID10/TABELAS" - ) - - fname = "CID10.DBF" - cachefile = os.path.join( - CACHEPATH, "SIM_" + fname.split(".")[0] + "_.parquet" - ) - - if os.path.exists(cachefile): - logger.info(f"Local parquet file found at {cachefile}") - df = pd.read_parquet(cachefile) - - return df - - try: - ftp.retrbinary("RETR {}".format(fname), open(fname, "wb").write) - - except error_perm: - raise Exception("Could not download {}".format(fname)) - - dbf = DBF(fname, encoding="iso-8859-1") - df = pd.DataFrame(list(dbf)) - - if cache: - df.to_parquet(cachefile) - logger.info(f"Data stored as parquet at {cachefile}") - - os.unlink(fname) - logger.debug(f"{fname} removed") - - return df - - -def get_CID9_table(cache=True): - """ - Fetch the CID9 table - :param cache: If set to True, stores data as parquets. - :return: Pandas DataFrame - """ - ftp = FTP("ftp.datasus.gov.br") - ftp.login() - logger.debug( - f"Stablishing connection with ftp.datasus.gov.br.\n{ftp.welcome}" - ) - ftp.cwd("/dissemin/publicos/SIM/CID9/TABELAS") - logger.debug( - "Changing FTP work dir to: /dissemin/publicos/SIM/CID9/TABELAS" - ) - - fname = "CID9.DBF" - cachefile = os.path.join( - CACHEPATH, "SIM_" + fname.split(".")[0] + "_.parquet" - ) - - if os.path.exists(cachefile): - logger.info(f"Local parquet file found at {cachefile}") - df = pd.read_parquet(cachefile) - - return df - - try: - ftp.retrbinary("RETR {}".format(fname), open(fname, "wb").write) - - except error_perm: - raise Exception("Could not download {}".format(fname)) - - dbf = DBF(fname, encoding="iso-8859-1") - df = pd.DataFrame(list(dbf)) - - if cache: - df.to_parquet(cachefile) - logger.info(f"Data stored as parquet at {cachefile}") - - os.unlink(fname) - logger.debug(f"{fname} removed") - - return df - - -def get_municipios(cache=True): - """ - Get municipality metadata - :param cache: If set to True, stores data as parquets. - :return: Pandas DataFrame - """ - ftp = FTP("ftp.datasus.gov.br") - ftp.login() - logger.debug( - f"Stablishing connection with ftp.datasus.gov.br.\n{ftp.welcome}" - ) - ftp.cwd("/dissemin/publicos/SIM/CID10/TABELAS") - logger.debug( - "Changing FTP work dir to: /dissemin/publicos/SIM/CID10/TABELAS" - ) - - fname = "CADMUN.DBF" - cachefile = os.path.join( - CACHEPATH, "SIM_" + fname.split(".")[0] + "_.parquet" - ) - - if os.path.exists(cachefile): - logger.info(f"Local parquet file found at {cachefile}") - df = pd.read_parquet(cachefile) - - return df - - try: - ftp.retrbinary("RETR {}".format(fname), open(fname, "wb").write) - - except Exception: - raise Exception("Could not download {}".format(fname)) - - dbf = DBF(fname, encoding="iso-8859-1") - df = pd.DataFrame(list(dbf)) - - if cache: - df.to_parquet(cachefile) - logger.info(f"Data stored as parquet at {cachefile}") - - os.unlink(fname) - logger.debug(f"{fname} removed") - - return df - - -def get_ocupations(cache=True): - """ - Fetch ocupations table - :param cache: If set to True, stores data as parquets. - :return: Pandas DataFrame - """ - ftp = FTP("ftp.datasus.gov.br") - ftp.login() - logger.debug( - f"Stablishing connection with ftp.datasus.gov.br.\n{ftp.welcome}" - ) - ftp.cwd("/dissemin/publicos/SIM/CID10/TABELAS") - logger.debug( - "Changing FTP work dir to: /dissemin/publicos/SIM/CID10/TABELAS" - ) - fname = "TABOCUP.DBF" - cachefile = os.path.join( - CACHEPATH, "SIM_" + fname.split(".")[0] + "_.parquet" - ) - - if os.path.exists(cachefile): - logger.info(f"Local parquet file found at {cachefile}") - df = pd.read_parquet(cachefile) - - return df - - try: - ftp.retrbinary("RETR {}".format(fname), open(fname, "wb").write) - - except Exception: - raise Exception("Could not download {}".format(fname)) - - dbf = DBF(fname, encoding="iso-8859-1") - df = pd.DataFrame(list(dbf)) - - if cache: - df.to_parquet(cachefile) - logger.info(f"Data stored as parquet at {cachefile}") - - os.unlink(fname) - logger.debug(f"{fname} removed") - - return df diff --git a/pysus/online_data/SINAN.py b/pysus/online_data/SINAN.py deleted file mode 100644 index fe5692db..00000000 --- a/pysus/online_data/SINAN.py +++ /dev/null @@ -1,63 +0,0 @@ -from pathlib import Path -from typing import Union - -import pandas as pd -from pysus.ftp import CACHEPATH -from pysus.ftp.databases.sinan import SINAN - -sinan = SINAN().load() - - -def list_diseases() -> dict: - """List available diseases on SINAN""" - return sinan.diseases - - -def get_available_years(disease_code: str) -> list: - """ - Fetch available years for data related to specific disease - :param disease_code: - Disease code. See `SINAN.list_diseases` for valid codes - :return: - A list of DBC files from a specific disease found in the FTP Server. - """ - files = sinan.get_files(dis_code=disease_code) - return sorted(list(set(sinan.describe(f)["year"] for f in files))) - - -def download( - diseases: Union[str, list], - years: Union[str, list, int], - data_path: str = CACHEPATH, -) -> list: - """ - Downloads SINAN data directly from Datasus ftp server. - :param disease: Disease code according to `agravos`. - :param years: 4 digit integer, can be a list of years. - :param data_path: The directory where the file will be downloaded to. - :return: list of downloaded files. - """ - files = sinan.get_files(dis_code=diseases, year=years) - return sinan.download(files, local_dir=data_path) - - -def metadata_df(disease_code: str) -> pd.DataFrame: - metadata_file = ( - Path(__file__).parent.parent - / "metadata" - / "SINAN" - / f"{disease_code}.tar.gz" - ) - if metadata_file.exists(): - df = pd.read_csv( - metadata_file, - compression="gzip", - header=0, - sep=",", - quotechar='"', - ) - - return df.iloc[:, 1:] - else: - print(f"No metadata available for {disease_code}") - return diff --git a/pysus/online_data/SINASC.py b/pysus/online_data/SINASC.py deleted file mode 100644 index 2469d88a..00000000 --- a/pysus/online_data/SINASC.py +++ /dev/null @@ -1,54 +0,0 @@ -""" -Download SINASC data from DATASUS FTP server -Created on 01/11/17 -by fccoelho -license: GPL V3 or Later -""" -from typing import Union - -from loguru import logger -from pysus.ftp import CACHEPATH -from pysus.ftp.databases.sinasc import SINASC -from pysus.ftp.utils import parse_UFs - -sinasc = SINASC().load() - - -def get_available_years(group: str, states: Union[str, list[str]]) -> list: - """ - Get SINASC years for states - :param group: - "DN": "Declarações de Nascidos Vivos", - "DNR": "Dados dos Nascidos Vivos por UF de residência", - :param states: 2 letter UF code, can be a list. E.g: "SP" or ["SP", "RJ"] - :return: list of available years - """ - ufs = parse_UFs(states) - - years = dict() - for uf in ufs: - files = sinasc.get_files(group, uf=uf) - years[uf] = set(sorted([sinasc.describe(f)["year"] for f in files])) - - if len(set([len(v) for v in years.values()])) > 1: - logger.warning(f"Distinct years were found for UFs: {years}") - - return sorted(list(set.intersection(*map(set, years.values())))) - - -def download( - groups: Union[str, list], - states: Union[str, list], - years: Union[str, list, int], - data_dir: str = CACHEPATH, -) -> list: - """ - Downloads data directly from Datasus ftp server - :param groups: either DN, DNR or both - :param states: two-letter state identifier: MG == Minas Gerais, - can be a list - :param years: years to download - :return: list of downloaded files - """ - files = sinasc.get_files(groups, uf=states, year=years) - return sinasc.download(files, local_dir=data_dir) diff --git a/pysus/online_data/__init__.py b/pysus/online_data/__init__.py deleted file mode 100644 index 827a8aad..00000000 --- a/pysus/online_data/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -""" -Created on 21/09/18 -by fccoelho -license: GPL V3 or Later -""" diff --git a/pysus/online_data/territory.py b/pysus/online_data/territory.py deleted file mode 100644 index 404a5ad2..00000000 --- a/pysus/online_data/territory.py +++ /dev/null @@ -1,26 +0,0 @@ -from typing import List, Union - -from pysus.ftp import CACHEPATH, Directory, File - - -def list_tables() -> List[File]: - d = Directory("/territorio/tabelas") - tabelas = [f for f in d.content if "territor" in f.name] - return tabelas - - -def list_maps() -> List[File]: - d = Directory("/territorio/mapas") - mapas = [f for f in d.content if "mapas" in f.name] - return mapas - - -def download(fname: Union[str, list], data_path: str = CACHEPATH): - files = ( - Directory("/territorio/tabelas").content - + Directory("/territorio/mapas").content - ) - for file in files: - if fname in [str(file), file.name]: - # handles suffixed and no suffixed `fname`s - return file.download() diff --git a/pysus/online_data/vaccine.py b/pysus/online_data/vaccine.py deleted file mode 100644 index 77399f7c..00000000 --- a/pysus/online_data/vaccine.py +++ /dev/null @@ -1,116 +0,0 @@ -""" -Download of vacination data. - -This module contains function to download from specific campains: - -- COVID-19 in 2020-2021 Downloaded as described [here](http://opendatasus.saude.gov.br/dataset/b772ee55-07cd-44d8-958f-b12edd004e0b/resource/5916b3a4-81e7-4ad5-adb6-b884ff198dc1/download/manual_api_vacina_covid-19.pdf) # noqa -""" -import json -import os -from json import JSONDecodeError - -import pandas as pd -import requests -from loguru import logger -from pysus.ftp import CACHEPATH -from requests.auth import HTTPBasicAuth - - -def download_covid(uf=None, only_header=False): - """ - Download covid vaccination data for a give UF - :param uf: 'RJ' | 'SP', etc. - :param only_header: Used to see the header of the data before downloading. - :return: dataframe iterator as returned by pandas - `read_csv('Vaccine_temp_.csv.gz', chunksize=5000)` - """ - user = "imunizacao_public" - pwd = "qlto5t&7r_@+#Tlstigi" - url = "https://imunizacao-es.saude.gov.br/_search?scroll=1m" - if uf is None: - query = {"query": {"match_all": {}}, "size": 10000} - UF = "BR" - else: - UF = uf.upper() - query = { - "query": {"match": {"paciente_endereco_uf": UF}}, - "size": 10000, - } - - logger.info(f"Searching for COVID data of {UF}") - tempfile = os.path.join(CACHEPATH, f"Vaccine_temp_{UF}.csv.gz") - if os.path.exists(tempfile): - print( - "loading from cache. Returning an iterator of Dataframes in chunks" - " of 5000." - ) - return pd.read_csv(tempfile, chunksize=5000) - - auth = HTTPBasicAuth(user, pwd) - data_gen = elasticsearch_fetch(url, auth, query) - - if only_header: - df = pd.DataFrame(next(data_gen)) - logger.warning( - f"Downloading data sample for visualization of {df.shape[0]} rows" - ) - return df - - h = 1 - for dt in data_gen: - df = pd.DataFrame(dt) - if h: - df.to_csv(tempfile) - h = 0 - else: - df.to_csv(tempfile, mode="a", header=False) - - logger.info(f"{tempfile} stored at {CACHEPATH}.") - df = pd.read_csv(tempfile, chunksize=5000) - - return df - - -def elasticsearch_fetch(uri, auth, json_body={}): - headers = { - "Content-Type": "application/json", - } - - scroll_id = "" - total = 0 - while True: - if scroll_id: - uri = "https://imunizacao-es.saude.gov.br/_search/scroll" - json_body["scroll_id"] = scroll_id - json_body["scroll"] = "1m" - if "query" in json_body: - del json_body["query"] - # for the continuation of the download, - # query parameter is not allowed - del json_body["size"] - try: - s = requests.Session() - response = s.post(uri, auth=auth, headers=headers, json=json_body) - text = response.text - try: - resp = json.loads(text) - except JSONDecodeError: - resp = text - except Exception as error: - print("\nelasticsearch_fetch() error:", error) - raise error - try: - if resp["hits"]["hits"] == []: - break - except KeyError as e: - logger.error(e) - print(resp) - total += len(resp["hits"]["hits"]) - print(f"Downloaded {total} records\r", end="") - yield [h["_source"] for h in resp["hits"]["hits"]] - if "_scroll_id" in resp: - scroll_id = resp["_scroll_id"] - - -if __name__ == "__main__": - print(download_covid("ba", only_header=True)) diff --git a/pysus/preprocessing/SIM.py b/pysus/preprocessing/SIM.py deleted file mode 100644 index 5db5f784..00000000 --- a/pysus/preprocessing/SIM.py +++ /dev/null @@ -1,188 +0,0 @@ -# -*- coding:utf-8 -*- -""" -This module contains a set of functions to process data on SIM -Created on 16/08/2020 -by gabrielmcf -license: GPL V3 or Later -""" - -__docformat__ = "restructuredtext en" -from decimal import Decimal -from itertools import product - -import numpy as np -import pandas as pd - - -def logical_and_from_dict(dataframe, dictionary): - if dictionary == {}: - return np.array([True] * len(dataframe), dtype=bool) - return np.logical_and.reduce( - [dataframe[k] == v for k, v in dictionary.items()] - ) - - -def relax_filter(dictionary, fields): - for field in reversed(fields): - if field in dictionary: - del dictionary[field] - break - return dictionary - - -def group_and_count( - dataframe, group_columns, count_column="COUNTS", decimal_counts=False -): - """ - Agrupa e conta as variáveis passadas como parâmetro no dataframe. Cria uma - nova coluna de contagem, com o tipo Decimal para possibilitar - redistribuição pro rata posterior e maior precisão. - :param dataframe: dataframe pandas - :param group_columns: lista de string contendo o nome das colunas a serem - agrupadas no dataframe. - :param count_columns: nome da coluna de counts a ser criada. - :return: - """ - counts = ( - dataframe.groupby(group_columns).size().reset_index(name=count_column) - ) - - if decimal_counts: - counts[count_column] = counts[count_column].apply(lambda x: Decimal(x)) - else: - counts[count_column] = counts[count_column].astype("float64") - - return counts - - -def redistribute_missing( - counts, filter_columns, count_column="COUNTS", nan_string="nan" -): - """ - Realiza redistribuição pro rata das contagens do SIM com algum dado - faltante. O dataframe deve conter uma coluna float64 chamada CONTAGEM e as - demais colunas devem ser do tipo category, tendo os dados faltantes em uma - categoria definida pelo parâmetro nan_string. - :param counts: dataframe pandas contendo coluna com soma chamada CONTAGEM - :param filter_columns: variáveis a serem consideradas para filtro de - redistribuição pro rata - :param count_columns: nome da coluna de counts. - :param nan_string: string usada na categoria de dado faltante - :return: - """ - - # Removendo categorias faltantes vazias - for var in filter_columns: - condition_dict = {var: nan_string, count_column: 0.0} - counts = counts[~logical_and_from_dict(counts, condition_dict)] - - # Dataframes de dados faltantes - - variables_dict = [{x: nan_string} for x in filter_columns] - - variables_condition = [ - logical_and_from_dict(counts, x) for x in variables_dict - ] - - # Primeiro item da tupla é != nan, segundo é o == nan - variables_tuples = [(np.logical_not(x), x) for x in variables_condition] - variables_product = list(product(*variables_tuples)) - - # Remove regra de todos != nan - del variables_product[0] - - # Lista todos os dados faltantes por grupos de colunas faltantes - list_missing_data = [ - counts[np.logical_and.reduce(x)] for x in variables_product - ] - # Remove as colunas de dado faltante dos dataframes - list_missing_data = [ - x.drop(columns=x.columns[x.isin([nan_string]).any()].tolist()) - for x in list_missing_data - ] - # Remove os conjuntos vazios - list_missing_data = list(filter(lambda x: not x.empty, list_missing_data)) - - # Remove dados faltantes - counts = counts[~np.logical_or.reduce(variables_product[-1])] - - # Executa para cada conjunto de dados faltantes - for missing_count in list_missing_data: - counts = redistribute_rows_pro_rata( - counts, filter_columns, missing_count - ) - - return counts - - -def redistribute_cid_chapter( - counts, - filter_columns, - chapter=18, - chapter_column="CID10_CHAPTER", - count_columns="COUNTS", -): - """ - Realiza redistribuição pro rata das contagens do SIM de um capítulo do - CID10 passado. Por padrão o capítulo XVIII, de causas mal definidas, - é redistribuído. - :param counts: dataframe pandas contendo coluna com contagem - :param filter_columns: variáveis a serem consideradas para filtro na - redistribuição pro rata - :param chapter: capítulo do CID10 a ser redistribuído - :param chapter_column: nome da coluna de capítulo - :param count_columns: nome da coluna de counts - :return: - """ - df_chapter = counts[ - (counts[chapter_column] == chapter) & (counts[count_columns] > 0) - ] - counts = counts[counts[chapter_column] != chapter] - - return redistribute_rows_pro_rata(counts, filter_columns, df_chapter) - - -def redistribute_rows_pro_rata( - counts, filter_columns, redistribute_list, count_columns="COUNTS" -): - """ - Redistribui as contagens do dataframe conforme as colunas de filtro - passadas. - :param counts: dataframe pandas contendo coluna de contagem - :param filter_columns: variáveis a serem consideradas para filtro na - redistribuição pro rata - :param redistribute_list: dataframe contendo as linhas que serão - redistribuídas - :param count_columns: nome da coluna de counts - :return: - """ - # Evita alerta na atribuição de múltiplos itens com máscara (.loc) - pd.set_option("mode.chained_assignment", None) - - not_filter_columns = list( - set(counts.columns.to_list()) - set(filter_columns) - ) - - for row in redistribute_list.itertuples(index=False): - row_dict = dict(row._asdict()) - [row_dict.pop(key) for key in not_filter_columns] - condition = logical_and_from_dict(counts, row_dict) - sum_data = counts[condition][count_columns].sum() - # Caso não haja proporção conhecida relaxa o filtro - while sum_data == 0.0 and len(row_dict) > 0: - row_dict = relax_filter(row_dict, filter_columns) - condition = logical_and_from_dict(counts, row_dict) - sum_data = counts[condition][count_columns].sum() - counts.loc[condition, count_columns] = counts[condition][ - count_columns - ].apply( - lambda x: pro_rata_model(x, getattr(row, count_columns), sum_data) - ) - - # Volta alerta para warning - pd.set_option("mode.chained_assignment", "warn") - return counts - - -def pro_rata_model(current_value, redistribution_amount, group_sum): - return redistribution_amount * current_value / group_sum + current_value diff --git a/pysus/preprocessing/__init__.py b/pysus/preprocessing/__init__.py deleted file mode 100644 index 3762bb86..00000000 --- a/pysus/preprocessing/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -""" -Created on 19/07/16 -by fccoelho -license: GPL V3 or Later -""" - -__docformat__ = "restructuredtext en" diff --git a/pysus/preprocessing/decoders.py b/pysus/preprocessing/decoders.py deleted file mode 100644 index 23215a6c..00000000 --- a/pysus/preprocessing/decoders.py +++ /dev/null @@ -1,319 +0,0 @@ -""" -This module contains a set of functions to decode -commonly encoded variables -Created on 19/07/16 -by fccoelho -license: GPL V3 or Later -""" - -__docformat__ = "restructuredtext en" -import re -from datetime import datetime, timedelta -from string import ascii_uppercase - -import numpy as np -import pandas as pd -from pysus.online_data.SIM import get_CID10_chapters_table, get_municipios - - -@np.vectorize -def decodifica_idade_SINAN(idade, unidade: str = "Y"): - """ - Em tabelas do SINAN frequentemente a idade é representada como um inteiro - que precisa ser parseado para retornar a idade em uma unidade cronológica - padrão. - :param unidade: unidade da idade: 'Y' anos, 'M' meses, 'D' dias, 'H' horas - :param idade: inteiro ou sequencia de inteiros codificados. - :return: - """ - fator = {"Y": 1.0, "M": 12.0, "D": 365.0, "H": 365 * 24.0} - idade = int(idade) - if idade >= 4000: # idade em anos - idade_anos = idade - 4000 - elif idade >= 3000 and idade < 4000: # idade em meses - idade_anos = (idade - 3000) / 12.0 - elif idade >= 2000 and idade < 3000: # idade em dias - idade_anos = (idade - 2000) / 365.0 - elif idade >= 1000 and idade < 2000: # idade em horas - idade_anos = (idade - 1000) / (365 * 24.0) - else: - idade_anos = np.nan - idade_dec = idade_anos * fator[unidade] - return idade_dec - - -def get_age_string(unidade): - if unidade == "Y": - return "ANOS" - elif unidade == "M": - return "MESES" - elif unidade == "D": - return "DIAS" - elif unidade == "H": - return "HORAS" - elif unidade == "m": - return "MINUTOS" - else: - return "" - - -@np.vectorize -def decodifica_idade_SIM(idade, unidade="D"): - """ - Em tabelas do SIM a idade encontra-se codificada - :param idade: valor original da tabela do SIM - :param unidade: Unidade de saida desejada: - 'Y' anos, 'M' meses, 'D' dias, 'H' horas, 'm' minutos. - Valor default: 'D' - :return: - """ - fator = {"Y": 365.0, "M": 30.0, "D": 1.0, "H": 1 / 24.0, "m": 1 / 1440.0} - try: - if idade.startswith("0") and idade[1:] != "00": - idade = timedelta(minutes=int(idade[1:])) - idade = idade.seconds / 86400 + idade.days - elif idade.startswith("1"): - idade = timedelta(hours=int(idade[1:])) - idade = idade.seconds / 86400 + idade.days - elif idade.startswith("2"): - idade = timedelta(days=int(idade[1:])).days - elif idade.startswith("3"): - idade = timedelta(days=int(idade[1:]) * 30).days - elif idade.startswith("4"): - idade = timedelta(days=int(idade[1:]) * 365).days - elif idade.startswith("5"): - idade = timedelta(days=int(idade[1:]) * 365).days + 100 * 365 - else: - idade = np.nan - except ValueError: - idade = np.nan - return idade / fator.get(unidade, 1) - - -@np.vectorize -def decodifica_data_SIM(data): - try: - new_data = datetime.strptime(data, "%d%m%Y") - except ValueError: - new_data = np.nan - return new_data - - -@np.vectorize -def is_valid_geocode(geocodigo): - """ - Returns True if the geocode is valid - :param geocodigo: - :return: - """ - if len(str(geocodigo)) != 7: - raise ValueError("Geocode must have 7 digtis") - dig = int(str(geocodigo)[-1]) - if dig == calculate_digit(geocodigo): - return True - else: - return False - - -def get_valid_geocodes(): - tab_mun = get_municipios() - df = tab_mun[(tab_mun["SITUACAO"] != "IGNOR")] - return ( - pd.concat([df["MUNCODDV"], df["MUNCOD"]], ignore_index=True) - .astype("int64") - .values - ) - - -def calculate_digit(geocode): - """ - Calcula o digito verificador do geocódigo de município com 6 dígitos - :param geocode: geocódigo com 6 dígitos - :return: dígito verificador - """ - peso = [1, 2, 1, 2, 1, 2, 0] - soma = 0 - geocode = str(geocode) - for i in range(6): - valor = int(geocode[i]) * peso[i] - soma += sum([int(d) for d in str(valor)]) if valor > 9 else valor - dv = 0 if soma % 10 == 0 else (10 - (soma % 10)) - return dv - - -@np.vectorize -def add_dv(geocodigo): - if len(str(geocodigo)) == 7: - return geocodigo - else: - return int(str(geocodigo) + str(calculate_digit(geocodigo))) - - -def columns_as_category(series, nan_string=None): - series = series.astype("category") - series = series.cat.add_categories - - -def translate_variables_SIM( - dataframe: pd.DataFrame, - age_unit: str = "Y", - age_classes=None, - classify_args: dict = {}, - classify_cid10_chapters=False, - geocode_dv=True, - nan_marker=None, - category_columns=True, -): - variables_names = dataframe.columns.tolist() - df = dataframe - - valid_mun = get_valid_geocodes() - - # IDADE - if "IDADE" in variables_names: - column_name = f"IDADE_{get_age_string(age_unit)}" - df[column_name] = decodifica_idade_SIM(df["IDADE"], age_unit) - if age_classes: - df[column_name] = classify_age(df[column_name], **classify_args) - df[column_name] = df[column_name].astype("category") - df[column_name] = df[column_name].cat.add_categories(["NA"]) - df[column_name] = df[column_name].fillna("NA") - - # SEXO - if "SEXO" in variables_names: - df["SEXO"] = df.SEXO.replace( - {0: None, 9: None, 1: "Masculino", 2: "Feminino"} - ) - df["SEXO"] = df["SEXO"].astype("category") - df["SEXO"] = df["SEXO"].cat.add_categories(["NA"]) - df["SEXO"] = df["SEXO"].fillna("NA") - - # MUNRES - if "MUNIRES" in variables_names: - df = df.rename(columns={"MUNIRES": "CODMUNRES"}) - variables_names.append("CODMUNRES") - - # CODMUNRES - if "CODMUNRES" in variables_names: - if geocode_dv: - df["CODMUNRES"] = df["CODMUNRES"].apply(add_dv) - df["CODMUNRES"] = df["CODMUNRES"].astype("int64") - df.loc[~df["CODMUNRES"].isin(valid_mun), "CODMUNRES"] = pd.NA - df["CODMUNRES"] = df["CODMUNRES"].astype("category") - df["CODMUNRES"] = df["CODMUNRES"].cat.add_categories(["NA"]) - df["CODMUNRES"] = df["CODMUNRES"].fillna("NA") - - # RACACOR - if "RACACOR" in variables_names: - df["RACACOR"] = ( - df["RACACOR"] - .str.strip() - .replace( - { - "0": None, - "1": "Branca", - "2": "Preta", - "3": "Amarela", - "4": "Parda", - "5": "Indígena", - "6": None, - "7": None, - "8": None, - "9": None, - "": None, - }, - ) - ) - df["RACACOR"] = df["RACACOR"].astype("category") - df["RACACOR"] = df["RACACOR"].cat.add_categories(["NA"]) - df["RACACOR"] = df["RACACOR"].fillna("NA") - - # CAUSABAS IN CID10 CHAPTER - if classify_cid10_chapters: - code_index = get_CID10_code_index(get_CID10_chapters_table()) - df["CID10_CHAPTER"] = df["CAUSABAS"].str.slice(0, 3).map(code_index) - df["CID10_CHAPTER"] = df["CID10_CHAPTER"].astype("category") - - return df - - -def classify_age( - serie, - start=0, - end=90, - freq=None, - open_end=True, - closed="left", - interval=None, -): - """ - Classifica idade segundo parâmetros ou IntervalIndex - :param serie: Serie pandas contendo idades - :param start: início do primeiro grupo - :param end: fim do último grupo - :param freq: tamanho dos grupos. Por padrão considera cada valor um grupo. - :param open_end: cria uma classe no final da lista de intervalos que contém - todos acima daquele último valor. Default True - :param closed: onde os intervalos devem ser fechados. - Possíveis valores: {'left', 'right', 'both', 'neither'}. - Default 'left' - :param interval: IntervalIndex do pandas. Caso seja passado todos os outros - parâmetros de intervalo são desconsiderados. Defaul None - :return: - """ - if interval: - iv = interval - else: - iv = pd.interval_range(start=start, end=end, freq=freq, closed=closed) - iv_array = iv.to_tuples().tolist() - - # Adiciona classe aberta no final da lista de intervalos. - # Útil para criar agrupamentos como 0,1,2,...,89,90+ - if open_end: - iv_array.append((iv_array[-1][1], +np.inf)) - intervals = pd.IntervalIndex.from_tuples(iv_array, closed=closed) - return pd.cut(serie, intervals) - - -def get_CID10_code_index(datasus_chapters): - code_index = {} - for ch_array_index, chapter in datasus_chapters.iterrows(): - # Ex.: ['A00','B99'] - chapter_range = chapter["CAUSAS"].split("-") - start_letter = chapter_range[0][0] - end_letter = chapter_range[1][0] - - if start_letter == end_letter: - number_range_start = int(chapter_range[0][1:3]) - number_range_finish = int(chapter_range[1][1:3]) - for code in range(number_range_start, number_range_finish + 1): - code_index[f"{start_letter}{str(code).zfill(2)}"] = ( - ch_array_index + 1 - ) - else: - string_range_start = chapter_range[0][0] - string_range_end = chapter_range[1][0] - full_string_range = re.compile( - f"{string_range_start}.*{string_range_end}" - ).search(ascii_uppercase)[0] - - for let_array_index, letter in enumerate(full_string_range): - # First array letter - if let_array_index == 0: - number_range_start = int(chapter_range[0][1:3]) - number_range_end = 99 - # Last array letter - elif let_array_index == len(full_string_range) - 1: - number_range_start = 0 - number_range_end = int(chapter_range[1][1:3]) - else: # Middle letters - number_range_start = 0 - number_range_end = 99 - for code_number in range( - number_range_start, number_range_end + 1 - ): - code_index[f"{letter}{str(code_number).zfill(2)}"] = ( - ch_array_index + 1 - ) - - return code_index diff --git a/pysus/preprocessing/sinan.py b/pysus/preprocessing/sinan.py deleted file mode 100644 index cb6945ed..00000000 --- a/pysus/preprocessing/sinan.py +++ /dev/null @@ -1,127 +0,0 @@ -import os -from functools import lru_cache - -import geocoder -import numpy as np -import pandas as pd -import requests -from dbfread import DBF - - -def read_sinan_dbf(fname, encoding) -> pd.DataFrame: - """ - Read SINAN dbf file returning a Pandas Dataframe with - :param fname: dbf file name - :param encoding: Encoding of the dbf - :return: pandas dataframe - """ - db = DBF(fname, encoding=encoding) - df = pd.DataFrame(list(db)) - - def convert_week(x): - try: - w = int(x) % 100 - except ValueError: - w = np.nan - return w - - for cname in df.columns: - df[cname].replace("", np.nan, inplace=True) - if cname.startswith(("NU", "ID")): - try: - df[cname] = pd.to_numeric(df[cname]) - except ValueError as e: - print(f"Column {cname} could not be converted to numeric: {e}") - # certain IDs can be alphanumerical - pass - elif cname.startswith("SEM"): - df[cname] = df[cname].map(convert_week) - - return df - - -@lru_cache(maxsize=None) -def get_geocodes(geoc): - """ - Return city name and state two letter code from geocode - :param geoc: - :return: - """ - url = ( - "http://cidades.ibge.gov.br/services/jSonpMuns.php?" - "busca=330&featureClass=P&style=full&maxRows=5&name_startsWith={}" - ).format(geoc) - resp = requests.get(url) - for d in resp.json()["municipios"]: - if int(geoc) == int(d["c"]): - return [d["n"].encode("latin-1").decode("utf-8"), d["s"]] - - else: - raise KeyError("could not find geocode {} in ".format(geoc)) - - -def _address_generator(df, default=""): - for row in df.iterrows(): - line = dict(row[1]) - try: - line["cidade"] = ",".join(get_geocodes(line["ID_MN_RESI"])) - except KeyError: - print("Could not find geocode {} using default") - line["cidade"] = default - yield line[ - "NU_NOTIFIC" - ], "{NM_LOGRADO}, {NU_NUMERO}, {NM_BAIRRO}, {cidade}, Brasil".format( - **line - ) - - -def geocode(sinan_df, outfile, default_city): - """ - Geocode cases based on addresses included. - :param default_city: default city to use in case of bad Geocode found in - file. It can be "city, state" - :param sinan_df: Dataframe generated from sinan DBF - :param outfile: File on Which - """ - addrs = _address_generator(sinan_df, default_city) - if os.path.exists(outfile): - mode = "a" - coords = pd.read_csv(outfile) - geocoded = coords.NU_NOTIFIC.tolist() - else: - mode = "w" - geocoded = [] - with open(outfile, mode) as of: - if mode == "w": - of.write("NU_NOTIFIC,latitude,longitude\n") - for nu, ad in addrs: - # ad = ad.encode('latin-1').decode('utf-8') - if nu in geocoded: - continue - location = geocoder.google(ad) - if location is None: - raise NameError("Google could not find {}".format(ad)) - if location.latlng == []: - print( - ( - "Search for {} returned {} as coordinates, trying " - "reduced address:" - ).format(ad, location.latlng) - ) - ad = ",".join(ad.split(",")[2:]) - print(ad) - location = geocoder.google(ad) - try: - of.write( - "{},{},{}\n".format( - nu, location.latlng[0], location.latlng[1] - ) - ) - print("Successfully geolocated {}".format(ad)) - except IndexError: - print( - ( - "Search for {} returned {} as coordinates, " "skipping" - ).format(ad, location.latlng) - ) - of.write("{},nan,nan\n".format(nu)) diff --git a/pysus/tests/__init__.py b/pysus/tests/__init__.py index 91cf9cba..3762bb86 100644 --- a/pysus/tests/__init__.py +++ b/pysus/tests/__init__.py @@ -1,4 +1,3 @@ -# -*- coding:utf-8 -*- """ Created on 19/07/16 by fccoelho diff --git a/pysus/tests/api/__init__.py b/pysus/tests/api/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/pysus/tests/api/dadosgov/__init__.py b/pysus/tests/api/dadosgov/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/pysus/tests/api/duckdb/__init__.py b/pysus/tests/api/duckdb/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/pysus/tests/api/ducklake/test_catalog.py b/pysus/tests/api/ducklake/test_catalog.py new file mode 100644 index 00000000..ffdde87f --- /dev/null +++ b/pysus/tests/api/ducklake/test_catalog.py @@ -0,0 +1,85 @@ +from pysus.api.ducklake.catalog import ( + CatalogDataset, + CatalogFile, + CatalogTable, + ColumnDefinition, + DatasetGroup, + Origin, + file_columns, +) + + +class TestOrigin: + def test_origin_ftp(self): + assert Origin.FTP.value == "ftp" + + def test_origin_api(self): + assert Origin.API.value == "api" + + +class TestCatalogTable: + def test_catalog_table_is_abstract(self): + assert CatalogTable.__abstract__ is True + + +class TestCatalogDataset: + def test_catalog_dataset_tablename(self): + assert CatalogDataset.__tablename__ == "datasets" + + def test_catalog_dataset_columns(self): + assert "id" in CatalogDataset.__table__.columns + assert "name" in CatalogDataset.__table__.columns + assert "long_name" in CatalogDataset.__table__.columns + assert "origin" in CatalogDataset.__table__.columns + + +class TestColumnDefinition: + def test_column_definition_tablename(self): + assert ColumnDefinition.__tablename__ == "dataset_columns" + + def test_column_definition_columns(self): + assert "id" in ColumnDefinition.__table__.columns + assert "dataset_id" in ColumnDefinition.__table__.columns + assert "name" in ColumnDefinition.__table__.columns + assert "type" in ColumnDefinition.__table__.columns + + +class TestDatasetGroup: + def test_dataset_group_tablename(self): + assert DatasetGroup.__tablename__ == "dataset_groups" + + def test_dataset_group_columns(self): + assert "id" in DatasetGroup.__table__.columns + assert "dataset_id" in DatasetGroup.__table__.columns + assert "name" in DatasetGroup.__table__.columns + assert "long_name" in DatasetGroup.__table__.columns + + +class TestCatalogFile: + def test_catalog_file_tablename(self): + assert CatalogFile.__tablename__ == "files" + + def test_catalog_file_columns(self): + assert "id" in CatalogFile.__table__.columns + assert "dataset_id" in CatalogFile.__table__.columns + assert "path" in CatalogFile.__table__.columns + assert "size" in CatalogFile.__table__.columns + assert "rows" in CatalogFile.__table__.columns + assert "modified" in CatalogFile.__table__.columns + assert "year" in CatalogFile.__table__.columns + assert "month" in CatalogFile.__table__.columns + assert "state" in CatalogFile.__table__.columns + + +class TestFileColumns: + def test_file_columns_primary_keys(self): + file_id_col = file_columns.c.file_id + column_id_col = file_columns.c.column_id + assert file_id_col.primary_key is True + assert column_id_col.primary_key is True + + def test_file_columns_foreign_keys(self): + file_id_col = file_columns.c.file_id + column_id_col = file_columns.c.column_id + assert file_id_col.foreign_keys + assert column_id_col.foreign_keys diff --git a/pysus/tests/api/ducklake/test_client.py b/pysus/tests/api/ducklake/test_client.py new file mode 100644 index 00000000..b6c4cc7b --- /dev/null +++ b/pysus/tests/api/ducklake/test_client.py @@ -0,0 +1,96 @@ +from unittest.mock import patch + +import pytest +from pysus.api.ducklake.client import DuckLake, DuckLakeCredentials + + +class TestDuckLakeCredentials: + def test_credentials_creation(self): + creds = DuckLakeCredentials( + access_key="test_key", + secret_key="test_secret", + ) + assert creds.access_key.get_secret_value() == "test_key" + assert creds.secret_key.get_secret_value() == "test_secret" + + +class TestDuckLake: + @pytest.mark.asyncio + async def test_ducklake_init(self): + client = DuckLake() + assert client.name == "DuckLake" + assert client.long_name == "PySUS s3 Client" + assert client.endpoint == "nbg1.your-objectstorage.com" + assert client.bucket == "pysus" + + @pytest.mark.asyncio + async def test_ducklake_catalog_path(self, tmp_path): + with patch("pysus.api.ducklake.client.CACHEPATH", tmp_path): + client = DuckLake() + assert client.catalog_path == tmp_path / "ducklake" / "catalog.db" + + @pytest.mark.asyncio + async def test_ducklake_catalog_url(self): + client = DuckLake() + expected = "https://nbg1.your-objectstorage.com/pysus/public/catalog.db" + assert client._catalog_url == expected + + @pytest.mark.asyncio + async def test_is_authenticated_false_no_credentials(self): + client = DuckLake() + assert client._is_authenticated is False + + @pytest.mark.asyncio + async def test_is_authenticated_with_credentials(self): + client = DuckLake() + await client.login(access_key="key", secret_key="secret") + assert client._is_authenticated is True + + @pytest.mark.asyncio + async def test_login_sets_credentials(self): + client = DuckLake() + await client.login(access_key="key", secret_key="secret") + assert client.credentials is not None + + @pytest.mark.asyncio + async def test_login_creates_s3_client(self): + client = DuckLake() + await client.login(access_key="key", secret_key="secret") + assert client._s3_client is not None + client._s3_client = None + + @pytest.mark.asyncio + async def test_close_clears_state(self): + client = DuckLake() + await client.close() + assert client._engine is None + assert client._Session is None + assert client._s3_client is None + + @pytest.mark.asyncio + async def test_get_s3_client_requires_credentials(self): + client = DuckLake() + with pytest.raises(ConnectionError): + client._get_s3_client() + + @pytest.mark.asyncio + async def test_upload_catalog_requires_auth(self): + client = DuckLake() + with pytest.raises(PermissionError): + await client._upload_catalog() + + +class TestDownloadFile: + pass + + +class TestLoadCatalog: + pass + + +class TestUploadCatalog: + @pytest.mark.asyncio + async def test_upload_catalog_without_auth_raises(self): + client = DuckLake() + with pytest.raises(PermissionError): + await client._upload_catalog() diff --git a/pysus/tests/api/ftp/__init__.py b/pysus/tests/api/ftp/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/pysus/tests/api/ftp/test_client.py b/pysus/tests/api/ftp/test_client.py new file mode 100644 index 00000000..a0029356 --- /dev/null +++ b/pysus/tests/api/ftp/test_client.py @@ -0,0 +1,88 @@ +import pathlib +from datetime import datetime +from unittest.mock import MagicMock, patch + +import pytest +from pysus.api.ftp.client import FTP + + +@pytest.fixture +def ftp_client(): + client = FTP() + return client + + +def test_line_parser_file(ftp_client): + line = "03-09-26 04:30PM 12345 filename.dbc" + info = ftp_client._line_parser(line) + + assert info["name"] == "filename.dbc" + assert info["size"] == 12345 + assert info["type"] == "file" + assert isinstance(info["modify"], datetime) + + +def test_line_parser_directory(ftp_client): + line = "03-09-26 04:30PM DADOS" + info = ftp_client._line_parser(line) + + assert info["name"] == "DADOS" + assert info["size"] == 0 + assert info["type"] == "dir" + + +def test_line_parser_with_formatter(ftp_client): + def mock_formatter(name): + return {"year": 2026, "state": "SC"} + + line = "03-09-26 04:30PM 12345 CIHASC2601.dbc" + info = ftp_client._line_parser(line, formatter=mock_formatter) + + assert info["year"] == 2026 + assert info["state"] == "SC" + + +@pytest.mark.asyncio +async def test_connect_and_login(ftp_client): + with patch("pysus.api.ftp.client.FTPLib") as mock_ftplib: + mock_instance = mock_ftplib.return_value + await ftp_client.login() + + mock_ftplib.assert_called_once_with(ftp_client.host) + mock_instance.login.assert_called_once() + + +@pytest.mark.asyncio +async def test_download_file_reconnects_on_failure(ftp_client): + mock_ftp_internal = MagicMock() + mock_ftp_internal.voidcmd.side_effect = [BrokenPipeError, None] + ftp_client._ftp = mock_ftp_internal + + mock_file = MagicMock() + mock_file.path = "remote/path.dbc" + + with ( + patch("pysus.api.ftp.client.FTP.connect") as mock_connect, + patch("builtins.open", MagicMock()), + ): + await ftp_client._download_file(mock_file, pathlib.Path("test.dbc")) + assert mock_connect.call_count >= 1 + + +@pytest.mark.asyncio +async def test_list_directory_calls_ftp_methods(ftp_client): + mock_ftp_internal = MagicMock() + ftp_client._ftp = mock_ftp_internal + + with patch.object(ftp_client, "_line_parser") as mock_parser: + mock_parser.return_value = {"name": "test", "type": "file"} + + def simulate_retrlines(cmd, callback): + callback("03-09-26 04:30PM 12345 test.dbc") + + mock_ftp_internal.retrlines.side_effect = simulate_retrlines + + await ftp_client._list_directory("/test/path") + + mock_ftp_internal.cwd.assert_called_once_with("/test/path") + mock_ftp_internal.retrlines.assert_called_once() diff --git a/pysus/tests/api/ftp/test_databases.py b/pysus/tests/api/ftp/test_databases.py new file mode 100644 index 00000000..7379f133 --- /dev/null +++ b/pysus/tests/api/ftp/test_databases.py @@ -0,0 +1,70 @@ +from unittest.mock import MagicMock + +import pytest +from pysus.api.ftp.client import FTP +from pysus.api.ftp.databases import AVAILABLE_DATABASES + + +@pytest.fixture +def mock_client(): + client = MagicMock(spec=FTP) + return client + + +@pytest.mark.asyncio +async def test_database_metadata(mock_client): + for db_class in AVAILABLE_DATABASES: + db = db_class(client=mock_client) + + assert db.name is not None + assert db.long_name is not None + assert db.description is not None + assert len(db.paths) > 0 + + +@pytest.mark.parametrize("db_class", AVAILABLE_DATABASES) +def test_formatter_returns_valid_structure(db_class, mock_client): + db = db_class(client=mock_client) + + test_files = { + "CIHA": "CIHAAC1101.dbc", + "CNES": "DCAC0508.dbc", + "SINASC": "DNAC1996.DBC", + "SIM": "DOAC1996.dbc", + "PNI": "CPNIAC00.DBF", + "IBGE": "POPBR00.zip", + "SIA": "PAAC0001.dbc", + "SIH": "RDAC0001.dbc", + "SINAN": "ACBIBR06.dbc", + } + + filename = test_files.get(db.name, "TEST0000.dbc") + metadata = db.formatter(filename) + + assert isinstance(metadata, dict) + assert "year" in metadata + if db.name != "IBGE": + assert "group" in metadata + + +@pytest.mark.asyncio +async def test_ftp_datasets_instantiation(): + client = FTP() + client._ftp = MagicMock() + + databases = await client.datasets() + assert len(databases) == len(AVAILABLE_DATABASES) + + for db in databases: + assert db.client == client + + +@pytest.mark.asyncio +async def test_ciha_search_logic(mock_client): + db = AVAILABLE_DATABASES[0](client=mock_client) + + res = db.formatter("CIHAAC1101.dbc") + assert res["state"] == "AC" + assert res["year"] == 2011 + assert res["month"] == 1 + assert res["group"]["name"] == "CIHA" diff --git a/pysus/tests/api/ftp/test_models.py b/pysus/tests/api/ftp/test_models.py new file mode 100644 index 00000000..30b698f5 --- /dev/null +++ b/pysus/tests/api/ftp/test_models.py @@ -0,0 +1,141 @@ +from datetime import datetime +from pathlib import Path +from unittest.mock import AsyncMock, MagicMock + +import pytest +from pysus.api.ftp.client import FTP +from pysus.api.ftp.models import Dataset, Directory, File, Group + + +@pytest.fixture +def mock_client(): + client = MagicMock(spec=FTP) + client._list_directory = AsyncMock() + client._download_file = AsyncMock() + return client + + +@pytest.fixture +def mock_dataset(mock_client): + dataset = MagicMock(spec=Dataset) + dataset.client = mock_client + dataset.formatter = lambda x: {} + return dataset + + +@pytest.mark.asyncio +async def test_file_properties(mock_dataset): + info = { + "path": "/root/test.dbc", + "name": "test.dbc", + "size": 1000, + "type": "file", + "modify": datetime(2026, 1, 1), + "year": 2026, + "state": "SP", + "group": {"name": "root", "long_name": "Test Group"}, + } + + file = File( + path="/root/test.dbc", + _info=info, + type="file", + dataset=mock_dataset, + ) + + assert file.name == "test.dbc" + assert file.extension == ".dbc" + assert file.size == 1000 + assert file.year == 2026 + assert file.state == "SP" + assert file.group.name == "root" + assert isinstance(file.modify, datetime) + + +@pytest.mark.asyncio +async def test_directory_load(mock_client, mock_dataset): + mock_client._list_directory.return_value = [ + {"name": "subdir", "type": "dir", "path": "/root/subdir"}, + { + "name": "file.dbc", + "type": "file", + "path": "/root/file.dbc", + "size": 500, + "modify": datetime.now(), + }, + ] + + dr = Directory(path="/root", client=mock_client, dataset=mock_dataset) + content = await dr.content + + assert len(content) == 2 + assert isinstance(content[0], Directory) + assert isinstance(content[1], File) + assert str(content[0].path) == "/root/subdir" + assert str(content[1].path) == "/root/file.dbc" + + +@pytest.mark.asyncio +async def test_group_instantiation(mock_dataset): + group = Group( + path="/root/DC", + dataset=mock_dataset, + long_name="Dados Complementares", + description="Desc", + ) + + assert group.name == "DC" + assert group.long_name == "Dados Complementares" + assert group.path == "/root/DC" + + +@pytest.mark.asyncio +async def test_dataset_fetch_content(mock_client): + class TestDB(Dataset): + @property + def name(self): + return "TEST" + + @property + def long_name(self): + return "Test DB" + + @property + def description(self): + return "Desc" + + def formatter(self, f): + return {} + + db = TestDB(client=mock_client) + root = Directory(path="/root", client=mock_client, dataset=db) + db.paths = [root] + db.group_definitions = {"SUB": "Subgroup Long Name"} + + mock_client._list_directory.return_value = [ + {"name": "SUB", "type": "dir", "path": "/root/SUB"}, + {"name": "OTHER", "type": "dir", "path": "/root/OTHER"}, + {"name": "file.dbc", "type": "file", "path": "/root/file.dbc"}, + ] + + content = await db.content + + assert len(content) == 3 + assert any(isinstance(c, Group) and c.name == "SUB" for c in content) + assert any(isinstance(c, Directory) and c.name == "OTHER" for c in content) + assert any(isinstance(c, File) for c in content) + + +@pytest.mark.asyncio +async def test_file_download_calls_client(mock_client, mock_dataset): + file = File( + path="/root/test.dbc", + _info={"path": "/root/test.dbc", "name": "test.dbc"}, + type="file", + dataset=mock_dataset, + ) + + dest = Path("/tmp/test.dbc") + await file._download(output=dest) + + mock_client._download_file.assert_called_once_with(file, dest, None) diff --git a/pysus/tests/api/test_client.py b/pysus/tests/api/test_client.py new file mode 100644 index 00000000..e664cef1 --- /dev/null +++ b/pysus/tests/api/test_client.py @@ -0,0 +1,181 @@ +import pathlib +from unittest.mock import MagicMock, patch + +import pytest +from pysus.api.client import DownloadStatus, LocalFileState, PySUS + + +@pytest.fixture +def test_db_path(tmp_path): + return tmp_path / "test_config.db" + + +class TestPySUS: + @pytest.mark.asyncio + async def test_pysus_init(self, test_db_path): + client = PySUS(db_path=test_db_path) + assert client.cachepath == test_db_path.parent + assert client._ducklake is None + assert client._ftp is None + assert client._dadosgov is None + await client.__aexit__(None, None, None) + + @pytest.mark.asyncio + async def test_get_dest_path_basic(self, test_db_path): + client = PySUS(db_path=test_db_path) + + mock_file = MagicMock() + mock_file.client.name = "FTP" + mock_file.dataset.name = "SINASC" + mock_file.basename = "DNAC2024.dbc" + mock_file.group = None + + result = client._get_dest_path(mock_file) + expected = ( + test_db_path.parent + / "downloads" + / "ftp" + / "sinasc" + / "DNAC2024.dbc" + ) + assert result == expected + await client.__aexit__(None, None, None) + + @pytest.mark.asyncio + async def test_get_dest_path_with_group(self, test_db_path): + client = PySUS(db_path=test_db_path) + + mock_file = MagicMock() + mock_file.client.name = "FTP" + mock_file.dataset.name = "SINASC" + mock_file.basename = "DNAC2024.dbc" + mock_group = MagicMock() + mock_group.name = "DC" + mock_file.group = mock_group + + result = client._get_dest_path(mock_file) + expected = ( + test_db_path.parent + / "downloads" + / "ftp" + / "sinasc" + / "DC" + / "DNAC2024.dbc" + ) + assert result == expected + await client.__aexit__(None, None, None) + + +class TestDownloadStatus: + def test_download_status_values(self): + assert DownloadStatus.PENDING.value == "pending" + assert DownloadStatus.DOWNLOADING.value == "downloading" + assert DownloadStatus.COMPLETED.value == "completed" + assert DownloadStatus.FAILED.value == "failed" + assert DownloadStatus.MISSING.value == "missing" + + +class TestLocalFileState: + @pytest.mark.asyncio + async def test_update_state_creates_record(self, test_db_path): + client = PySUS(db_path=test_db_path) + + await client._update_state( + local_path=pathlib.Path("/tmp/test.dbc"), + remote_path="/remote/test.dbc", + client_name="ftp", + status=DownloadStatus.COMPLETED, + year=2024, + month=1, + state="SP", + group="DC", + ) + + with client.Session() as session: + record = ( + session.query(LocalFileState) + .filter_by(path="/tmp/test.dbc") + .first() + ) + assert record is not None + assert record.remote_path == "/remote/test.dbc" + assert record.client_name == "ftp" + assert record.status == DownloadStatus.COMPLETED + assert record.year == 2024 + assert record.month == 1 + assert record.state == "SP" + assert record.group == "DC" + + await client.__aexit__(None, None, None) + + @pytest.mark.asyncio + async def test_delete_record_removes_entry(self, test_db_path): + client = PySUS(db_path=test_db_path) + + await client._update_state( + local_path=pathlib.Path("/tmp/test.dbc"), + remote_path="/remote/test.dbc", + client_name="ftp", + status=DownloadStatus.COMPLETED, + ) + + await client._delete_record("/tmp/test.dbc") + + with client.Session() as session: + record = ( + session.query(LocalFileState) + .filter_by(path="/tmp/test.dbc") + .first() + ) + assert record is None + + await client.__aexit__(None, None, None) + + @pytest.mark.asyncio + async def test_get_local_file_finds_existing(self, test_db_path): + client = PySUS(db_path=test_db_path) + + await client._update_state( + local_path=pathlib.Path("/tmp/test.dbc"), + remote_path="/remote/test.dbc", + client_name="ftp", + status=DownloadStatus.COMPLETED, + ) + + mock_remote_file = MagicMock() + mock_remote_file.client.name = "FTP" + mock_remote_file.path = "/remote/test.dbc" + + with patch( + "pysus.api.extensions.ExtensionFactory.instantiate" + ) as mock_factory: + mock_factory.return_value = MagicMock() + await client.get_local_file(mock_remote_file) + mock_factory.assert_called_once() + + await client.__aexit__(None, None, None) + + +class TestGetCompletedRemotePaths: + @pytest.mark.asyncio + async def test_get_completed_remote_paths(self, test_db_path): + client = PySUS(db_path=test_db_path) + + await client._update_state( + local_path=pathlib.Path("/tmp/test1.dbc"), + remote_path="/remote/test1.dbc", + client_name="ftp", + status=DownloadStatus.COMPLETED, + ) + await client._update_state( + local_path=pathlib.Path("/tmp/test2.dbc"), + remote_path="/remote/test2.dbc", + client_name="ftp", + status=DownloadStatus.PENDING, + ) + + paths = client.get_completed_remote_paths() + assert "/remote/test1.dbc" in paths + assert "/remote/test2.dbc" not in paths + + await client.__aexit__(None, None, None) diff --git a/pysus/tests/api/test_extensions.py b/pysus/tests/api/test_extensions.py new file mode 100644 index 00000000..936c4a1f --- /dev/null +++ b/pysus/tests/api/test_extensions.py @@ -0,0 +1,269 @@ +import gzip +import json +import tarfile +import zipfile +from pathlib import Path + +import pandas as pd +import pytest +from pysus.api.extensions import ( + CSV, + DBC, + DBC_IMPORT, + DBF, + JSON, + PDF, + Directory, + ExtensionFactory, + File, + GZip, + Parquet, + Tar, + Zip, +) + + +@pytest.fixture +def tmp_dir(tmp_path: Path): + return tmp_path + + +async def collect_async(gen): + out = [] + async for item in gen: + out.append(item) + return out + + +@pytest.mark.asyncio +async def test_directory_load_and_stream(tmp_dir): + subdir = tmp_dir / "dir" + subdir.mkdir() + + (subdir / "a.txt").write_text("a") + (subdir / "b.csv").write_text("x\n1") + + obj = await ExtensionFactory.instantiate(subdir) + assert isinstance(obj, Directory) + assert obj.basename == "dir" + + loaded = await obj.load() + assert {f.basename for f in loaded} == {"a.txt", "b.csv"} + + streamed = await collect_async(obj.stream()) + assert len(streamed) == 2 + assert all(hasattr(f, "load") for f in streamed) + + +@pytest.mark.asyncio +async def test_directory_empty(tmp_dir): + subdir = tmp_dir / "empty" + subdir.mkdir() + + obj = await ExtensionFactory.instantiate(subdir) + loaded = await obj.load() + assert loaded == [] + + +@pytest.mark.asyncio +async def test_csv_load_and_stream(tmp_dir): + path = tmp_dir / "data.csv" + df = pd.DataFrame({"a": ["1", "2"], "b": ["3", "4"]}) + df.to_csv(path, index=False) + + obj = await ExtensionFactory.instantiate(path) + assert isinstance(obj, CSV) + + loaded = await obj.load() + pd.testing.assert_frame_equal( + loaded.astype(str), + df.astype(str), + ) + + chunks = await collect_async(obj.stream(chunk_size=1)) + assert len(chunks) == 2 + assert all(isinstance(c, pd.DataFrame) for c in chunks) + + +@pytest.mark.asyncio +async def test_csv_sep_and_encoding_fallback(tmp_dir): + path = tmp_dir / "data.csv" + path.write_text("a;b\n1;2\n") + + obj = await ExtensionFactory.instantiate(path) + df = await obj.load() + + assert list(df.columns) == ["a", "b"] + assert df.iloc[0]["a"] == 1 + + +@pytest.mark.asyncio +async def test_parquet_parse_and_stream(tmp_dir): + csv_path = tmp_dir / "data.csv" + + df = pd.DataFrame( + { + "DT_NOTIFIC": ["20230101"], + "CODMUNRES": [" 123 "], + "OTHER": [" "], + } + ) + df.to_csv(csv_path, index=False) + + csv_obj = await ExtensionFactory.instantiate(csv_path) + pq_obj = await csv_obj.to_parquet() + + assert isinstance(pq_obj, Parquet) + + parsed = await pq_obj.load(parse=True) + assert str(parsed["DT_NOTIFIC"].iloc[0]) == "2023-01-01" + assert parsed["CODMUNRES"].iloc[0] == 123 + assert parsed["OTHER"].iloc[0] == "" + + chunks = await collect_async(pq_obj.stream()) + assert len(chunks) >= 1 + + +@pytest.mark.asyncio +async def test_dbf_decode_and_failure(tmp_dir): + pytest.importorskip("dbfread") + + path = tmp_dir / "test.dbf" + path.write_bytes(b"invalid") + + obj = await ExtensionFactory.instantiate(path) + assert isinstance(obj, DBF) + + assert obj.decode_column(b"COL\x00") == "COL" + assert obj.decode_column("COL\x00") == "COL" + + with pytest.raises(Exception): # noqa + await obj.load() + + +@pytest.mark.asyncio +async def test_dbc_import_behavior(tmp_dir): + path = tmp_dir / "file.dbc" + path.write_bytes(b"dummy") + + obj = await ExtensionFactory.instantiate(path) + assert isinstance(obj, DBC) + + if not DBC_IMPORT: + with pytest.raises(ImportError): + await obj.load() + with pytest.raises(ImportError): + await obj.to_parquet() + else: + with pytest.raises(Exception): # noqa + await obj.to_parquet(tmp_dir / "out.parquet") + + +@pytest.mark.asyncio +async def test_json_load_and_stream(tmp_dir): + path = tmp_dir / "data.json" + data = [{"a": 1}, {"a": 2}] + path.write_text(json.dumps(data)) + + obj = await ExtensionFactory.instantiate(path) + assert isinstance(obj, JSON) + + df = await obj.load() + assert df.shape == (2, 1) + + streamed = await collect_async(obj.stream()) + assert len(streamed) == 1 + assert streamed[0].equals(df) + + +@pytest.mark.asyncio +async def test_pdf_load_and_stream(tmp_dir): + path = tmp_dir / "file.pdf" + content = b"%PDF-1.4\n..." + path.write_bytes(content) + + obj = await ExtensionFactory.instantiate(path) + assert isinstance(obj, PDF) + + assert await obj.load() == content + + chunks = await collect_async(obj.stream(chunk_size=4)) + assert b"".join(chunks) == content + + +@pytest.mark.asyncio +async def test_file_load_and_stream(tmp_dir): + path = tmp_dir / "file.bin" + content = b"abc123" + path.write_bytes(content) + + obj = await ExtensionFactory.instantiate(path) + assert isinstance(obj, File) + + assert await obj.load() == content + + chunks = await collect_async(obj.stream(chunk_size=2)) + assert b"".join(chunks) == content + + +@pytest.mark.asyncio +async def test_zip_full_flow(tmp_dir): + zip_path = tmp_dir / "file.zip" + inner = tmp_dir / "inner.csv" + pd.DataFrame({"x": [1]}).to_csv(inner, index=False) + + with zipfile.ZipFile(zip_path, "w") as z: + z.write(inner, arcname="inner.csv") + + obj = await ExtensionFactory.instantiate(zip_path) + assert isinstance(obj, Zip) + + members = await obj.list_members() + assert "inner.csv" in members + + content = await obj.open_member("inner.csv") + assert b"x" in content + + extracted = await obj.extract(tmp_dir / "out") + assert any(isinstance(f, CSV) for f in extracted) + + +@pytest.mark.asyncio +async def test_gzip_full_flow(tmp_dir): + path = tmp_dir / "data.csv.gz" + raw = b"a,b\n1,2" + + with gzip.open(path, "wb") as f: + f.write(raw) + + obj = await ExtensionFactory.instantiate(path) + assert isinstance(obj, GZip) + + assert await obj.load() == raw + assert await obj.list_members() == ["data.csv"] + + extracted = await obj.extract(tmp_dir / "out") + assert len(extracted) == 1 + assert isinstance(extracted[0], CSV) + + +@pytest.mark.asyncio +async def test_tar_full_flow(tmp_dir): + tar_path = tmp_dir / "file.tar" + f = tmp_dir / "a.txt" + f.write_text("hello") + + with tarfile.open(tar_path, "w") as t: + t.add(f, arcname="a.txt") + + obj = await ExtensionFactory.instantiate(tar_path) + assert isinstance(obj, Tar) + + members = await obj.list_members() + assert "a.txt" in members + + content = await obj.open_member("a.txt") + assert content == b"hello" + + extracted = await obj.extract(tmp_dir / "out") + assert any(isinstance(x, File) for x in extracted) diff --git a/pysus/tests/api/test_models.py b/pysus/tests/api/test_models.py new file mode 100644 index 00000000..6a14cfc5 --- /dev/null +++ b/pysus/tests/api/test_models.py @@ -0,0 +1,83 @@ +import hashlib +from collections.abc import AsyncGenerator, Callable +from datetime import datetime +from pathlib import Path +from typing import Any +from unittest.mock import MagicMock + +import pytest +from pydantic import ValidationError +from pysus.api.models import BaseRemoteGroup # noqa +from pysus.api.models import BaseLocalFile, BaseRemoteDataset, BaseRemoteFile + + +class MockLocalFile(BaseLocalFile): + type: str = "mock" + + async def load(self) -> bytes: + return b"test content" + + async def stream( + self, + chunk_size: int = 10000, + ) -> AsyncGenerator[Any, None]: + yield b"test content" + + +class MockRemoteFile(BaseRemoteFile): + type: str = "remote" + + @property + def extension(self) -> str: + return ".txt" + + @property + def size(self) -> int: + return 12 + + @property + def modify(self) -> datetime: + return datetime(2026, 1, 1) + + async def _download( + self, + output: Path | None = None, + callback: Callable[[int], None] | None = None, + ) -> Path: + if not output: + raise ValueError() + output.write_bytes(b"test content") + return output + + +MockRemoteFile.model_rebuild() + + +@pytest.mark.asyncio +async def test_get_hash(tmp_path): + path = tmp_path / "test_file.txt" + content = b"test content" + path.write_bytes(content) + + file_model = MockLocalFile(path=path) + + expected_hash = hashlib.sha256(content).hexdigest() + generated_hash = await file_model.get_hash() + + assert generated_hash == expected_hash + + +@pytest.mark.asyncio +async def test_remote_file_download(tmp_path): + mock_dataset = MagicMock(spec=BaseRemoteDataset) + remote = MockRemoteFile(path="remote/path.txt", dataset=mock_dataset) + dest = tmp_path / "downloaded.txt" + + result = await remote.download(output=dest) + assert result.path == dest + assert dest.exists() + + +def test_pydantic_validation(): + with pytest.raises(ValidationError): + MockRemoteFile(path="missing_parent") diff --git a/pysus/tests/api/test_types.py b/pysus/tests/api/test_types.py new file mode 100644 index 00000000..775c9cfd --- /dev/null +++ b/pysus/tests/api/test_types.py @@ -0,0 +1,53 @@ +from pysus.api.types import FileType, State + + +class TestFileType: + def test_file_types_are_valid(self): + valid_types: list[FileType] = [ + "FILE", + "DIR", + "PARQUET", + "CSV", + "JSON", + "PDF", + "DBC", + "DBF", + "ZIP", + ] + for ft in valid_types: + assert ft in FileType.__args__ + + +class TestState: + def test_all_brazilian_states_present(self): + expected_states = { + "AC", + "AL", + "AP", + "AM", + "BA", + "CE", + "ES", + "GO", + "MA", + "MT", + "MS", + "MG", + "PA", + "PB", + "PR", + "PE", + "PI", + "RJ", + "RN", + "RS", + "RO", + "RR", + "SC", + "SP", + "SE", + "TO", + "DF", + } + actual_states = set(State.__args__) # type: ignore + assert actual_states == expected_states diff --git a/pysus/tests/test_available_databases.py b/pysus/tests/test_available_databases.py deleted file mode 100644 index b11c61b1..00000000 --- a/pysus/tests/test_available_databases.py +++ /dev/null @@ -1,158 +0,0 @@ -import unittest - -import pysus -from pysus.ftp import Database - - -class TestAvailableDatabases(unittest.TestCase): - """Test suite for AVAILABLE_DATABASES registry""" - - def test_available_databases_exists(self): - """Verify AVAILABLE_DATABASES is accessible from pysus namespace""" - self.assertTrue(hasattr(pysus, "AVAILABLE_DATABASES")) - self.assertIsInstance(pysus.AVAILABLE_DATABASES, list) - - def test_available_databases_not_empty(self): - """Verify AVAILABLE_DATABASES list contains entries""" - self.assertGreater(len(pysus.AVAILABLE_DATABASES), 0) - - def test_all_are_database_classes(self): - """Verify all entries inherit from Database base class""" - for db_class in pysus.AVAILABLE_DATABASES: - with self.subTest(db_class=db_class): - self.assertTrue( - issubclass(db_class, Database), - f"{db_class.__name__} does not inherit from Database", - ) - - def test_all_have_required_attributes(self): - """Verify all database classes have name, paths, metadata""" - for db_class in pysus.AVAILABLE_DATABASES: - with self.subTest(db_class=db_class): - db_instance = db_class() - self.assertTrue( - hasattr(db_instance, "name"), - f"{db_class.__name__} missing 'name' attribute", - ) - self.assertTrue( - hasattr(db_instance, "paths"), - f"{db_class.__name__} missing 'paths' attribute", - ) - self.assertTrue( - hasattr(db_instance, "metadata"), - f"{db_class.__name__} missing 'metadata' attribute", - ) - - def test_all_have_valid_metadata(self): - """Verify metadata contains required fields""" - required_fields = {"long_name", "source", "description"} - for db_class in pysus.AVAILABLE_DATABASES: - with self.subTest(db_class=db_class): - db_instance = db_class() - metadata_keys = set(db_instance.metadata.keys()) - self.assertTrue( - required_fields.issubset(metadata_keys), - f"{db_class.__name__} metadata missing required fields. " - f"Expected: {required_fields}, Got: {metadata_keys}", - ) - # verify values exist (can be strings or tuples) - for field in required_fields: - value = db_instance.metadata[field] - if field == "source": - # can be a string or tuple of strings - self.assertTrue( - isinstance(value, (str, tuple)), - f"{db_class.__name__}.metadata['source'] " - f"must be str or tuple", - ) - if isinstance(value, tuple): - self.assertTrue( - all(isinstance(s, str) for s in value), - f"{db_class.__name__}.metadata['source'] " - f"tuple must contain only strings", - ) - else: - # long_name and description should be strings - # Note: Some databases may have empty descriptions - self.assertIsInstance( - value, - str, - f"{db_class.__name__}.metadata['{field}'] " - f"is not a string", - ) - - def test_expected_databases_present(self): - """Verify all expected database classes are included""" - expected_databases = { - "CIHA", - "CNES", - "IBGEDATASUS", - "PNI", - "SIA", - "SIH", - "SIM", - "SINAN", - "SINASC", - } - actual_databases = { - db_class.__name__ for db_class in pysus.AVAILABLE_DATABASES - } - self.assertEqual( - expected_databases, - actual_databases, - f"Database list mismatch. " - f"Missing: {expected_databases - actual_databases}, " - f"Extra: {actual_databases - expected_databases}", - ) - - def test_can_instantiate_all_databases(self): - """Verify all database classes can be instantiated without errors""" - for db_class in pysus.AVAILABLE_DATABASES: - with self.subTest(db_class=db_class): - try: - db_instance = db_class() - self.assertIsInstance(db_instance, Database) - except Exception as e: - self.fail( - f"Failed to instantiate {db_class.__name__}: {e}" - ) - - def test_list_order_is_consistent(self): - """Document that the list order is alphabetical by class name""" - class_names = [ - db_class.__name__ for db_class in pysus.AVAILABLE_DATABASES - ] - sorted_names = sorted(class_names) - self.assertEqual( - class_names, - sorted_names, - "AVAILABLE_DATABASES should be in alphabetical order", - ) - - def test_usage_example(self): - """Demonstrate iteration pattern for accessing metadata""" - databases_info = [] - for db_class in pysus.AVAILABLE_DATABASES: - db = db_class() - databases_info.append( - { - "name": db.name, - "long_name": db.metadata["long_name"], - "description": db.metadata["description"], - } - ) - - self.assertEqual(len(databases_info), 9) - - # vrify all entries have the expected structure - for info in databases_info: - self.assertIn("name", info) - self.assertIn("long_name", info) - self.assertIn("description", info) - self.assertTrue(isinstance(info["name"], str)) - self.assertTrue(isinstance(info["long_name"], str)) - self.assertTrue(isinstance(info["description"], str)) - - -if __name__ == "__main__": - unittest.main() diff --git a/pysus/tests/test_data/EPR-2016-06-01-2016.dbf b/pysus/tests/test_data/EPR-2016-06-01-2016.dbf deleted file mode 100644 index 56c3cbbe..00000000 Binary files a/pysus/tests/test_data/EPR-2016-06-01-2016.dbf and /dev/null differ diff --git a/pysus/tests/test_data/__init__.py b/pysus/tests/test_data/__init__.py deleted file mode 100644 index 6289536e..00000000 --- a/pysus/tests/test_data/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -""" -Created on 12/12/18 -by fccoelho -license: GPL V3 or Later -""" diff --git a/pysus/tests/test_data/test_Infodengue.py b/pysus/tests/test_data/test_Infodengue.py deleted file mode 100644 index ca351b9f..00000000 --- a/pysus/tests/test_data/test_Infodengue.py +++ /dev/null @@ -1,102 +0,0 @@ -import unittest - -import pandas as pd -import pytest -from pysus.online_data.Infodengue import download, normalize, search_string - - -class InfoDengueTestCase(unittest.TestCase): - @pytest.mark.timeout(5) - def test_search_string(self): - get_from_dict = search_string("Curitiba") - cites_mathes = { - "Acajutiba": 2900306, - "Aratiba": 4300901, - "Bacurituba": 2101350, - "Buriti": 2102200, - "Buriti Bravo": 2102309, - "Buritirama": 2904753, - "Buritirana": 2102358, - "Buritis": 3109303, - "Buritizal": 3508207, - "Caatiba": 2904803, - "Caraíbas": 2906899, - "Carnaíba": 2603900, - "Caturité": 2504355, - "Craíbas": 2702355, - "Criciúma": 4204608, - "Cristais": 3120201, - "Cristal": 4306056, - "Cristina": 3120508, - "Cromínia": 5206503, - "Cruzília": 3120805, - "Cuiabá": 5103403, - "Cuitegi": 2505204, - "Curimatá": 2203206, - "Curitiba": 4106902, - "Curitibanos": 4204806, - "Curiúva": 4107009, - "Custódia": 2605103, - "Cutias": 1600212, - "Duartina": 3514502, - "Guaraíta": 5209291, - "Guariba": 3518602, - "Guaribas": 2204550, - "Ibatiba": 3202454, - "Ibicuitinga": 2305332, - "Irituia": 1503507, - "Itagibá": 2915205, - "Itaituba": 1503606, - "Itaiçaba": 2306207, - "Itatiba": 3523404, - "Itaíba": 2607505, - "Itiúba": 2917003, - "Jequitibá": 3135704, - "Juquitiba": 3526209, - "Marituba": 1504422, - "Mauriti": 2308104, - "Mucurici": 3203601, - "Muribeca": 2804300, - "Muritiba": 2922300, - "Peritiba": 4212601, - "Piritiba": 2924801, - "Taquarituba": 3553807, - "Tumiritinga": 3169505, - "Turiúba": 3555208, - "Umburatiba": 3170305, - "Urucurituba": 1304401, - } - pattern_city_names = search_string(substr="r de jAiro") - - self.assertIsInstance(get_from_dict, dict) - self.assertEqual(cites_mathes, get_from_dict) - self.assertIn("Rio de Janeiro", pattern_city_names.keys()) - self.assertIn(4204806, get_from_dict.values()) - - @pytest.mark.timeout(5) - def test_normalize(self): - normalized_str = normalize("Rio das Ostras") - - substr_list = normalized_str.split(".") - - self.assertIsInstance(substr_list, list) - # self.assertEqual(substr_list, ['rio', 'das', 'ostras']) - self.assertEqual(normalized_str, "rio das ostras") - - @pytest.mark.timeout(5) - def test_download(self): - df = download( - "dengue", - 202129, - 202152, - "Rio de Janeiro", - ) - df_size = (29, 24) - - self.assertIsInstance(df, pd.DataFrame) - self.assertGreater(len(df), 0) - self.assertEqual(df_size, df.shape) - - -if __name__ == "__main__": - unittest.main() diff --git a/pysus/tests/test_data/test_Infogripe.py b/pysus/tests/test_data/test_Infogripe.py deleted file mode 100644 index 35a52ef9..00000000 --- a/pysus/tests/test_data/test_Infogripe.py +++ /dev/null @@ -1,17 +0,0 @@ -import unittest - -import pytest -from pysus.online_data.Infogripe import DATASETS, download - - -class InfoGripeTestCase(unittest.TestCase): - @pytest.mark.skip(reason="This test takes too long") - @pytest.mark.timeout(5) - def test_download(self): - for ds in DATASETS.keys(): - df = download(ds) - self.assertGreater(len(df), 0) # add assertion here - - -if __name__ == "__main__": - unittest.main() diff --git a/pysus/tests/test_data/test_vaccine.py b/pysus/tests/test_data/test_vaccine.py deleted file mode 100644 index 3863a891..00000000 --- a/pysus/tests/test_data/test_vaccine.py +++ /dev/null @@ -1,19 +0,0 @@ -import os -import unittest - -import pandas as pd -import pytest -from pysus.online_data.vaccine import download_covid - - -class VaccineTestCase(unittest.TestCase): - @pytest.mark.timeout(15) - @unittest.skipIf(os.getenv("CI"), "Forbidden on CI") - def test_Download(self): - df = download_covid("BA", only_header=True) - self.assertIsInstance(df, pd.DataFrame) - self.assertEqual(df.shape, (10000, 42)) - - -if __name__ == "__main__": - unittest.main() diff --git a/pysus/tests/test_decoders.py b/pysus/tests/test_decoders.py deleted file mode 100644 index 2ced897c..00000000 --- a/pysus/tests/test_decoders.py +++ /dev/null @@ -1,168 +0,0 @@ -# -*- coding:utf-8 -*- -""" -Created on 19/07/16 -by fccoelho -license: GPL V3 or Later -""" - -import unittest - -import numpy as np -import pandas as pd -import pytest -from numpy.testing import * # noqa -from pysus.online_data.SIM import download, get_CID10_chapters_table -from pysus.preprocessing import decoders -from pysus.preprocessing.SIM import ( - group_and_count, - redistribute_cid_chapter, - redistribute_missing, -) - - -def get_CID10_code(index, code): - try: - code = index[code] - except KeyError: - code = -1 - return code - - -class TestDecoder(unittest.TestCase): - @pytest.mark.timeout(10) - def test_decodifica_idade_retorna_em_anos(self): - res = decoders.decodifica_idade_SINAN(4010, unidade="Y") - self.assertEqual(res, 10) - res = decoders.decodifica_idade_SINAN(3120, unidade="Y") - self.assertEqual(res, 10) - res = decoders.decodifica_idade_SINAN(2365, unidade="Y") - self.assertAlmostEqual(res, 1, places=4) - res = decoders.decodifica_idade_SINAN(1480, unidade="Y") - self.assertAlmostEqual(res, 0.0547, places=3) - - @pytest.mark.timeout(10) - def test_decodifica_lista_idades_retorna_em_anos(self): - res = decoders.decodifica_idade_SINAN([4010] * 3, unidade="Y") - assert_array_equal(res, np.array([10] * 3)) # noqa - res = decoders.decodifica_idade_SINAN([3120] * 4, unidade="Y") - assert_array_equal(res, np.array([10] * 4)) # noqa - res = decoders.decodifica_idade_SINAN([2365] * 2, unidade="Y") - assert_array_equal(res, np.array([1, 1])) # noqa - res = decoders.decodifica_idade_SINAN([1480] * 5, unidade="Y") - assert_array_almost_equal( # noqa - res, np.array([0.0547] * 5), decimal=3 - ) # noqa - - @pytest.mark.timeout(10) - def test_decodifica_idade_retorna_em_anos_SIM(self): - res = decoders.decodifica_idade_SIM(["501"], unidade="Y") - assert_array_equal(res, np.array([101])) # noqa - res = decoders.decodifica_idade_SIM(["401"] * 2, unidade="Y") - assert_array_equal(res, np.array([1] * 2)) # noqa - res = decoders.decodifica_idade_SIM(["311"] * 3, unidade="Y") - assert_array_almost_equal( # noqa - res, np.array([0.904109589] * 3), decimal=3 - ) # noqa - res = decoders.decodifica_idade_SIM(["224"] * 4, unidade="Y") - assert_array_almost_equal( # noqa - res, np.array([0.065753425] * 4), decimal=3 - ) # noqa - res = decoders.decodifica_idade_SIM(["130"] * 5, unidade="Y") - assert_array_almost_equal( # noqa - res, np.array([0.00274] * 5), decimal=3 - ) # noqa - res = decoders.decodifica_idade_SIM(["010"] * 6, unidade="m") - assert_array_almost_equal(res, np.array([10.0] * 6)) # noqa - - @pytest.mark.timeout(10) - def test_verifica_geocodigo(self): - self.assertTrue(decoders.is_valid_geocode(3304557)) - - @pytest.mark.timeout(60) - def test_translate_variables(self): - df = download(groups="cid10", states="sp", years=2010).to_dataframe() - df = decoders.translate_variables_SIM(df) - sex_array = set(df["SEXO"].unique().tolist()) - assert sex_array <= set(["Masculino", "Feminino", "NA"]) - raca_array = set(df["RACACOR"].unique().tolist()) - assert raca_array <= set( - ["Branca", "Preta", "Amarela", "nan", "Parda", "Indígena", "NA"] - ) - - @pytest.mark.timeout(60) - def test_get_cid_chapter(self): - code_index = decoders.get_CID10_code_index(get_CID10_chapters_table()) - test_causes = pd.DataFrame( - { - "causas": [ - "A00", - "B99", - "D48", - "D49", - "D50", - "H00", - "H59", - "H60", - "V00", - "W00", - "X00", - "U00", - "U04", - ] - } - ) - results = test_causes["causas"].map( - lambda x: get_CID10_code(code_index, x) - ) - assert_array_equal( # noqa - results, [1, 1, 2, -1, 3, 7, 7, 8, -1, 20, 20, -1, 22] - ) - - @pytest.mark.timeout(60) - def test_group_and_count(self): - df = download(groups="cid10", states="se", years=2010).to_dataframe() - df = decoders.translate_variables_SIM(df) - variables = ["CODMUNRES", "SEXO", "IDADE_ANOS"] - counts = group_and_count(df, variables) - sample = ( - counts[counts["COUNTS"] != 0]["COUNTS"] - .sample(20, random_state=0) - .tolist() - ) - self.assertGreater(sum(sample), 0) - - @pytest.mark.skip(reason="This test takes too long") - def test_redistribute(self): - df = download(groups="cid10", states="sp", years=2010).to_dataframe() - df = decoders.translate_variables_SIM( - df, age_classes=True, classify_cid10_chapters=True - ) - variables = ["CODMUNRES", "SEXO", "IDADE_ANOS", "CID10_CHAPTER"] - df = df[variables] - counts = group_and_count(df, variables) - sum_original = counts["COUNTS"].sum() - counts = redistribute_missing(counts, variables) - sum_redistributed = counts["COUNTS"].sum() - - assert_almost_equal(sum_original, sum_redistributed, 10) # noqa - - sample = ( - counts[counts["COUNTS"] != 0]["COUNTS"] - .sample(20, random_state=0) - .tolist() - ) - assert len(sample) == 20 - - counts = redistribute_cid_chapter( - counts, ["CODMUNRES", "SEXO", "IDADE_ANOS"] - ) - sum_redistributed = counts["COUNTS"].sum() - - assert_almost_equal(sum_original, sum_redistributed, 10) # noqa - - sample = ( - counts[counts["COUNTS"] != 0]["COUNTS"] - .sample(20, random_state=0) - .tolist() - ) - assert len(sample) == 20 diff --git a/pysus/tests/test_ftp.py b/pysus/tests/test_ftp.py deleted file mode 100644 index 316673a2..00000000 --- a/pysus/tests/test_ftp.py +++ /dev/null @@ -1,162 +0,0 @@ -import unittest -from pathlib import Path - -import pandas as pd -from pysus.data.local import ParquetSet -from pysus.ftp import DIRECTORY_CACHE, Database, Directory, File -from pysus.ftp.databases import ( - ciha, - cnes, - ibge_datasus, - pni, - sia, - sih, - sim, - sinan, - sinasc, -) - - -def _test_file(testcase: unittest.TestCase, file: File): - testcase.assertTrue(isinstance(file, File)) - testcase.assertTrue(set(["size", "type", "modify"]) == set(file.info)) - testcase.assertTrue(bool(file.basename)) - testcase.assertTrue(bool(file.name)) - testcase.assertTrue(bool(file.path)) - testcase.assertTrue(str(Path(file.path).parent) == file.parent_path) - - -def _test_database(testcase: unittest.TestCase, database: Database): - testcase.assertTrue(isinstance(database, Database)) - testcase.assertTrue(bool(database.content)) - testcase.assertTrue( - set(["description", "long_name", "source"]) == set(database.metadata) - ) - - downloaded_file = database.download( - [f for f in database.files if ".zip" not in f.basename][0] - ) - testcase.assertTrue(isinstance(downloaded_file, ParquetSet)) - testcase.assertTrue(Path(downloaded_file.path).exists()) - testcase.assertTrue( - isinstance(downloaded_file.to_dataframe(), pd.DataFrame) - ) - testcase.assertTrue(not downloaded_file.to_dataframe().empty) - - -class TestDirectoryAndFile(unittest.TestCase): - def setUp(self): - self.root = Directory("/").load() - - def test_root_load(self): - self.assertTrue(self.root.loaded) - self.assertTrue(Directory("/dissemin") in self.root.content) - - def test_root_reload(self): - root = self.root.reload() - self.assertTrue(root.content == self.root.content) - - def test_root_directory(self): - self.assertTrue(self.root.name == "/") - self.assertTrue(self.root.path == "/") - self.assertTrue(self.root.parent == self.root) # outermost parent - - def test_directory_cache(self): - self.assertTrue(DIRECTORY_CACHE["/"] == self.root) - self.assertTrue(DIRECTORY_CACHE["/"] == self.root) - - def test_sinan_file(self): - file = Directory("/dissemin/publicos/SINAN/DADOS/FINAIS").content[0] - _test_file(self, file) - - -class TestDatabases(unittest.TestCase): - def test_ciha(self): - database = ciha.CIHA().load() - _test_database(self, database) - self.assertTrue(database.name == "CIHA") - self.assertSetEqual( - set(database.describe(database.files[0])), - {"group", "last_update", "month", "name", "size", "uf", "year"}, - ) - self.assertEqual(len(database.format(database.files[0])), 4) - - def test_cnes(self): - database = cnes.CNES().load("DC") - _test_database(self, database) - self.assertTrue(database.name == "CNES") - self.assertSetEqual( - set(database.describe(database.files[0])), - {"group", "last_update", "month", "name", "size", "uf", "year"}, - ) - self.assertEqual(len(database.format(database.files[0])), 4) - - def test_pni(self): - database = pni.PNI().load() - _test_database(self, database) - self.assertTrue(database.name == "PNI") - self.assertSetEqual( - set(database.describe(database.files[0])), - {"group", "last_update", "name", "size", "uf", "year"}, - ) - self.assertEqual(len(database.format(database.files[0])), 3) - - def test_ibge_datasus(self): - database = ibge_datasus.IBGEDATASUS().load() - _test_database(self, database) - self.assertTrue(database.name == "IBGE-DataSUS") - self.assertSetEqual( - set(database.describe(database.files[0])), - {"last_update", "name", "size", "year"}, - ) - self.assertEqual(len(database.format(database.files[0])), 1) - - def test_sinan(self): - database = sinan.SINAN().load() - _test_database(self, database) - self.assertTrue(database.name == "SINAN") - self.assertSetEqual( - set(database.describe(database.files[0])), - {"disease", "last_update", "name", "size", "year"}, - ) - self.assertEqual(len(database.format(database.files[0])), 2) - - def test_sih(self): - database = sih.SIH().load() - _test_database(self, database) - self.assertTrue(database.name == "SIH") - self.assertSetEqual( - set(database.describe(database.files[0])), - {"group", "last_update", "month", "name", "size", "uf", "year"}, - ) - self.assertEqual(len(database.format(database.files[0])), 4) - - def test_sinasc(self): - database = sinasc.SINASC().load() - _test_database(self, database) - self.assertTrue(database.name == "SINASC") - self.assertSetEqual( - set(database.describe(database.files[0])), - {"group", "last_update", "name", "size", "uf", "year"}, - ) - self.assertEqual(len(database.format(database.files[0])), 3) - - def test_sia(self): - database = sia.SIA().load() - _test_database(self, database) - self.assertTrue(database.name == "SIA") - self.assertSetEqual( - set(database.describe(database.files[0])), - {"group", "last_update", "month", "name", "size", "uf", "year"}, - ) - self.assertEqual(len(database.format(database.files[0])), 4) - - def test_sim(self): - database = sim.SIM().load() - _test_database(self, database) - self.assertTrue(database.name == "SIM") - self.assertSetEqual( - set(database.describe(database.files[0])), - {"group", "last_update", "name", "size", "uf", "year"}, - ) - self.assertEqual(len(database.format(database.files[0])), 3) diff --git a/pysus/tests/test_ibge.py b/pysus/tests/test_ibge.py deleted file mode 100644 index 4f49530d..00000000 --- a/pysus/tests/test_ibge.py +++ /dev/null @@ -1,71 +0,0 @@ -import unittest - -import pandas as pd -import pytest -from pysus.online_data import IBGE - - -class SIDRA(unittest.TestCase): - @pytest.mark.timeout(120) - def test_get_aggregates(self): - df = IBGE.list_agregados() - self.assertIsInstance(df, pd.DataFrame) - self.assertGreater(df.size, 0) - - @pytest.mark.skip(reason="This test takes too long") - def test_localidades_por_agregado(self): - df = IBGE.localidades_por_agregado(475, nivel="N3") - self.assertIsInstance(df, pd.DataFrame) - self.assertGreater(df.size, 0) - - @pytest.mark.timeout(120) - @pytest.mark.skip(reason="Failing?") - def test_lista_periodos(self): - df = IBGE.lista_periodos(475) - self.assertIsInstance(df, pd.DataFrame) - self.assertGreater(df.size, 0) - - @pytest.mark.timeout(120) - def test_get_sidra_table(self): - df = IBGE.get_sidra_table( - 200, - territorial_level=6, - geocode=4220000, - period="last", - classification=2, - categories="all", - ) - self.assertIsInstance(df, pd.DataFrame) - self.assertGreater(df.size, 0) - - @pytest.mark.skip(reason="This test takes too long") - def test_metadata(self): - md = IBGE.metadados(475) - self.assertIsInstance(md, dict) - self.assertGreater(len(md), 0) - - @pytest.mark.timeout(120) - def test_FetchData(self): - ds = IBGE.FetchData( - 475, - periodos=1996, - variavel=93, - localidades="N3[all]", - classificacao="58[all]|2[4,5]|1[all]", - view="flat", - ) - self.assertIsInstance(ds, IBGE.FetchData) - self.assertGreater(len(ds.JSON), 0) - - @pytest.mark.timeout(120) - def test_get_population(self): - l1 = IBGE.get_population(year=2021, source="POP") - self.assertEqual(type(l1), pd.DataFrame) - self.assertEqual(len(l1), 5570) - l2 = IBGE.get_population(year=2012, source="projpop") - self.assertEqual(type(l2), pd.DataFrame) - self.assertEqual(len(l2), 4914) - - -if __name__ == "__main__": - unittest.main() diff --git a/pysus/tests/test_utilities.py b/pysus/tests/test_utilities.py deleted file mode 100644 index 129bcc8d..00000000 --- a/pysus/tests/test_utilities.py +++ /dev/null @@ -1,21 +0,0 @@ -import unittest - -import pytest -from pysus.utilities.brasil import get_city_name_by_geocode - - -class TestGetMunNameByGeocode(unittest.TestCase): - @pytest.mark.timeout(5) - def test_get_mun_name_by_geocode(self): - rio = get_city_name_by_geocode(3304557) - self.assertEqual(rio, "Rio de Janeiro") - - vale = get_city_name_by_geocode(1101757) - self.assertEqual(vale, "Vale do Anari") - - santa_helena = get_city_name_by_geocode(5219308) - self.assertEqual(santa_helena, "Santa Helena de Goiás") - - -if __name__ == "__main__": - unittest.main() diff --git a/pysus/tests/tui/__init__.py b/pysus/tests/tui/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/pysus/tui/__init__.py b/pysus/tui/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/pysus/tui/app.py b/pysus/tui/app.py new file mode 100644 index 00000000..dacaa12a --- /dev/null +++ b/pysus/tui/app.py @@ -0,0 +1,251 @@ +from __future__ import annotations + +import asyncio + +from pysus import __version__ +from pysus.api import PySUSClient +from pysus.api.client import DownloadStatus +from pysus.tui.i18n import TRANSLATIONS, t +from pysus.tui.screens import ( + ConfigScreen, + InfoModal, + LoadingScreen, + MainScreen, + SearchModal, +) +from textual import work +from textual.app import App +from textual.binding import Binding +from textual.widgets import ( + ContentSwitcher, + DataTable, + ProgressBar, + Static, + Tree, +) + + +class PySUS(App): + TITLE = "PySUS" + SUB_TITLE = f"v{__version__}" + CSS_PATH = "style.tcss" + + lang: str + pysus: PySUSClient + + BINDINGS = [ + Binding("escape", "back", "Back"), + Binding("q", "quit", "Quit"), + Binding("f10", "push_screen('config')", "Config", priority=True), + Binding("i", "show_info", "Info"), + Binding("d", "download", "Download"), + Binding("/", "search", "Search"), + Binding("h", "focus_previous", "Focus Prev", show=False), + Binding("l", "focus_next", "Focus Next", show=False), + Binding("j", "cursor_down", "Down", show=False), + Binding("k", "cursor_up", "Up", show=False), + ] + + SCREENS = { + "main": MainScreen, + "config": ConfigScreen, + } + + def __init__(self, lang="en", **kwargs): + self.lang = lang if lang in TRANSLATIONS else "en" + super().__init__(**kwargs) + + async def on_mount(self) -> None: + self.pysus = PySUSClient() + await self.push_screen(LoadingScreen()) + self.init() + + @work + async def init(self) -> None: + try: + await self.pysus.__aenter__() + await asyncio.sleep(2) + self.switch_screen("main") + except Exception as e: # noqa + err_msg = t("loading_err", lang=self.lang) + self.notify(f"{err_msg}: {e}", severity="error") + + @work + async def action_download(self) -> None: + screen = self.screen + if not isinstance(screen, MainScreen): + return + + switcher = screen.query_one("#client-switcher", ContentSwitcher) + current_client = switcher.current + + if current_client == "ducklake": + table = screen.query_one("#ducklake", DataTable) + manager = screen.ducklake_manager + elif current_client == "ftp": + table = screen.query_one("#ftp", DataTable) + manager = screen.ftp_manager + else: + table = screen.query_one("#dadosgov", DataTable) + manager = screen.dadosgov_manager + + if table.cursor_row is None: + return + + saved_row_index = table.cursor_row + selected_wrapper = manager.filtered[saved_row_index] + file_item = selected_wrapper.raw + + progress_bar = screen.query_one( + "#download-progress", + ProgressBar, + ) + progress_bar.add_class("visible") + + download_text = screen.query_one("#download-text", Static) + download_text.update(f"Downloading: {file_item.name}") + download_text.add_class("visible") + + def run_download(): + import anyio + + async def do_download(): + return await self.pysus.download_to_parquet(file_item) + + return anyio.run(do_download) + + await asyncio.get_event_loop().run_in_executor(None, run_download) + + progress_bar.remove_class("visible") + download_text.remove_class("visible") + download_text.update("") + + completed_paths = self.pysus.get_completed_remote_paths() + manager.set_items( + [w.raw for w in manager.items], + downloaded_paths=completed_paths, + ) + + if hasattr(manager, "search_text") and manager.search_text: + manager.apply_filter(manager.search_text) + + manager.populate(table) + self.populate_local_tree() + + @work + async def refresh_local_tree(self) -> None: + await asyncio.sleep(0.5) + self.populate_local_tree() + + def action_back(self) -> None: + if isinstance(self.screen, ConfigScreen): + self.pop_screen() + + def action_search(self) -> None: + screen = self.screen + if not isinstance(screen, MainScreen): + return + + def perform_search(val: str | None) -> None: + switcher = screen.query_one("#client-switcher", ContentSwitcher) + current_client = switcher.current + if current_client == "ducklake": + screen.ducklake_manager.apply_filter(val) + screen.ducklake_manager.populate( + screen.query_one("#ducklake", DataTable) + ) + elif current_client == "ftp": + screen.ftp_manager.apply_filter(val) + screen.ftp_manager.populate(screen.query_one("#ftp", DataTable)) + else: + screen.dadosgov_manager.apply_filter(val) + screen.dadosgov_manager.populate( + screen.query_one("#dadosgov", DataTable) + ) + + self.push_screen(SearchModal(), perform_search) + + def action_show_info(self) -> None: + screen = self.screen + if not isinstance(screen, MainScreen): + return + + switcher = screen.query_one("#client-switcher", ContentSwitcher) + current_client = switcher.current + + if current_client == "ducklake": + table = screen.query_one("#ducklake", DataTable) + manager = screen.ducklake_manager + elif current_client == "ftp": + table = screen.query_one("#ftp", DataTable) + manager = screen.ftp_manager + else: + table = screen.query_one("#dadosgov", DataTable) + manager = screen.dadosgov_manager + + try: + if table.cursor_row is not None: + selected_wrapper = manager.filtered[table.cursor_row] + self.push_screen(InfoModal(selected_wrapper.raw)) + except Exception as e: # noqa + self.notify(f"Metadata error: {e}", severity="error") + + def action_cursor_down(self) -> None: + if isinstance(self.focused, (DataTable, Tree)): + self.focused.action_cursor_down() + + def action_cursor_up(self) -> None: + if isinstance(self.focused, (DataTable, Tree)): + self.focused.action_cursor_up() + + async def action_quit(self) -> None: + await self.pysus.__aexit__(None, None, None) + self.exit() + + def on_screen_activated(self) -> None: + if isinstance(self.screen, MainScreen): + self.populate_local_tree() + + def populate_local_tree(self) -> None: + screen = self.screen + if not isinstance(screen, MainScreen): + return + try: + tree = screen.query_one("#local-tree", Tree) + except Exception: # noqa + return + + tree.clear() + tree.root.expand_all() + hierarchy = self.pysus.get_local_hierarchy() + + status_icons = { + DownloadStatus.COMPLETED: "ok", + DownloadStatus.DOWNLOADING: "⏳", + DownloadStatus.FAILED: "❌", + DownloadStatus.PENDING: "💤", + DownloadStatus.MISSING: "❓", + } + + for client, datasets in hierarchy.items(): + client_node = tree.root.add(f"📂 {client}", expand=True) + for dataset, groups in datasets.items(): + ds_node = client_node.add(f"📦 {dataset}", expand=True) + for group, files in groups.items(): + parent = ds_node.add(f"📁 {group}") if group else ds_node + for f in files: + status = status_icons.get(f["status"], None) + + if not status: + icon = "📄 " + elif status == "ok": + icon = "" + else: + icon = f"{status} " + + parent.add_leaf(f"{icon}{f['name']}", data=f["record"]) + + +if __name__ == "__main__": + app = PySUS(lang="pt") + app.run() diff --git a/pysus/tui/i18n.py b/pysus/tui/i18n.py new file mode 100644 index 00000000..91067d75 --- /dev/null +++ b/pysus/tui/i18n.py @@ -0,0 +1,105 @@ +TRANSLATIONS: dict[str, dict[str, str | dict[str, str]]] = { + "en": { + "welcome": "Welcome to PySUS Client", + "clients": "Clients", + "local": "Local", + "remote": "Remote", + "search": "Search or leave empty to list all", + "loading_err": "Failed to load", + "loading": "Loading", + "settings": "Settings", + "quit": "Quit", + "files": "Files", + "ftp_browser": "FTP", + "ducklake_browser": "DuckLake", + "fetching": "Fetching datasets...", + "name": "Name", + "type": "Type", + "info": "Info", + "path": "Path", + "size": "Size", + "year": "Year", + "month": "Month", + "modified": "Modified", + "state": "State", + "description": "Description", + "group": "Group", + "months": { + "1": "Jan", + "2": "Feb", + "3": "Mar", + "4": "Apr", + "5": "May", + "6": "Jun", + "7": "Jul", + "8": "Aug", + "9": "Sep", + "10": "Oct", + "11": "Nov", + "12": "Dec", + }, + "esc": "Press ESC to close", + }, + "pt": { + "welcome": "Bem-vindo ao Cliente PySUS", + "clients": "Clientes", + "local": "Local", + "remote": "Remoto", + "search": "Busque ou deixe em branco para listar tudo", + "loading_err": "Erro ao carregar", + "loading": "Carregando", + "settings": "Configurações", + "quit": "Sair", + "files": "Arquivos", + "ftp_browser": "FTP", + "ducklake_browser": "DuckLake", + "fetching": "Carregando datasets...", + "name": "Nome", + "type": "Tipo", + "info": "Info", + "path": "Path", + "size": "Tamanho", + "year": "Ano", + "month": "Mês", + "modified": "Modificado", + "state": "Estado", + "description": "Descrição", + "group": "Grupo", + "months": { + "1": "Jan", + "2": "Fev", + "3": "Mar", + "4": "Abr", + "5": "Mai", + "6": "Jun", + "7": "Jul", + "8": "Ago", + "9": "Set", + "10": "Out", + "11": "Nov", + "12": "Dez", + }, + "esc": "ESC para fechar", + }, +} + +SUPPORTED_LANGUAGES = tuple(TRANSLATIONS.keys()) + + +def t(field: str, default: str = "", lang: str = "en") -> str: + if lang not in TRANSLATIONS: + lang = "en" + + data: dict = TRANSLATIONS[lang] + keys = field.split(".") + + for key in keys: + value = data.get(key) + if isinstance(value, str): + return value + if isinstance(value, dict): + data = value + else: + return default + + return default diff --git a/pysus/tui/models.py b/pysus/tui/models.py new file mode 100644 index 00000000..3be866f0 --- /dev/null +++ b/pysus/tui/models.py @@ -0,0 +1,258 @@ +from dataclasses import dataclass +from typing import Any + +import humanize +from textual.widgets import DataTable + + +@dataclass +class SourceRef: + source: str # "ducklake", "ftp", "local" + path: str | None = None + is_downloaded: bool = False + remote_modified: str | None = None + + +class BaseTUIItem: + def __init__(self, raw): + self.raw = raw + self.name = getattr(raw, "name", str(raw)) + self.type = raw.__class__.__name__ + self._links: list[SourceRef] = [] + self.is_downloading: bool = False + + @property + def source_key(self) -> str: + parts = [self.name] + for attr in ("year", "month", "state"): + val = getattr(self.raw, attr, None) + if val: + parts.append(str(val)) + return ":".join(parts) + + def add_link( + self, + source: str, + path: str | None = None, + is_downloaded: bool = False, + remote_modified: str | None = None, + ): + self._links.append( + SourceRef(source, path, is_downloaded, remote_modified) + ) + + @property + def links(self) -> list[SourceRef]: + return self._links + + def get_columns(self) -> list[str]: + return [self.name, self.type, "", ""] + + +class File(BaseTUIItem): + def __init__( + self, + raw, + is_downloaded: bool = False, + is_downloading: bool = False, + source: str = "unknown", + path: str | None = None, + remote_modified: str | None = None, + ): + super().__init__(raw) + self.is_downloaded = is_downloaded + self.is_downloading = is_downloading + self._source = source + if path: + self.add_link(source, path, is_downloaded, remote_modified) + + @property + def size(self) -> str: + raw_size = getattr(self.raw, "size", None) + if raw_size is not None and isinstance(raw_size, (int, float)): + return humanize.naturalsize(raw_size, binary=True) + return "-" + + @property + def modified(self) -> str: + raw_mod = getattr(self.raw, "modify", None) + if raw_mod: + if hasattr(raw_mod, "strftime"): + return raw_mod.strftime("%Y-%m-%d") + elif hasattr(raw_mod, "modified"): + mod = raw_mod.modified + if hasattr(mod, "strftime"): + return mod.strftime("%Y-%m-%d") + raw_dt = getattr(self.raw, "modify_date", None) + if raw_dt and hasattr(raw_dt, "strftime"): + return raw_dt.strftime("%Y-%m-%d") + return "-" + + def get_columns(self) -> list[str]: + display_name = self.name + link_indicators = [] + sources_seen = set() + item_type = self.type + downloaded = self.is_downloaded + + if self.is_downloading: + link_indicators.append("[yellow]◐[/yellow]") + + for link in self.links: + sources_seen.add(link.source) + if link.is_downloaded: + downloaded = True + link_indicators.append("[green]✓[/green]") + + if hasattr(self, "_source") and self._source not in sources_seen: + if downloaded or self.is_downloaded: + link_indicators = ["[green]✓[/green]"] + + if not link_indicators: + if downloaded or self.is_downloaded: + link_indicators = ["[green]✓[/green]"] + elif item_type in ( + "Dataset", + "BaseRemoteDataset", + "ConjuntoDados", + ): + link_indicators = ["[yellow]📦[/yellow]"] + item_type = "Dataset" + elif item_type in ("File", "CatalogFile"): + link_indicators = ["[yellow] [/yellow]"] + elif item_type in ("Group", "DatasetGroup"): + link_indicators = ["[yellow]📁[/yellow]"] + item_type = "Group" + + if link_indicators: + display_name = f"{display_name} {''.join(link_indicators)}" + + long_name = getattr(self.raw, "long_name", None) or "" + return [display_name, item_type, self.modified, self.size, long_name] + + +class Group(BaseTUIItem): + def get_columns(self) -> list[str]: + desc = getattr(self.raw, "long_name", "Directory") + modified = "-" + if hasattr(self.raw, "modify") and self.raw.modify: + if hasattr(self.raw.modify, "strftime"): + modified = self.raw.modify.strftime("%Y-%m-%d") + return [self.name, "Group", desc, modified, ""] + + +class Dataset(BaseTUIItem): + def get_columns(self) -> list[str]: + long_name = getattr(self.raw, "long_name", self.name) + modified = "-" + if hasattr(self.raw, "record") and hasattr(self.raw.record, "modified"): + mod = self.raw.record.modified + if hasattr(mod, "strftime"): + modified = mod.strftime("%Y-%m-%d") + return [self.name, "File", long_name, modified, ""] + + +class ContentManager: + def __init__(self): + self.items: list[BaseTUIItem] = [] + self.filtered: list[BaseTUIItem] = [] + self._item_index: dict[str, BaseTUIItem] = {} + self._search_text: str | None = None + + @property + def search_text(self) -> str | None: + return self._search_text + + def _normalize_key(self, name: str) -> str: + return name.replace(".parquet", "").replace(".dbc", "").upper() + + def _get_key(self, item: Any) -> str: + base = self._normalize_key(getattr(item, "name", "")) + year = getattr(item, "year", None) + month = getattr(item, "month", None) + if year: + base += f":{year}" + if month: + base += f":{month:02d}" + return base + + def set_items( + self, + raw_items: list, + downloaded_paths: set[str] | None = None, + downloading_paths: set[str] | None = None, + source: str = "unknown", + clear: bool = True, + ) -> None: + if clear: + self.items = [] + self._item_index = {} + + downloaded_paths = downloaded_paths or set() + downloading_paths = downloading_paths or set() + + new_items = [] + for item in raw_items: + key = self._get_key(item) + is_done = str(getattr(item, "path", None)) in downloaded_paths + is_downloading = ( + str(getattr(item, "path", None)) in downloading_paths + ) + remote_modified = None + + if hasattr(item, "remote_modified"): + remote_modified = str(item.remote_modified) + elif hasattr(item, "modify_date"): + remote_modified = str(item.modify_date) + + file_obj = File( + item, + is_downloaded=is_done, + is_downloading=is_downloading, + source=source, + path=getattr(item, "path", None), + remote_modified=remote_modified, + ) + + if key in self._item_index: + existing = self._item_index[key] + for link in file_obj.links: + existing.add_link( + link.source, + link.path, + link.is_downloaded, + link.remote_modified, + ) + else: + self._item_index[key] = file_obj + new_items.append(file_obj) + + self.items.extend(new_items) + self.filtered = list(self.items) + + def set_downloading(self, path: str, is_downloading: bool) -> None: + for item in self.items: + if str(getattr(item.raw, "path", None)) == path: + item.is_downloading = is_downloading + break + + def apply_filter(self, search_text: str | None) -> None: + self._search_text = search_text + if not search_text: + self.filtered = list(self.items) + else: + search_text = search_text.lower() + self.filtered = [ + item for item in self.items if search_text in item.name.lower() + ] + + def populate(self, table: DataTable, reset_cursor: bool = False) -> None: + if not reset_cursor: + cursor_row = table.cursor_row + else: + cursor_row = None + table.clear() + for item in self.filtered: + table.add_row(*item.get_columns()) + if cursor_row is not None and cursor_row < table.row_count: + table.move_cursor(row=cursor_row) diff --git a/pysus/tui/screens.py b/pysus/tui/screens.py new file mode 100644 index 00000000..a4d2a6f0 --- /dev/null +++ b/pysus/tui/screens.py @@ -0,0 +1,410 @@ +from __future__ import annotations + +from typing import TYPE_CHECKING + +import humanize +from pysus.tui.i18n import TRANSLATIONS, t +from pysus.tui.models import ContentManager +from textual import work +from textual.app import ComposeResult +from textual.binding import Binding +from textual.containers import Center, Grid, Horizontal, Middle, Vertical +from textual.screen import ModalScreen, Screen +from textual.widgets import ( + Button, + ContentSwitcher, + DataTable, + Footer, + Header, + Input, + Label, + LoadingIndicator, + ProgressBar, + Select, + Static, + Switch, + Tree, +) + +if TYPE_CHECKING: + from pysus.tui.types import PySUSApp # type: ignore + + +class PySUSScreen(Screen): + app: PySUSApp + + +def _get_app(screen: Screen) -> PySUSApp: + return screen.app # type: ignore[return-value] + + +class LoadingScreen(PySUSScreen): + def compose(self) -> ComposeResult: + app = _get_app(self) + lang = app.lang + yield Header() + with Vertical(id="loading-container"): + with Middle(): + yield Static(t("welcome", lang=lang), id="welcome-text") + yield Static(t("fetching", lang=lang), id="loading-status") + with Center(): + yield LoadingIndicator(id="loader") + yield Footer() + + def on_key(self, event) -> None: + if event.key == "q": + return + event.stop() + event.prevent_default() + + +class MainScreen(Screen): + BINDINGS = [ + Binding("f1", "switch_client('ducklake')", "DuckLake", priority=True), + Binding("f2", "switch_client('ftp')", "FTP", priority=True), + # Binding("f3", "switch_client('dadosgov')", "DadosGov", priority=True), + Binding("f10", "push_screen('config')", "Config", priority=True), + Binding("i", "show_info", "Info"), + Binding("d", "download", "Download"), + Binding("/", "search", "Search"), + Binding("escape", "back", "Back"), + Binding("q", "quit", "Quit"), + ] + + def __init__(self, **kwargs): + super().__init__(**kwargs) + self.ducklake_manager = ContentManager() + self.ftp_manager = ContentManager() + self.dadosgov_manager = ContentManager() + self._nav_stack: list[tuple[ContentManager, list]] = [] + + def compose(self) -> ComposeResult: + app = _get_app(self) + lang = app.lang + yield Header() + with Horizontal(): + with Vertical(id="main-container"): + yield Static(t("remote", lang=lang), id="panel-label") + with ContentSwitcher(id="client-switcher", initial="ducklake"): + yield DataTable(id="ducklake") + yield DataTable(id="ftp") + yield DataTable(id="dadosgov") + yield Static("", id="download-text") + yield ProgressBar(id="download-progress", show_percentage=True) + with Vertical(id="local-sidebar"): + yield Static(t("local", lang=lang), id="sidebar-label") + yield Tree(t("files", lang=lang), id="local-tree") + yield Footer() + + async def on_mount(self) -> None: + app: PySUSApp = self.app + app.populate_local_tree() + self.fetch_ducklake() + + def action_switch_client(self, client_id: str) -> None: + switcher = self.query_one("#client-switcher", ContentSwitcher) + switcher.current = client_id + self._update_panel_label() + + if client_id == "ducklake": + self.fetch_ducklake() + elif client_id == "ftp": + self.fetch_ftp() + elif client_id == "dadosgov": + self.fetch_dadosgov() + + self.call_later(self._focus_current_table) + + def _focus_current_table(self) -> None: + switcher = self.query_one("#client-switcher", ContentSwitcher) + table = switcher.query_one(f"#{switcher.current}", DataTable) + table.focus() + + def _update_panel_label(self) -> None: + try: + switcher = self.query_one("#client-switcher", ContentSwitcher) + label = self.query_one("#panel-label", Static) + client = switcher.current + if not client: + client = "ducklake" + client = client.upper() + if self._nav_stack: + label.update(f"{t('remote', lang=self.app.lang)} - {client} ⬅") + else: + label.update(f"{t('remote', lang=self.app.lang)} - {client}") + except Exception: # noqa + pass + + def action_back(self) -> None: + if not self._nav_stack: + return + + switcher = self.query_one("#client-switcher", ContentSwitcher) + current_client = switcher.current + manager = getattr(self, f"{current_client}_manager") + table = self.query_one(f"#{current_client}", DataTable) + + previous = self._nav_stack.pop() + manager.set_items(previous[1], clear=True) + manager.populate(table) + self._update_panel_label() + + @work + async def on_data_table_row_selected( + self, event: DataTable.RowSelected + ) -> None: + switcher = self.query_one("#client-switcher", ContentSwitcher) + current_client = switcher.current + table = event.data_table + + manager = getattr(self, f"{current_client}_manager") + + if event.cursor_row >= len(manager.filtered): + return + + selected_wrapper = manager.filtered[event.cursor_row] + selected_item = selected_wrapper.raw + + table.loading = True + label = self.query_one("#panel-label", Static) + label.update(f"{t('loading', lang=self.app.lang)}...") + self._nav_stack.append((manager, [item.raw for item in manager.items])) + + try: + new_raw_data = [] + + if hasattr(selected_item, "_fetch_content"): + new_raw_data = await selected_item._fetch_content() + elif hasattr(selected_item, "_fetch_files"): + new_raw_data = await selected_item._fetch_files() + elif hasattr(selected_item, "groups") and selected_item.groups: + new_raw_data = [ + g for g in selected_item.groups if hasattr(g, "record") + ] + elif hasattr(selected_item, "files") and selected_item.files: + new_raw_data = list(selected_item.files) + else: + if self._nav_stack: + self._nav_stack.pop() + table.loading = False + return + + completed_paths = self.app.pysus.get_completed_remote_paths() + + manager.set_items( + new_raw_data, + downloaded_paths=completed_paths, + source=current_client, + ) + + manager.populate(table) + self._update_panel_label() + + except Exception as e: # noqa + if self._nav_stack: + self._nav_stack.pop() + self.app.notify(f"Navigation Error: {e}", severity="error") + finally: + table.loading = False + + @work + async def fetch_ducklake(self) -> None: + table = self.query_one("#ducklake", DataTable) + if table.row_count > 0: + return + + table.cursor_type = "row" + app = _get_app(self) + lang = app.lang + + table.clear(columns=True) + table.add_columns( + t("name", lang=lang), + t("type", lang=lang), + t("modified", lang=lang), + t("size", lang=lang), + t("info", lang=lang), + ) + table.loading = True + try: + ducklake = await app.pysus.get_ducklake() + datasets = await ducklake.datasets() + completed_paths = app.pysus.get_completed_remote_paths() + self.ducklake_manager.set_items( + datasets, downloaded_paths=completed_paths, source="ducklake" + ) + self.ducklake_manager.populate(table) + except Exception as e: # noqa + app.notify(f"DuckLake Error: {e}", severity="error") + finally: + table.loading = False + + @work + async def fetch_ftp(self) -> None: + table = self.query_one("#ftp", DataTable) + + if table.row_count > 0: + return + + table.cursor_type = "row" + app = _get_app(self) + lang = app.lang + + table.clear(columns=True) + table.add_columns( + t("name", lang=lang), + t("type", lang=lang), + t("modified", lang=lang), + t("size", lang=lang), + t("info", lang=lang), + ) + + table.loading = True + try: + ftp = await app.pysus.get_ftp() + files = await ftp.datasets() + completed_paths = app.pysus.get_completed_remote_paths() + + self.ftp_manager.set_items( + files, downloaded_paths=completed_paths, source="ftp" + ) + self.ftp_manager.populate(table) + except Exception as e: # noqa + app.notify(f"FTP Error: {e}", severity="error") + finally: + table.loading = False + + @work + async def fetch_dadosgov(self) -> None: + app: PySUSApp = self.app + table = self.query_one("#dadosgov", DataTable) + if table.row_count > 0: + return + + table.cursor_type = "row" + lang = app.lang + table.clear(columns=True) + table.add_columns( + t("name", lang=lang), + t("type", lang=lang), + t("modified", lang=lang), + t("size", lang=lang), + t("info", lang=lang), + ) + table.loading = True + try: + dadosgov = await app.pysus.get_dadosgov() + datasets = await dadosgov.datasets() + completed_paths = app.pysus.get_completed_remote_paths() + self.dadosgov_manager.set_items( + datasets, downloaded_paths=completed_paths, source="dadosgov" + ) + self.dadosgov_manager.populate(table) + except Exception as e: # noqa + self.app.notify(f"DadosGov Error: {e}", severity="error") + finally: + table.loading = False + + +class ConfigScreen(Screen): + def compose(self) -> ComposeResult: + app: PySUSApp = self.app + lang = app.lang + yield Header() + with Center(): + with Vertical(id="config-container"): + yield Static(t("settings", lang=lang), id="config-title") + + with Grid(id="config-grid"): + yield Label("Language / Idioma") + yield Select( + [(lang.upper(), lang) for lang in TRANSLATIONS.keys()], + value=lang, + id="cfg-lang", + ) + + yield Label("Dark Mode") + yield Switch(value=True, id="cfg-dark") + + yield Button("Save & Apply", variant="success", id="cfg-save") + yield Footer() + + def on_button_pressed(self, event: Button.Pressed) -> None: + app: PySUSApp = self.app + if event.button.id == "cfg-save": + new_lang = self.query_one("#cfg-lang", Select).value + if new_lang: + app.lang = new_lang + self.app.pop_screen() + + +class InfoModal(ModalScreen): + BINDINGS = [("escape", "dismiss", "Close")] + + def __init__(self, item, **kwargs): + super().__init__(**kwargs) + self.item = item + + def compose(self) -> ComposeResult: + app: PySUSApp = self.app + name = getattr(self.item, "name", "Unknown") + long_name = getattr(self.item, "long_name", None) + title = f"{name} ({long_name})" if long_name else name + lang = app.lang + + with Vertical(id="modal-content-wrapper"): + yield Static(title, id="modal-title") + + info_text = [] + attrs = [ + "description", + "path", + "size", + "year", + "month", + "state", + ] + for attr in attrs: + if hasattr(self.item, attr): + val = getattr(self.item, attr) + if val: + label = t( + attr, + default=attr.replace("_", " ").title(), + lang=lang, + ) + + if attr == "size": + val = humanize.naturalsize(val, binary=True) + elif attr == "month": + val = t( + f"months.{val}", + default=str(val), + lang=lang, + ) + + info_text.append(f"[b]{label}:[/b] {val}") + + yield Static( + "\n".join(info_text) if info_text else "No metadata", + id="modal-content", + ) + yield Static(t("esc", lang=lang), id="modal-footer") + + def action_dismiss(self) -> None: + self.dismiss() + + +class SearchModal(ModalScreen): + def compose(self) -> ComposeResult: + with Center(): + yield Input( + placeholder=t("search", default="Search..."), + id="search-input", + ) + + def on_mount(self) -> None: + self.query_one(Input).focus() + + def on_input_submitted(self, event: Input.Submitted) -> None: + self.dismiss(event.value) diff --git a/pysus/tui/style.tcss b/pysus/tui/style.tcss new file mode 100644 index 00000000..7cd731f0 --- /dev/null +++ b/pysus/tui/style.tcss @@ -0,0 +1,327 @@ +/* ========================= + Color Scheme (High Contrast Dark) + ========================= */ + +$primary: #4a5568; +$secondary: #718096; +$accent: #9ae6b4; +$surface: #0d1117; +$text: #f0f6fc; +$text-muted: #8b949e; + +/* ========================= + Layout + ========================= */ + +#main-layout { + width: 100%; + height: 100%; +} + +#screen-container { + width: 100%; + height: 100%; +} + +#main-container { + width: 65fr; + height: 100%; + border: solid $primary; +} + +#local-sidebar { + width: 35fr; + height: 100%; + border: solid $primary; + background: $surface; +} + +DataTable { + height: 1fr; + border: none; + padding: 1; + scrollbar-size: 1 1; +} + +#client-switcher { + height: 1fr; +} + +#loading-container { + width: 100%; + height: 100%; + align: center middle; +} + +#welcome-text { + text-align: center; + text-style: bold; + color: $accent; + margin-top: 1; +} + +#loading-status { + text-align: center; + color: $text-muted; + margin-top: 1; +} + +#loader { + align: center middle; +} + +#screen-container { + width: 100%; + height: 100%; +} + +.sidebar { + width: 30; + min-width: 30; + height: 100%; + dock: right; + border: solid $primary; + background: $surface; + layer: sidebar; +} + +Screen { + background: transparent; +} + +LoadingScreen Middle { + width: 100%; + height: 90%; + align: center middle; +} + +#main-container { + width: 65%; + margin-right: 1; + border: solid $primary; + background: transparent; +} + +#sidebar { + width: 35%; + border: solid $primary; + background: $surface; +} + + +/* ========================= + Typography + ========================= */ + +#welcome-text { + width: 100%; + text-align: center; + text-style: bold; + color: $accent; +} + +#panel-label, +#sidebar-label { + padding: 1 2; + text-style: bold; + color: $text; + background: $primary; +} + +#config-title { + text-align: center; + text-style: bold; + margin-bottom: 1; + color: $accent; +} + +#modal-title { + width: 100%; + text-align: center; + text-style: bold; + color: $accent; + border-bottom: solid $primary; + padding-bottom: 1; + margin-bottom: 1; +} + +#modal-footer { + text-align: center; + color: $text-muted; + margin-top: 1; +} + +Label { + height: 3; + content-align: left middle; +} + + +/* ========================= + Containers + ========================= */ + +#config-container { + width: 60; + height: auto; + padding: 2 3; + background: $surface; + border: solid $primary; +} + +#modal-content-wrapper { + width: 70%; + height: auto; + padding: 2 3; + background: $surface; + border: solid $primary; +} + +#modal-content { + margin: 1 0; + color: $text; +} + + +/* ========================= + Grid + ========================= */ + +#config-grid { + grid-size: 2; + grid-columns: 1fr 2fr; + grid-gutter: 1 2; + + height: auto; + margin-bottom: 2; +} + + +/* ========================= + Components + ========================= */ + +#cfg-save { + width: 100%; +} + +#loader { + width: auto; + height: auto; +} + +DataTable > .datatable--cursor { + background: $primary; + color: $text; +} + +DataTable > .datatable--header { + background: $primary; + color: $text; +} + +#local-tree { + height: 95%; + padding: 1; + border: none; + scrollbar-size: 1 1; +} + +#local-tree Tree > .tree--selected { + background: $primary; +} + + +/* ========================= + Scrollbar + ========================= */ + +ScrollBar { + width: 1; +} + +ScrollBar > .scrollbar--button { + display: none; +} + + +/* ========================= + Progress + ========================= */ + +ProgressBar, +#download-progress { + width: 100%; + display: none; +} + +ProgressBar { + margin: 1 0; +} + +#download-progress { + margin-top: 1; +} + +ProgressBar.visible, +#download-progress.visible { + display: block; +} + + +/* ========================= + Modal + ========================= */ + +ModalScreen { + align: center middle; + background: rgba(0, 0, 0, 0.85); +} + + +/* ========================= + Buttons & Inputs + ========================= */ + +Button { + border: none; +} + +Button:hover { + background: $primary; +} + +Button:focus { + border: solid $accent; +} + +Input { + border: solid $primary; +} + +Input:focus { + border: solid $accent; +} + +Select { + border: solid $primary; +} + +Switch { + color: $accent; +} + + +/* ========================= + Headers & Footer + ========================= */ + +Header { + background: $primary; + color: $text; +} + +Footer { + background: $primary; + color: $text; +} diff --git a/pysus/tui/types.py b/pysus/tui/types.py new file mode 100644 index 00000000..4f9dcb89 --- /dev/null +++ b/pysus/tui/types.py @@ -0,0 +1,24 @@ +from typing import Protocol + + +class PySUSApp(Protocol): + lang: str + + def populate_local_tree(self) -> None: ... # noqa + def notify(self, message: str, severity: str = "info") -> None: ... # noqa + def push_screen(self, screen, callback=None): ... # noqa + def pop_screen(self): ... # noqa + def switch_screen(self, name: str): ... # noqa + + class _pysus: + async def datasets(self): ... # noqa + def get_completed_remote_paths(self): ... # noqa + @property + async def get_ducklake(self): ... # noqa + @property + async def get_ftp(self): ... # noqa + @property + async def get_dadosgov(self): ... # noqa + + @property + def pysus(self) -> _pysus: ... # noqa diff --git a/pysus/utilities/brasil.py b/pysus/utilities/brasil.py deleted file mode 100644 index 0024a7e4..00000000 --- a/pysus/utilities/brasil.py +++ /dev/null @@ -1,67 +0,0 @@ -import json -from pathlib import Path -from typing import Union - -with open( - f"{Path(__file__).parent}/municipios.json", "r", encoding="utf-8-sig" -) as muns: - MUNICIPALITIES = json.loads(muns.read()) - -MUN_BY_GEOCODE = {mun["geocodigo"]: mun["municipio"] for mun in MUNICIPALITIES} - - -UFs = { - "BR": "Brasil", - "AC": "Acre", - "AL": "Alagoas", - "AP": "Amapá", - "AM": "Amazonas", - "BA": "Bahia", - "CE": "Ceará", - "ES": "Espírito Santo", - "GO": "Goiás", - "MA": "Maranhão", - "MT": "Mato Grosso", - "MS": "Mato Grosso do Sul", - "MG": "Minas Gerais", - "PA": "Pará", - "PB": "Paraíba", - "PR": "Paraná", - "PE": "Pernambuco", - "PI": "Piauí", - "RJ": "Rio de Janeiro", - "RN": "Rio Grande do Norte", - "RS": "Rio Grande do Sul", - "RO": "Rondônia", - "RR": "Roraima", - "SC": "Santa Catarina", - "SP": "São Paulo", - "SE": "Sergipe", - "TO": "Tocantins", - "DF": "Distrito Federal", -} - -MONTHS = { - 1: "Janeiro", - 2: "Fevereiro", - 3: "Março", - 4: "Abril", - 5: "Maio", - 6: "Junho", - 7: "Julho", - 8: "Agosto", - 9: "Setembro", - 10: "Outubro", - 11: "Novembro", - 12: "Dezembro", -} - - -def get_city_name_by_geocode(geocode: Union[str, int]): - """ - Returns the Municipality name from its geocode (IBGE) - :param geocode: 7 digits city code, according to IBGE format - :return: City name - """ - - return MUN_BY_GEOCODE[int(geocode)] diff --git a/pysus/utilities/municipios.json b/pysus/utilities/municipios.json deleted file mode 100644 index 3acd8439..00000000 --- a/pysus/utilities/municipios.json +++ /dev/null @@ -1,44562 +0,0 @@ -[ - { - "geocodigo": 5200050, - "municipio": "Abadia de Goiás", - "latitude": -16.7573, - "longitude": -49.4412, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3100104, - "municipio": "Abadia dos Dourados", - "latitude": -18.4831, - "longitude": -47.3916, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5200100, - "municipio": "Abadiânia", - "latitude": -16.197, - "longitude": -48.7057, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3100203, - "municipio": "Abaeté", - "latitude": -19.1551, - "longitude": -45.4444, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1500107, - "municipio": "Abaetetuba", - "latitude": -1.72183, - "longitude": -48.8788, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2300101, - "municipio": "Abaiara", - "latitude": -7.34588, - "longitude": -39.0416, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2900108, - "municipio": "Abaíra", - "latitude": -13.2488, - "longitude": -41.6619, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2900207, - "municipio": "Abaré", - "latitude": -8.72073, - "longitude": -39.1162, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4100103, - "municipio": "Abatiá", - "latitude": -23.3049, - "longitude": -50.3133, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4200051, - "municipio": "Abdon Batista", - "latitude": -27.6126, - "longitude": -51.0233, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1500131, - "municipio": "Abel Figueiredo", - "latitude": -4.95333, - "longitude": -48.3933, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4200101, - "municipio": "Abelardo Luz", - "latitude": -26.5716, - "longitude": -52.3229, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3100302, - "municipio": "Abre Campo", - "latitude": -20.2996, - "longitude": -42.4743, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2600054, - "municipio": "Abreu e Lima", - "latitude": -7.90072, - "longitude": -34.8984, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1700251, - "municipio": "Abreulândia", - "latitude": -9.62101, - "longitude": -49.1518, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3100401, - "municipio": "Acaiaca", - "latitude": -20.359, - "longitude": -43.1439, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2100055, - "municipio": "Açailândia", - "latitude": -4.94714, - "longitude": -47.5004, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2900306, - "municipio": "Acajutiba", - "latitude": -11.6575, - "longitude": -38.0197, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1500206, - "municipio": "Acará", - "latitude": -1.95383, - "longitude": -48.1985, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2300150, - "municipio": "Acarape", - "latitude": -4.22083, - "longitude": -38.7055, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2300200, - "municipio": "Acaraú", - "latitude": -2.88769, - "longitude": -40.1183, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2400109, - "municipio": "Acari", - "latitude": -6.4282, - "longitude": -36.6347, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2200053, - "municipio": "Acauã", - "latitude": -8.21954, - "longitude": -41.0831, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4300034, - "municipio": "Aceguá", - "latitude": -31.8665, - "longitude": -54.1615, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2300309, - "municipio": "Acopiara", - "latitude": -6.08911, - "longitude": -39.448, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5100102, - "municipio": "Acorizal", - "latitude": -15.194, - "longitude": -56.3632, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1200013, - "municipio": "Acrelândia", - "latitude": -9.82581, - "longitude": -66.8972, - "codigo_uf": 12, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 5200134, - "municipio": "Acreúna", - "latitude": -17.396, - "longitude": -50.3749, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2400208, - "municipio": "Açu", - "latitude": -5.58362, - "longitude": -36.914, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3100500, - "municipio": "Açucena", - "latitude": -19.0671, - "longitude": -42.5419, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3500105, - "municipio": "Adamantina", - "latitude": -21.682, - "longitude": -51.0737, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5200159, - "municipio": "Adelândia", - "latitude": -16.4127, - "longitude": -50.1657, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3500204, - "municipio": "Adolfo", - "latitude": -21.2325, - "longitude": -49.6451, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4100202, - "municipio": "Adrianópolis", - "latitude": -24.6606, - "longitude": -48.9922, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2900355, - "municipio": "Adustina", - "latitude": -10.5437, - "longitude": -38.1113, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2600104, - "municipio": "Afogados da Ingazeira", - "latitude": -7.74312, - "longitude": -37.631, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2400307, - "municipio": "Afonso Bezerra", - "latitude": -5.49229, - "longitude": -36.5075, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3200102, - "municipio": "Afonso Cláudio", - "latitude": -20.0778, - "longitude": -41.1261, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2100105, - "municipio": "Afonso Cunha", - "latitude": -4.13631, - "longitude": -43.3275, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2600203, - "municipio": "Afrânio", - "latitude": -8.51136, - "longitude": -41.0095, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1500305, - "municipio": "Afuá", - "latitude": -0.154874, - "longitude": -50.3861, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2600302, - "municipio": "Agrestina", - "latitude": -8.45966, - "longitude": -35.9447, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2200103, - "municipio": "Agricolândia", - "latitude": -5.79676, - "longitude": -42.6664, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4200200, - "municipio": "Agrolândia", - "latitude": -27.4087, - "longitude": -49.822, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4200309, - "municipio": "Agronômica", - "latitude": -27.2662, - "longitude": -49.708, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1500347, - "municipio": "Água Azul do Norte", - "latitude": -6.79053, - "longitude": -50.4791, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3100609, - "municipio": "Água Boa", - "latitude": -17.9914, - "longitude": -42.3806, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5100201, - "municipio": "Água Boa", - "latitude": -14.051, - "longitude": -52.1601, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2200202, - "municipio": "Água Branca", - "latitude": -5.88856, - "longitude": -42.637, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2500106, - "municipio": "Água Branca", - "latitude": -7.51144, - "longitude": -37.6357, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2700102, - "municipio": "Água Branca", - "latitude": -9.262, - "longitude": -37.938, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5000203, - "municipio": "Água Clara", - "latitude": -20.4452, - "longitude": -52.879, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3100708, - "municipio": "Água Comprida", - "latitude": -20.0576, - "longitude": -48.1069, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4200408, - "municipio": "Água Doce", - "latitude": -26.9985, - "longitude": -51.5528, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2100154, - "municipio": "Água Doce do Maranhão", - "latitude": -2.84048, - "longitude": -42.1189, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3200169, - "municipio": "Água Doce do Norte", - "latitude": -18.5482, - "longitude": -40.9854, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2900405, - "municipio": "Água Fria", - "latitude": -11.8618, - "longitude": -38.7639, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5200175, - "municipio": "Água Fria de Goiás", - "latitude": -14.9778, - "longitude": -47.7823, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5200209, - "municipio": "Água Limpa", - "latitude": -18.0771, - "longitude": -48.7603, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2400406, - "municipio": "Água Nova", - "latitude": -6.20351, - "longitude": -38.2941, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2600401, - "municipio": "Água Preta", - "latitude": -8.70609, - "longitude": -35.5263, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4300059, - "municipio": "Água Santa", - "latitude": -28.1672, - "longitude": -52.031, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3500303, - "municipio": "Aguaí", - "latitude": -22.0572, - "longitude": -46.9735, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3100807, - "municipio": "Aguanil", - "latitude": -20.9439, - "longitude": -45.3915, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2600500, - "municipio": "Águas Belas", - "latitude": -9.11125, - "longitude": -37.1226, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3500402, - "municipio": "Águas da Prata", - "latitude": -21.9319, - "longitude": -46.7176, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4200507, - "municipio": "Águas de Chapecó", - "latitude": -27.0754, - "longitude": -52.9808, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3500501, - "municipio": "Águas de Lindóia", - "latitude": -22.4733, - "longitude": -46.6314, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3500550, - "municipio": "Águas de Santa Bárbara", - "latitude": -22.8812, - "longitude": -49.2421, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3500600, - "municipio": "Águas de São Pedro", - "latitude": -22.5977, - "longitude": -47.8734, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3100906, - "municipio": "Águas Formosas", - "latitude": -17.0802, - "longitude": -40.9384, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4200556, - "municipio": "Águas Frias", - "latitude": -26.8794, - "longitude": -52.8568, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5200258, - "municipio": "Águas Lindas de Goiás", - "latitude": -15.7617, - "longitude": -48.2816, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4200606, - "municipio": "Águas Mornas", - "latitude": -27.6963, - "longitude": -48.8243, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3101003, - "municipio": "Águas Vermelhas", - "latitude": -15.7431, - "longitude": -41.4571, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4300109, - "municipio": "Agudo", - "latitude": -29.6447, - "longitude": -53.2515, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3500709, - "municipio": "Agudos", - "latitude": -22.4694, - "longitude": -48.9863, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4100301, - "municipio": "Agudos do Sul", - "latitude": -25.9899, - "longitude": -49.3343, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3200136, - "municipio": "Águia Branca", - "latitude": -18.9846, - "longitude": -40.7437, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2500205, - "municipio": "Aguiar", - "latitude": -7.0918, - "longitude": -38.1681, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1700301, - "municipio": "Aguiarnópolis", - "latitude": -6.55409, - "longitude": -47.4702, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3101102, - "municipio": "Aimorés", - "latitude": -19.5007, - "longitude": -41.0746, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2900603, - "municipio": "Aiquara", - "latitude": -14.1269, - "longitude": -39.8937, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2300408, - "municipio": "Aiuaba", - "latitude": -6.57122, - "longitude": -40.1178, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3101201, - "municipio": "Aiuruoca", - "latitude": -21.9736, - "longitude": -44.6042, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4300208, - "municipio": "Ajuricaba", - "latitude": -28.2342, - "longitude": -53.7757, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3101300, - "municipio": "Alagoa", - "latitude": -22.171, - "longitude": -44.6413, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2500304, - "municipio": "Alagoa Grande", - "latitude": -7.03943, - "longitude": -35.6206, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2500403, - "municipio": "Alagoa Nova", - "latitude": -7.05377, - "longitude": -35.7591, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2500502, - "municipio": "Alagoinha", - "latitude": -6.94657, - "longitude": -35.5332, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2600609, - "municipio": "Alagoinha", - "latitude": -8.4665, - "longitude": -36.7788, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2200251, - "municipio": "Alagoinha do Piauí", - "latitude": -7.00039, - "longitude": -40.9282, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2900702, - "municipio": "Alagoinhas", - "latitude": -12.1335, - "longitude": -38.4208, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3500758, - "municipio": "Alambari", - "latitude": -23.5503, - "longitude": -47.898, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3101409, - "municipio": "Albertina", - "latitude": -22.2018, - "longitude": -46.6139, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2100204, - "municipio": "Alcântara", - "latitude": -2.39574, - "longitude": -44.4062, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2300507, - "municipio": "Alcântaras", - "latitude": -3.58537, - "longitude": -40.5479, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2500536, - "municipio": "Alcantil", - "latitude": -7.73668, - "longitude": -36.0511, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5000252, - "municipio": "Alcinópolis", - "latitude": -18.3255, - "longitude": -53.7042, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2900801, - "municipio": "Alcobaça", - "latitude": -17.5195, - "longitude": -39.2036, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2100303, - "municipio": "Aldeias Altas", - "latitude": -4.62621, - "longitude": -43.4689, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4300307, - "municipio": "Alecrim", - "latitude": -27.6579, - "longitude": -54.7649, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3200201, - "municipio": "Alegre", - "latitude": -20.758, - "longitude": -41.5382, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4300406, - "municipio": "Alegrete", - "latitude": -29.7902, - "longitude": -55.7949, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2200277, - "municipio": "Alegrete do Piauí", - "latitude": -7.24196, - "longitude": -40.8566, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4300455, - "municipio": "Alegria", - "latitude": -27.8345, - "longitude": -54.0557, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3101508, - "municipio": "Além Paraíba", - "latitude": -21.8797, - "longitude": -42.7176, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1500404, - "municipio": "Alenquer", - "latitude": -1.94623, - "longitude": -54.7384, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2400505, - "municipio": "Alexandria", - "latitude": -6.40533, - "longitude": -38.0142, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5200308, - "municipio": "Alexânia", - "latitude": -16.0834, - "longitude": -48.5076, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3101607, - "municipio": "Alfenas", - "latitude": -21.4256, - "longitude": -45.9477, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3200300, - "municipio": "Alfredo Chaves", - "latitude": -20.6396, - "longitude": -40.7543, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3500808, - "municipio": "Alfredo Marcondes", - "latitude": -21.9527, - "longitude": -51.414, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3101631, - "municipio": "Alfredo Vasconcelos", - "latitude": -21.1535, - "longitude": -43.7718, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4200705, - "municipio": "Alfredo Wagner", - "latitude": -27.7001, - "longitude": -49.3273, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2500577, - "municipio": "Algodão de Jandaíra", - "latitude": -6.89292, - "longitude": -36.0129, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2500601, - "municipio": "Alhandra", - "latitude": -7.42977, - "longitude": -34.9057, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2600708, - "municipio": "Aliança", - "latitude": -7.60398, - "longitude": -35.2227, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1700350, - "municipio": "Aliança do Tocantins", - "latitude": -11.3056, - "longitude": -48.9361, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2900900, - "municipio": "Almadina", - "latitude": -14.7089, - "longitude": -39.6415, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1700400, - "municipio": "Almas", - "latitude": -11.5706, - "longitude": -47.1792, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1500503, - "municipio": "Almeirim", - "latitude": -1.52904, - "longitude": -52.5788, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3101706, - "municipio": "Almenara", - "latitude": -16.1785, - "longitude": -40.6942, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2400604, - "municipio": "Almino Afonso", - "latitude": -6.1475, - "longitude": -37.7636, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4100400, - "municipio": "Almirante Tamandaré", - "latitude": -25.3188, - "longitude": -49.3037, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4300471, - "municipio": "Almirante Tamandaré do Sul", - "latitude": -28.1149, - "longitude": -52.9142, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5200506, - "municipio": "Aloândia", - "latitude": -17.7292, - "longitude": -49.4769, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3101805, - "municipio": "Alpercata", - "latitude": -18.974, - "longitude": -41.97, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4300505, - "municipio": "Alpestre", - "latitude": -27.2502, - "longitude": -53.0341, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3101904, - "municipio": "Alpinópolis", - "latitude": -20.8631, - "longitude": -46.3878, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5100250, - "municipio": "Alta Floresta", - "latitude": -9.86674, - "longitude": -56.0867, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1100015, - "municipio": "Alta Floresta D'Oeste", - "latitude": -11.9283, - "longitude": -61.9953, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3500907, - "municipio": "Altair", - "latitude": -20.5242, - "longitude": -49.0571, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1500602, - "municipio": "Altamira", - "latitude": -3.20407, - "longitude": -52.21, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2100402, - "municipio": "Altamira do Maranhão", - "latitude": -4.16598, - "longitude": -45.4706, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4100459, - "municipio": "Altamira do Paraná", - "latitude": -24.7983, - "longitude": -52.7128, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2300606, - "municipio": "Altaneira", - "latitude": -6.99837, - "longitude": -39.7356, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3102001, - "municipio": "Alterosa", - "latitude": -21.2488, - "longitude": -46.1387, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2600807, - "municipio": "Altinho", - "latitude": -8.48482, - "longitude": -36.0644, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3501004, - "municipio": "Altinópolis", - "latitude": -21.0214, - "longitude": -47.3712, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3501103, - "municipio": "Alto Alegre", - "latitude": -21.5811, - "longitude": -50.168, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1400050, - "municipio": "Alto Alegre", - "latitude": 2.98858, - "longitude": -61.3072, - "codigo_uf": 14, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4300554, - "municipio": "Alto Alegre", - "latitude": -28.7769, - "longitude": -52.9893, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2100436, - "municipio": "Alto Alegre do Maranhão", - "latitude": -4.213, - "longitude": -44.446, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2100477, - "municipio": "Alto Alegre do Pindaré", - "latitude": -3.66689, - "longitude": -45.8421, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100379, - "municipio": "Alto Alegre dos Parecis", - "latitude": -12.132, - "longitude": -61.835, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5100300, - "municipio": "Alto Araguaia", - "latitude": -17.3153, - "longitude": -53.2181, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4200754, - "municipio": "Alto Bela Vista", - "latitude": -27.4333, - "longitude": -51.9044, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5100359, - "municipio": "Alto Boa Vista", - "latitude": -11.6732, - "longitude": -51.3883, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3102050, - "municipio": "Alto Caparaó", - "latitude": -20.431, - "longitude": -41.8738, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2400703, - "municipio": "Alto do Rodrigues", - "latitude": -5.28186, - "longitude": -36.750012, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4300570, - "municipio": "Alto Feliz", - "latitude": -29.3919, - "longitude": -51.3123, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5100409, - "municipio": "Alto Garças", - "latitude": -16.9462, - "longitude": -53.5272, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5200555, - "municipio": "Alto Horizonte", - "latitude": -14.1978, - "longitude": -49.3378, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3153509, - "municipio": "Alto Jequitibá", - "latitude": -20.4208, - "longitude": -41.9670, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2200301, - "municipio": "Alto Longá", - "latitude": -5.25634, - "longitude": -42.2096, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5100508, - "municipio": "Alto Paraguai", - "latitude": -14.5137, - "longitude": -56.4776, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4128625, - "municipio": "Alto Paraíso", - "latitude": -26.1146, - "longitude": -52.7469, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100403, - "municipio": "Alto Paraíso", - "latitude": -9.71429, - "longitude": -63.3188, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5200605, - "municipio": "Alto Paraíso de Goiás", - "latitude": -14.1305, - "longitude": -47.51, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4100608, - "municipio": "Alto Paraná", - "latitude": -23.1312, - "longitude": -52.3189, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2100501, - "municipio": "Alto Parnaíba", - "latitude": -9.10273, - "longitude": -45.9303, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4100707, - "municipio": "Alto Piquiri", - "latitude": -24.0224, - "longitude": -53.44, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3102100, - "municipio": "Alto Rio Doce", - "latitude": -21.0281, - "longitude": -43.4067, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3200359, - "municipio": "Alto Rio Novo", - "latitude": -19.0618, - "longitude": -41.0209, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2300705, - "municipio": "Alto Santo", - "latitude": -5.50894, - "longitude": -38.2743, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5100607, - "municipio": "Alto Taquari", - "latitude": -17.8241, - "longitude": -53.2792, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4100509, - "municipio": "Altônia", - "latitude": -23.8759, - "longitude": -53.8958, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2200400, - "municipio": "Altos", - "latitude": -5.03888, - "longitude": -42.4612, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3501152, - "municipio": "Alumínio", - "latitude": -23.5306, - "longitude": -47.2546, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1300029, - "municipio": "Alvarães", - "latitude": -3.22727, - "longitude": -64.8007, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3102209, - "municipio": "Alvarenga", - "latitude": -19.4174, - "longitude": -41.7317, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3501202, - "municipio": "Álvares Florence", - "latitude": -20.3203, - "longitude": -49.9141, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3501301, - "municipio": "Álvares Machado", - "latitude": -22.0764, - "longitude": -51.4722, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3501400, - "municipio": "Álvaro de Carvalho", - "latitude": -22.0841, - "longitude": -49.719, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3501509, - "municipio": "Alvinlândia", - "latitude": -22.4435, - "longitude": -49.7623, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3102308, - "municipio": "Alvinópolis", - "latitude": -20.1098, - "longitude": -43.0535, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1700707, - "municipio": "Alvorada", - "latitude": -12.4785, - "longitude": -49.1249, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4300604, - "municipio": "Alvorada", - "latitude": -29.9914, - "longitude": -51.0809, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100346, - "municipio": "Alvorada D'Oeste", - "latitude": -11.3463, - "longitude": -62.2847, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3102407, - "municipio": "Alvorada de Minas", - "latitude": -18.7334, - "longitude": -43.3638, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2200459, - "municipio": "Alvorada do Gurguéia", - "latitude": -8.42418, - "longitude": -43.777, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5200803, - "municipio": "Alvorada do Norte", - "latitude": -14.4797, - "longitude": -46.491, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4100806, - "municipio": "Alvorada do Sul", - "latitude": -22.7813, - "longitude": -51.2297, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1400027, - "municipio": "Amajari", - "latitude": 3.64571, - "longitude": -61.3692, - "codigo_uf": 14, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5000609, - "municipio": "Amambai", - "latitude": -23.1058, - "longitude": -55.2253, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1600105, - "municipio": "Amapá", - "latitude": 2.05267, - "longitude": -50.7957, - "codigo_uf": 16, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2100550, - "municipio": "Amapá do Maranhão", - "latitude": -1.67524, - "longitude": -46.0024, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4100905, - "municipio": "Amaporã", - "latitude": -23.0943, - "longitude": -52.7866, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2600906, - "municipio": "Amaraji", - "latitude": -8.37691, - "longitude": -35.4501, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4300638, - "municipio": "Amaral Ferrador", - "latitude": -30.8756, - "longitude": -52.2509, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5200829, - "municipio": "Amaralina", - "latitude": -13.9236, - "longitude": -49.2962, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2200509, - "municipio": "Amarante", - "latitude": -6.24304, - "longitude": -42.8433, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2100600, - "municipio": "Amarante do Maranhão", - "latitude": -5.56913, - "longitude": -46.7473, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2901007, - "municipio": "Amargosa", - "latitude": -13.0215, - "longitude": -39.602, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1300060, - "municipio": "Amaturá", - "latitude": -3.37455, - "longitude": -68.2005, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2901106, - "municipio": "Amélia Rodrigues", - "latitude": -12.3914, - "longitude": -38.7563, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2901155, - "municipio": "América Dourada", - "latitude": -11.4429, - "longitude": -41.439, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3501608, - "municipio": "Americana", - "latitude": -22.7374, - "longitude": -47.3331, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5200852, - "municipio": "Americano do Brasil", - "latitude": -16.2514, - "longitude": -49.9831, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3501707, - "municipio": "Américo Brasiliense", - "latitude": -21.7288, - "longitude": -48.1147, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3501806, - "municipio": "Américo de Campos", - "latitude": -20.2985, - "longitude": -49.7359, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4300646, - "municipio": "Ametista do Sul", - "latitude": -27.3607, - "longitude": -53.183, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2300754, - "municipio": "Amontada", - "latitude": -3.36017, - "longitude": -39.8288, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5200902, - "municipio": "Amorinópolis", - "latitude": -16.6151, - "longitude": -51.0919, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2500734, - "municipio": "Amparo", - "latitude": -7.55502, - "longitude": -37.0628, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3501905, - "municipio": "Amparo", - "latitude": -22.7088, - "longitude": -46.772, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2800100, - "municipio": "Amparo de São Francisco", - "latitude": -10.1348, - "longitude": -36.935, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3102506, - "municipio": "Amparo do Serra", - "latitude": -20.5051, - "longitude": -42.8009, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4101002, - "municipio": "Ampére", - "latitude": -25.9168, - "longitude": -53.4686, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2700201, - "municipio": "Anadia", - "latitude": -9.68489, - "longitude": -36.3078, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2901205, - "municipio": "Anagé", - "latitude": -14.6151, - "longitude": -41.1356, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4101051, - "municipio": "Anahy", - "latitude": -24.6449, - "longitude": -53.1332, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1500701, - "municipio": "Anajás", - "latitude": -0.996811, - "longitude": -49.9354, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2100709, - "municipio": "Anajatuba", - "latitude": -3.26269, - "longitude": -44.6126, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3502002, - "municipio": "Analândia", - "latitude": -22.1289, - "longitude": -47.6619, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1300086, - "municipio": "Anamã", - "latitude": -3.56697, - "longitude": -61.3963, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1701002, - "municipio": "Ananás", - "latitude": -6.36437, - "longitude": -48.0735, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1500800, - "municipio": "Ananindeua", - "latitude": -1.36391, - "longitude": -48.3743, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5201108, - "municipio": "Anápolis", - "latitude": -16.3281, - "longitude": -48.953, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1500859, - "municipio": "Anapu", - "latitude": -3.46985, - "longitude": -51.2003, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2100808, - "municipio": "Anapurus", - "latitude": -3.67577, - "longitude": -43.1014, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5000708, - "municipio": "Anastácio", - "latitude": -20.4823, - "longitude": -55.8104, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5000807, - "municipio": "Anaurilândia", - "latitude": -22.1852, - "longitude": -52.7191, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4200804, - "municipio": "Anchieta", - "latitude": -26.5382, - "longitude": -53.3319, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3200409, - "municipio": "Anchieta", - "latitude": -20.7955, - "longitude": -40.6425, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2901304, - "municipio": "Andaraí", - "latitude": -12.8049, - "longitude": -41.3297, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4101101, - "municipio": "Andirá", - "latitude": -23.0533, - "longitude": -50.2304, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2901353, - "municipio": "Andorinha", - "latitude": -10.3482, - "longitude": -39.8391, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3102605, - "municipio": "Andradas", - "latitude": -22.0695, - "longitude": -46.5724, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3502101, - "municipio": "Andradina", - "latitude": -20.8948, - "longitude": -51.3786, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4300661, - "municipio": "André da Rocha", - "latitude": -28.6283, - "longitude": -51.5797, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3102803, - "municipio": "Andrelândia", - "latitude": -21.7411, - "longitude": -44.3117, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3502200, - "municipio": "Angatuba", - "latitude": -23.4917, - "longitude": -48.4139, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3102852, - "municipio": "Angelândia", - "latitude": -17.7279, - "longitude": -42.2641, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5000856, - "municipio": "Angélica", - "latitude": -22.1527, - "longitude": -53.7708, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2601003, - "municipio": "Angelim", - "latitude": -8.88429, - "longitude": -36.2902, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4200903, - "municipio": "Angelina", - "latitude": -27.5704, - "longitude": -48.9879, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2901403, - "municipio": "Angical", - "latitude": -12.0063, - "longitude": -44.7003, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2200608, - "municipio": "Angical do Piauí", - "latitude": -6.08786, - "longitude": -42.74, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1701051, - "municipio": "Angico", - "latitude": -6.39179, - "longitude": -47.8611, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2400802, - "municipio": "Angicos", - "latitude": -5.65792, - "longitude": -36.6094, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3300100, - "municipio": "Angra dos Reis", - "latitude": -23.0011, - "longitude": -44.3196, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2901502, - "municipio": "Anguera", - "latitude": -12.1462, - "longitude": -39.2462, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4101150, - "municipio": "Ângulo", - "latitude": -23.1946, - "longitude": -51.9154, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5201207, - "municipio": "Anhanguera", - "latitude": -18.3339, - "longitude": -48.2204, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3502309, - "municipio": "Anhembi", - "latitude": -22.793, - "longitude": -48.1336, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3502408, - "municipio": "Anhumas", - "latitude": -22.2934, - "longitude": -51.3895, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5201306, - "municipio": "Anicuns", - "latitude": -16.4642, - "longitude": -49.9617, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2200707, - "municipio": "Anísio de Abreu", - "latitude": -9.18564, - "longitude": -43.0494, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4201000, - "municipio": "Anita Garibaldi", - "latitude": -27.6897, - "longitude": -51.1271, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4201109, - "municipio": "Anitápolis", - "latitude": -27.9012, - "longitude": -49.1316, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1300102, - "municipio": "Anori", - "latitude": -3.74603, - "longitude": -61.6575, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4300703, - "municipio": "Anta Gorda", - "latitude": -28.9698, - "longitude": -52.0102, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2901601, - "municipio": "Antas", - "latitude": -10.3856, - "longitude": -38.3401, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4101200, - "municipio": "Antonina", - "latitude": -25.4386, - "longitude": -48.7191, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2300804, - "municipio": "Antonina do Norte", - "latitude": -6.76919, - "longitude": -39.987, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2200806, - "municipio": "Antônio Almeida", - "latitude": -7.21276, - "longitude": -44.1889, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2901700, - "municipio": "Antônio Cardoso", - "latitude": -12.4335, - "longitude": -39.1176, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4201208, - "municipio": "Antônio Carlos", - "latitude": -27.5191, - "longitude": -48.766, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3102902, - "municipio": "Antônio Carlos", - "latitude": -21.321, - "longitude": -43.7451, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3103009, - "municipio": "Antônio Dias", - "latitude": -19.6491, - "longitude": -42.8732, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2901809, - "municipio": "Antônio Gonçalves", - "latitude": -10.5767, - "longitude": -40.2785, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5000906, - "municipio": "Antônio João", - "latitude": -22.1927, - "longitude": -55.9517, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2400901, - "municipio": "Antônio Martins", - "latitude": -6.21367, - "longitude": -37.8834, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4101309, - "municipio": "Antônio Olinto", - "latitude": -25.9804, - "longitude": -50.1972, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4300802, - "municipio": "Antônio Prado", - "latitude": -28.8565, - "longitude": -51.2883, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3103108, - "municipio": "Antônio Prado de Minas", - "latitude": -21.0192, - "longitude": -42.1109, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2500775, - "municipio": "Aparecida", - "latitude": -6.78466, - "longitude": -38.0803, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3502507, - "municipio": "Aparecida", - "latitude": -22.8495, - "longitude": -45.2325, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3502606, - "municipio": "Aparecida d'Oeste", - "latitude": -20.4487, - "longitude": -50.8835, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5201405, - "municipio": "Aparecida de Goiânia", - "latitude": -16.8198, - "longitude": -49.2469, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5201454, - "municipio": "Aparecida do Rio Doce", - "latitude": -18.2941, - "longitude": -51.1516, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1701101, - "municipio": "Aparecida do Rio Negro", - "latitude": -9.94139, - "longitude": -47.9638, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5001003, - "municipio": "Aparecida do Taboado", - "latitude": -20.0873, - "longitude": -51.0961, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3300159, - "municipio": "Aperibé", - "latitude": -21.6252, - "longitude": -42.1017, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3200508, - "municipio": "Apiacá", - "latitude": -21.1523, - "longitude": -41.5693, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5100805, - "municipio": "Apiacás", - "latitude": -9.53981, - "longitude": -57.4587, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3502705, - "municipio": "Apiaí", - "latitude": -24.5108, - "longitude": -48.8443, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2100832, - "municipio": "Apicum-Açu", - "latitude": -1.45862, - "longitude": -45.0864, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4201257, - "municipio": "Apiúna", - "latitude": -27.0375, - "longitude": -49.3885, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2401008, - "municipio": "Apodi", - "latitude": -5.65349, - "longitude": -37.7946, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2901908, - "municipio": "Aporá", - "latitude": -11.6577, - "longitude": -38.0814, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5201504, - "municipio": "Aporé", - "latitude": -18.9607, - "longitude": -51.9232, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2901957, - "municipio": "Apuarema", - "latitude": -13.8542, - "longitude": -39.7501, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4101408, - "municipio": "Apucarana", - "latitude": -23.55, - "longitude": -51.4635, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1300144, - "municipio": "Apuí", - "latitude": -7.19409, - "longitude": -59.896, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2300903, - "municipio": "Apuiarés", - "latitude": -3.94506, - "longitude": -39.4359, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2800209, - "municipio": "Aquidabã", - "latitude": -10.278, - "longitude": -37.0148, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5001102, - "municipio": "Aquidauana", - "latitude": -20.4666, - "longitude": -55.7868, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2301000, - "municipio": "Aquiraz", - "latitude": -3.89929, - "longitude": -38.3896, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4201273, - "municipio": "Arabutã", - "latitude": -27.1587, - "longitude": -52.1423, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2500809, - "municipio": "Araçagi", - "latitude": -6.84374, - "longitude": -35.3737, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3103207, - "municipio": "Araçaí", - "latitude": -19.1955, - "longitude": -44.2493, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2800308, - "municipio": "Aracaju", - "latitude": -10.9091, - "longitude": -37.0677, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3502754, - "municipio": "Araçariguama", - "latitude": -23.4366, - "longitude": -47.0608, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2902054, - "municipio": "Araças", - "latitude": -12.22, - "longitude": -38.2027, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2301109, - "municipio": "Aracati", - "latitude": -4.55826, - "longitude": -37.7679, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2902005, - "municipio": "Aracatu", - "latitude": -14.428, - "longitude": -41.4648, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3502804, - "municipio": "Araçatuba", - "latitude": -21.2076, - "longitude": -50.4401, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2902104, - "municipio": "Araci", - "latitude": -11.3253, - "longitude": -38.9584, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3103306, - "municipio": "Aracitaba", - "latitude": -21.3446, - "longitude": -43.3736, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2601052, - "municipio": "Araçoiaba", - "latitude": -7.78391, - "longitude": -35.0809, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2301208, - "municipio": "Aracoiaba", - "latitude": -4.36872, - "longitude": -38.8125, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3502903, - "municipio": "Araçoiaba da Serra", - "latitude": -23.5029, - "longitude": -47.6166, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3200607, - "municipio": "Aracruz", - "latitude": -19.82, - "longitude": -40.2764, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5201603, - "municipio": "Araçu", - "latitude": -16.3563, - "longitude": -49.6804, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3103405, - "municipio": "Araçuaí", - "latitude": -16.8523, - "longitude": -42.0637, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5201702, - "municipio": "Aragarças", - "latitude": -15.8955, - "longitude": -52.2372, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5201801, - "municipio": "Aragoiânia", - "latitude": -16.9087, - "longitude": -49.4476, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1701309, - "municipio": "Aragominas", - "latitude": -7.16005, - "longitude": -48.5291, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1701903, - "municipio": "Araguacema", - "latitude": -8.80755, - "longitude": -49.5569, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1702000, - "municipio": "Araguaçu", - "latitude": -12.9289, - "longitude": -49.8231, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5101001, - "municipio": "Araguaiana", - "latitude": -15.7291, - "longitude": -51.8341, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1702109, - "municipio": "Araguaína", - "latitude": -7.19238, - "longitude": -48.2044, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5101209, - "municipio": "Araguainha", - "latitude": -16.857, - "longitude": -53.0318, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1702158, - "municipio": "Araguanã", - "latitude": -6.58225, - "longitude": -48.6395, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2100873, - "municipio": "Araguanã", - "latitude": -2.94644, - "longitude": -45.6589, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5202155, - "municipio": "Araguapaz", - "latitude": -15.0909, - "longitude": -50.6315, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3103504, - "municipio": "Araguari", - "latitude": -18.6456, - "longitude": -48.1934, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1702208, - "municipio": "Araguatins", - "latitude": -5.64659, - "longitude": -48.1232, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2100907, - "municipio": "Araioses", - "latitude": -2.89091, - "longitude": -41.905, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5001243, - "municipio": "Aral Moreira", - "latitude": -22.9385, - "longitude": -55.6334, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2902203, - "municipio": "Aramari", - "latitude": -12.0884, - "longitude": -38.4969, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4300851, - "municipio": "Arambaré", - "latitude": -30.9092, - "longitude": -51.5046, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2100956, - "municipio": "Arame", - "latitude": -4.88347, - "longitude": -46.0032, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3503000, - "municipio": "Aramina", - "latitude": -20.0882, - "longitude": -47.7873, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3503109, - "municipio": "Arandu", - "latitude": -23.1386, - "longitude": -49.0487, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3103603, - "municipio": "Arantina", - "latitude": -21.9102, - "longitude": -44.2555, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3503158, - "municipio": "Arapeí", - "latitude": -22.6717, - "longitude": -44.4441, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2700300, - "municipio": "Arapiraca", - "latitude": -9.75487, - "longitude": -36.6615, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1702307, - "municipio": "Arapoema", - "latitude": -7.65463, - "longitude": -49.0637, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3103702, - "municipio": "Araponga", - "latitude": -20.6686, - "longitude": -42.5178, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4101507, - "municipio": "Arapongas", - "latitude": -23.4153, - "longitude": -51.4259, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3103751, - "municipio": "Araporã", - "latitude": -18.4357, - "longitude": -49.1847, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4101606, - "municipio": "Arapoti", - "latitude": -24.1548, - "longitude": -49.8285, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4101655, - "municipio": "Arapuã", - "latitude": -24.3132, - "longitude": -51.7856, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3103801, - "municipio": "Arapuá", - "latitude": -19.0268, - "longitude": -46.1484, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5101258, - "municipio": "Araputanga", - "latitude": -15.4641, - "longitude": -58.3425, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4201307, - "municipio": "Araquari", - "latitude": -26.3754, - "longitude": -48.7188, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2500908, - "municipio": "Arara", - "latitude": -6.82813, - "longitude": -35.7552, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4201406, - "municipio": "Araranguá", - "latitude": -28.9356, - "longitude": -49.4918, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3503208, - "municipio": "Araraquara", - "latitude": -21.7845, - "longitude": -48.178, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3503307, - "municipio": "Araras", - "latitude": -22.3572, - "longitude": -47.3842, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2301257, - "municipio": "Ararendá", - "latitude": -4.74567, - "longitude": -40.831, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2101004, - "municipio": "Arari", - "latitude": -3.45214, - "longitude": -44.7665, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4300877, - "municipio": "Araricá", - "latitude": -29.6168, - "longitude": -50.9291, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2301307, - "municipio": "Araripe", - "latitude": -7.21319, - "longitude": -40.1359, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2601102, - "municipio": "Araripina", - "latitude": -7.57073, - "longitude": -40.494, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3300209, - "municipio": "Araruama", - "latitude": -22.8697, - "longitude": -42.3326, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4101705, - "municipio": "Araruna", - "latitude": -23.9315, - "longitude": -52.5021, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2501005, - "municipio": "Araruna", - "latitude": -6.54848, - "longitude": -35.7498, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2902252, - "municipio": "Arataca", - "latitude": -15.2651, - "longitude": -39.419, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4300901, - "municipio": "Aratiba", - "latitude": -27.3978, - "longitude": -52.2975, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2301406, - "municipio": "Aratuba", - "latitude": -4.41229, - "longitude": -39.0471, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2902302, - "municipio": "Aratuípe", - "latitude": -13.0716, - "longitude": -39.0038, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2800407, - "municipio": "Arauá", - "latitude": -11.2614, - "longitude": -37.6201, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4101804, - "municipio": "Araucária", - "latitude": -25.5859, - "longitude": -49.4047, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3103900, - "municipio": "Araújos", - "latitude": -19.9405, - "longitude": -45.1671, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3104007, - "municipio": "Araxá", - "latitude": -19.5902, - "longitude": -46.9438, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3104106, - "municipio": "Arceburgo", - "latitude": -21.359, - "longitude": -46.9401, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3503356, - "municipio": "Arco-Íris", - "latitude": -21.7728, - "longitude": -50.466, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3104205, - "municipio": "Arcos", - "latitude": -20.2863, - "longitude": -45.5373, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2601201, - "municipio": "Arcoverde", - "latitude": -8.41519, - "longitude": -37.0577, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3104304, - "municipio": "Areado", - "latitude": -21.3572, - "longitude": -46.1421, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3300225, - "municipio": "Areal", - "latitude": -22.2283, - "longitude": -43.1118, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3503406, - "municipio": "Arealva", - "latitude": -22.031, - "longitude": -48.9135, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2501104, - "municipio": "Areia", - "latitude": -6.96396, - "longitude": -35.6977, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2401107, - "municipio": "Areia Branca", - "latitude": -4.95254, - "longitude": -37.1252, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2800506, - "municipio": "Areia Branca", - "latitude": -10.758, - "longitude": -37.3251, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2501153, - "municipio": "Areia de Baraúnas", - "latitude": -7.11702, - "longitude": -36.9404, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2501203, - "municipio": "Areial", - "latitude": -7.04789, - "longitude": -35.9313, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3503505, - "municipio": "Areias", - "latitude": -22.5786, - "longitude": -44.6992, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3503604, - "municipio": "Areiópolis", - "latitude": -22.6672, - "longitude": -48.6681, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5101308, - "municipio": "Arenápolis", - "latitude": -14.4472, - "longitude": -56.8437, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5202353, - "municipio": "Arenópolis", - "latitude": -16.3837, - "longitude": -51.5563, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2401206, - "municipio": "Arês", - "latitude": -6.18831, - "longitude": -35.1608, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3104403, - "municipio": "Argirita", - "latitude": -21.6083, - "longitude": -42.8292, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3104452, - "municipio": "Aricanduva", - "latitude": -17.8666, - "longitude": -42.5533, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3104502, - "municipio": "Arinos", - "latitude": -15.9187, - "longitude": -46.1043, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5101407, - "municipio": "Aripuanã", - "latitude": -10.1723, - "longitude": -59.4568, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1100023, - "municipio": "Ariquemes", - "latitude": -9.90571, - "longitude": -63.0325, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3503703, - "municipio": "Ariranha", - "latitude": -21.1872, - "longitude": -48.7904, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4101853, - "municipio": "Ariranha do Ivaí", - "latitude": -24.3857, - "longitude": -51.5839, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3300233, - "municipio": "Armação dos Búzios", - "latitude": -22.7528, - "longitude": -41.8846, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4201505, - "municipio": "Armazém", - "latitude": -28.2448, - "longitude": -49.0215, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2301505, - "municipio": "Arneiroz", - "latitude": -6.3165, - "longitude": -40.1653, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2200905, - "municipio": "Aroazes", - "latitude": -6.11022, - "longitude": -41.7822, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2501302, - "municipio": "Aroeiras", - "latitude": -7.54473, - "longitude": -35.7066, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2200954, - "municipio": "Aroeiras do Itaim", - "latitude": -7.24502, - "longitude": -41.5325, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2201002, - "municipio": "Arraial", - "latitude": -6.65075, - "longitude": -42.5418, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3300258, - "municipio": "Arraial do Cabo", - "latitude": -22.9774, - "longitude": -42.0267, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1702406, - "municipio": "Arraias", - "latitude": -12.9287, - "longitude": -46.9359, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4301008, - "municipio": "Arroio do Meio", - "latitude": -29.4014, - "longitude": -51.9557, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4301073, - "municipio": "Arroio do Padre", - "latitude": -31.4389, - "longitude": -52.4246, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4301057, - "municipio": "Arroio do Sal", - "latitude": -29.5439, - "longitude": -49.8895, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4301206, - "municipio": "Arroio do Tigre", - "latitude": -29.3348, - "longitude": -53.0966, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4301107, - "municipio": "Arroio dos Ratos", - "latitude": -30.0875, - "longitude": -51.7275, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4301305, - "municipio": "Arroio Grande", - "latitude": -32.2327, - "longitude": -53.0862, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4201604, - "municipio": "Arroio Trinta", - "latitude": -26.9257, - "longitude": -51.3407, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3503802, - "municipio": "Artur Nogueira", - "latitude": -22.5727, - "longitude": -47.1727, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5202502, - "municipio": "Aruanã", - "latitude": -14.9166, - "longitude": -51.075, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3503901, - "municipio": "Arujá", - "latitude": -23.3965, - "longitude": -46.32, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4201653, - "municipio": "Arvoredo", - "latitude": -27.0748, - "longitude": -52.4543, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4301404, - "municipio": "Arvorezinha", - "latitude": -28.8737, - "longitude": -52.1781, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4201703, - "municipio": "Ascurra", - "latitude": -26.9548, - "longitude": -49.3783, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3503950, - "municipio": "Aspásia", - "latitude": -20.16, - "longitude": -50.728, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4101903, - "municipio": "Assaí", - "latitude": -23.3697, - "longitude": -50.8459, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2301604, - "municipio": "Assaré", - "latitude": -6.8669, - "longitude": -39.8689, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3504008, - "municipio": "Assis", - "latitude": -22.66, - "longitude": -50.4183, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1200054, - "municipio": "Assis Brasil", - "latitude": -10.9298, - "longitude": -69.5738, - "codigo_uf": 12, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 4102000, - "municipio": "Assis Chateaubriand", - "latitude": -24.4168, - "longitude": -53.5213, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2501351, - "municipio": "Assunção", - "latitude": -7.07231, - "longitude": -36.725, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2201051, - "municipio": "Assunção do Piauí", - "latitude": -5.865, - "longitude": -41.0389, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3104601, - "municipio": "Astolfo Dutra", - "latitude": -21.3184, - "longitude": -42.8572, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4102109, - "municipio": "Astorga", - "latitude": -23.2318, - "longitude": -51.6668, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4102208, - "municipio": "Atalaia", - "latitude": -23.1517, - "longitude": -52.0551, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2700409, - "municipio": "Atalaia", - "latitude": -9.5119, - "longitude": -36.0086, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1300201, - "municipio": "Atalaia do Norte", - "latitude": -4.37055, - "longitude": -70.1967, - "codigo_uf": 13, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 4201802, - "municipio": "Atalanta", - "latitude": -27.4219, - "longitude": -49.7789, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3104700, - "municipio": "Ataléia", - "latitude": -18.0438, - "longitude": -41.1149, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3504107, - "municipio": "Atibaia", - "latitude": -23.1171, - "longitude": -46.5563, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3200706, - "municipio": "Atilio Vivacqua", - "latitude": -20.913, - "longitude": -41.1986, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1702554, - "municipio": "Augustinópolis", - "latitude": -5.46863, - "longitude": -47.8863, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1500909, - "municipio": "Augusto Corrêa", - "latitude": -1.05109, - "longitude": -46.6147, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3104809, - "municipio": "Augusto de Lima", - "latitude": -18.0997, - "longitude": -44.2655, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4301503, - "municipio": "Augusto Pestana", - "latitude": -28.5172, - "longitude": -53.9883, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2401305, - "municipio": "Augusto Severo (Campo Grande)", - "latitude": -5.86206, - "longitude": -37.3135, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4301552, - "municipio": "Áurea", - "latitude": -27.6936, - "longitude": -52.0505, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2902401, - "municipio": "Aurelino Leal", - "latitude": -14.321, - "longitude": -39.329, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3504206, - "municipio": "Auriflama", - "latitude": -20.6836, - "longitude": -50.5572, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5202601, - "municipio": "Aurilândia", - "latitude": -16.6773, - "longitude": -50.4641, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2301703, - "municipio": "Aurora", - "latitude": -6.93349, - "longitude": -38.9742, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4201901, - "municipio": "Aurora", - "latitude": -27.3098, - "longitude": -49.6295, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1500958, - "municipio": "Aurora do Pará", - "latitude": -2.14898, - "longitude": -47.5677, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1702703, - "municipio": "Aurora do Tocantins", - "latitude": -12.7105, - "longitude": -46.4076, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1300300, - "municipio": "Autazes", - "latitude": -3.58574, - "longitude": -59.1256, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3504305, - "municipio": "Avaí", - "latitude": -22.1514, - "longitude": -49.3356, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3504404, - "municipio": "Avanhandava", - "latitude": -21.4584, - "longitude": -49.9509, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3504503, - "municipio": "Avaré", - "latitude": -23.1067, - "longitude": -48.9251, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1501006, - "municipio": "Aveiro", - "latitude": -3.60841, - "longitude": -55.3199, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2201101, - "municipio": "Avelino Lopes", - "latitude": -10.1345, - "longitude": -43.9563, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5202809, - "municipio": "Avelinópolis", - "latitude": -16.4672, - "longitude": -49.7579, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2101103, - "municipio": "Axixá", - "latitude": -2.83939, - "longitude": -44.062, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1702901, - "municipio": "Axixá do Tocantins", - "latitude": -5.61275, - "longitude": -47.7701, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1703008, - "municipio": "Babaçulândia", - "latitude": -7.20923, - "longitude": -47.7613, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2101202, - "municipio": "Bacabal", - "latitude": -4.22447, - "longitude": -44.7832, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2101251, - "municipio": "Bacabeira", - "latitude": -2.96452, - "longitude": -44.3164, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2101301, - "municipio": "Bacuri", - "latitude": -1.6965, - "longitude": -45.1328, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2101350, - "municipio": "Bacurituba", - "latitude": -2.71, - "longitude": -44.7329, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3504602, - "municipio": "Bady Bassitt", - "latitude": -20.9197, - "longitude": -49.4385, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3104908, - "municipio": "Baependi", - "latitude": -21.957, - "longitude": -44.8874, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4301602, - "municipio": "Bagé", - "latitude": -31.3297, - "longitude": -54.0999, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1501105, - "municipio": "Bagre", - "latitude": -1.90057, - "longitude": -50.1987, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2501401, - "municipio": "Baía da Traição", - "latitude": -6.69209, - "longitude": -34.9381, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2401404, - "municipio": "Baía Formosa", - "latitude": -6.37161, - "longitude": -35.0033, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2902500, - "municipio": "Baianópolis", - "latitude": -12.3016, - "longitude": -44.5388, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1501204, - "municipio": "Baião", - "latitude": -2.79021, - "longitude": -49.6694, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2902609, - "municipio": "Baixa Grande", - "latitude": -11.9519, - "longitude": -40.169, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2201150, - "municipio": "Baixa Grande do Ribeiro", - "latitude": -7.84903, - "longitude": -45.219, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2301802, - "municipio": "Baixio", - "latitude": -6.71945, - "longitude": -38.7134, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3200805, - "municipio": "Baixo Guandu", - "latitude": -19.5213, - "longitude": -41.0109, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3504701, - "municipio": "Balbinos", - "latitude": -21.8963, - "longitude": -49.3619, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3105004, - "municipio": "Baldim", - "latitude": -19.2832, - "longitude": -43.9613, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5203104, - "municipio": "Baliza", - "latitude": -16.1966, - "longitude": -52.5393, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4201950, - "municipio": "Balneário Arroio do Silva", - "latitude": -28.9806, - "longitude": -49.4237, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4202057, - "municipio": "Balneário Barra do Sul", - "latitude": -26.4597, - "longitude": -48.6123, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4202008, - "municipio": "Balneário Camboriú", - "latitude": -26.9926, - "longitude": -48.6352, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4202073, - "municipio": "Balneário Gaivota", - "latitude": -29.1527, - "longitude": -49.5841, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4212809, - "municipio": "Balneário Piçarras", - "latitude": -26.7639, - "longitude": -48.6717, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4301636, - "municipio": "Balneário Pinhal", - "latitude": -30.2419, - "longitude": -50.2337, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4220000, - "municipio": "Balneário Rincão", - "latitude": -28.8314, - "longitude": -49.2352, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4102307, - "municipio": "Balsa Nova", - "latitude": -25.5804, - "longitude": -49.6291, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3504800, - "municipio": "Bálsamo", - "latitude": -20.7348, - "longitude": -49.5865, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2101400, - "municipio": "Balsas", - "latitude": -7.53214, - "longitude": -46.0372, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3105103, - "municipio": "Bambuí", - "latitude": -20.0166, - "longitude": -45.9754, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2301851, - "municipio": "Banabuiú", - "latitude": -5.30454, - "longitude": -38.9132, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3504909, - "municipio": "Bananal", - "latitude": -22.6819, - "longitude": -44.3281, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2501500, - "municipio": "Bananeiras", - "latitude": -6.74775, - "longitude": -35.6246, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3105202, - "municipio": "Bandeira", - "latitude": -15.8783, - "longitude": -40.5622, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3105301, - "municipio": "Bandeira do Sul", - "latitude": -21.7308, - "longitude": -46.3833, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4202081, - "municipio": "Bandeirante", - "latitude": -26.7705, - "longitude": -53.6413, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5001508, - "municipio": "Bandeirantes", - "latitude": -19.9275, - "longitude": -54.3585, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4102406, - "municipio": "Bandeirantes", - "latitude": -23.1078, - "longitude": -50.3704, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1703057, - "municipio": "Bandeirantes do Tocantins", - "latitude": -7.75612, - "longitude": -48.5836, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1501253, - "municipio": "Bannach", - "latitude": -7.34779, - "longitude": -50.3959, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2902658, - "municipio": "Banzaê", - "latitude": -10.5788, - "longitude": -38.6212, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4301651, - "municipio": "Barão", - "latitude": -29.3725, - "longitude": -51.4949, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3505005, - "municipio": "Barão de Antonina", - "latitude": -23.6284, - "longitude": -49.5634, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3105400, - "municipio": "Barão de Cocais", - "latitude": -19.9389, - "longitude": -43.4755, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4301701, - "municipio": "Barão de Cotegipe", - "latitude": -27.6208, - "longitude": -52.3798, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2101509, - "municipio": "Barão de Grajaú", - "latitude": -6.74463, - "longitude": -43.0261, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5101605, - "municipio": "Barão de Melgaço", - "latitude": -16.2067, - "longitude": -55.9623, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3105509, - "municipio": "Barão de Monte Alto", - "latitude": -21.2444, - "longitude": -42.2372, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4301750, - "municipio": "Barão do Triunfo", - "latitude": -30.3891, - "longitude": -51.7384, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2401453, - "municipio": "Baraúna", - "latitude": -5.06977, - "longitude": -37.6129, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2501534, - "municipio": "Baraúna", - "latitude": -6.63484, - "longitude": -36.2601, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3105608, - "municipio": "Barbacena", - "latitude": -21.2214, - "longitude": -43.7703, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2301901, - "municipio": "Barbalha", - "latitude": -7.2982, - "longitude": -39.3021, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3505104, - "municipio": "Barbosa", - "latitude": -21.2657, - "longitude": -49.9518, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4102505, - "municipio": "Barbosa Ferraz", - "latitude": -24.0334, - "longitude": -52.004, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1501303, - "municipio": "Barcarena", - "latitude": -1.51187, - "longitude": -48.6195, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2401503, - "municipio": "Barcelona", - "latitude": -5.94284, - "longitude": -35.9247, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1300409, - "municipio": "Barcelos", - "latitude": -0.983373, - "longitude": -62.9311, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3505203, - "municipio": "Bariri", - "latitude": -22.073, - "longitude": -48.7438, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2902708, - "municipio": "Barra", - "latitude": -11.0859, - "longitude": -43.1459, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4202099, - "municipio": "Barra Bonita", - "latitude": -26.654, - "longitude": -53.44, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3505302, - "municipio": "Barra Bonita", - "latitude": -22.4909, - "longitude": -48.5583, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2201176, - "municipio": "Barra D'Alcântara", - "latitude": -6.51645, - "longitude": -42.1146, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2902807, - "municipio": "Barra da Estiva", - "latitude": -13.6237, - "longitude": -41.3347, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2601300, - "municipio": "Barra de Guabiraba", - "latitude": -8.42075, - "longitude": -35.6585, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2501609, - "municipio": "Barra de Santa Rosa", - "latitude": -6.71816, - "longitude": -36.0671, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2501575, - "municipio": "Barra de Santana", - "latitude": -7.51809, - "longitude": -35.9913, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2700508, - "municipio": "Barra de Santo Antônio", - "latitude": -9.4023, - "longitude": -35.5101, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3200904, - "municipio": "Barra de São Francisco", - "latitude": -18.7548, - "longitude": -40.8965, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2501708, - "municipio": "Barra de São Miguel", - "latitude": -7.74603, - "longitude": -36.3209, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2700607, - "municipio": "Barra de São Miguel", - "latitude": -9.83842, - "longitude": -35.9057, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5101704, - "municipio": "Barra do Bugres", - "latitude": -15.0702, - "longitude": -57.1878, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3505351, - "municipio": "Barra do Chapéu", - "latitude": -24.4722, - "longitude": -49.0238, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2902906, - "municipio": "Barra do Choça", - "latitude": -14.8654, - "longitude": -40.5791, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2101608, - "municipio": "Barra do Corda", - "latitude": -5.49682, - "longitude": -45.2485, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5101803, - "municipio": "Barra do Garças", - "latitude": -15.8804, - "longitude": -52.264, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4301859, - "municipio": "Barra do Guarita", - "latitude": -27.1927, - "longitude": -53.7109, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4102703, - "municipio": "Barra do Jacaré", - "latitude": -23.116, - "longitude": -50.1842, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2903003, - "municipio": "Barra do Mendes", - "latitude": -11.81, - "longitude": -42.059, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1703073, - "municipio": "Barra do Ouro", - "latitude": -7.69593, - "longitude": -47.6776, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3300308, - "municipio": "Barra do Piraí", - "latitude": -22.4715, - "longitude": -43.8269, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4301875, - "municipio": "Barra do Quaraí", - "latitude": -30.2029, - "longitude": -57.5497, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4301909, - "municipio": "Barra do Ribeiro", - "latitude": -30.2939, - "longitude": -51.3014, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4301925, - "municipio": "Barra do Rio Azul", - "latitude": -27.4069, - "longitude": -52.4084, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2903102, - "municipio": "Barra do Rocha", - "latitude": -14.2, - "longitude": -39.5991, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3505401, - "municipio": "Barra do Turvo", - "latitude": -24.759, - "longitude": -48.5013, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2800605, - "municipio": "Barra dos Coqueiros", - "latitude": -10.8996, - "longitude": -37.0323, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4301958, - "municipio": "Barra Funda", - "latitude": -27.9205, - "longitude": -53.0391, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3105707, - "municipio": "Barra Longa", - "latitude": -20.2869, - "longitude": -43.0402, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3300407, - "municipio": "Barra Mansa", - "latitude": -22.5481, - "longitude": -44.1752, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4202107, - "municipio": "Barra Velha", - "latitude": -26.637, - "longitude": -48.6933, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4301800, - "municipio": "Barracão", - "latitude": -27.6739, - "longitude": -51.4585, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4102604, - "municipio": "Barracão", - "latitude": -26.2502, - "longitude": -53.6324, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2201200, - "municipio": "Barras", - "latitude": -4.24468, - "longitude": -42.2922, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2301950, - "municipio": "Barreira", - "latitude": -4.28921, - "longitude": -38.6429, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2903201, - "municipio": "Barreiras", - "latitude": -12.1439, - "longitude": -44.9968, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2201309, - "municipio": "Barreiras do Piauí", - "latitude": -9.9296, - "longitude": -45.4702, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1300508, - "municipio": "Barreirinha", - "latitude": -2.79886, - "longitude": -57.0679, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2101707, - "municipio": "Barreirinhas", - "latitude": -2.75863, - "longitude": -42.8232, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2601409, - "municipio": "Barreiros", - "latitude": -8.81605, - "longitude": -35.1832, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3505500, - "municipio": "Barretos", - "latitude": -20.5531, - "longitude": -48.5698, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3505609, - "municipio": "Barrinha", - "latitude": -21.1864, - "longitude": -48.1636, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2302008, - "municipio": "Barro", - "latitude": -7.17188, - "longitude": -38.7741, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2903235, - "municipio": "Barro Alto", - "latitude": -11.7605, - "longitude": -41.9054, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5203203, - "municipio": "Barro Alto", - "latitude": -14.9658, - "longitude": -48.9086, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2201408, - "municipio": "Barro Duro", - "latitude": -5.81673, - "longitude": -42.5147, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2903300, - "municipio": "Barro Preto", - "latitude": -14.7948, - "longitude": -39.476, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2903276, - "municipio": "Barrocas", - "latitude": -11.5272, - "longitude": -39.0776, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1703107, - "municipio": "Barrolândia", - "latitude": -9.83404, - "longitude": -48.7252, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2302057, - "municipio": "Barroquinha", - "latitude": -3.02051, - "longitude": -41.1358, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4302006, - "municipio": "Barros Cassal", - "latitude": -29.0947, - "longitude": -52.5836, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3105905, - "municipio": "Barroso", - "latitude": -21.1907, - "longitude": -43.972, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3505708, - "municipio": "Barueri", - "latitude": -23.5057, - "longitude": -46.879, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3505807, - "municipio": "Bastos", - "latitude": -21.921, - "longitude": -50.7357, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5001904, - "municipio": "Bataguassu", - "latitude": -21.7159, - "longitude": -52.4221, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2201507, - "municipio": "Batalha", - "latitude": -4.0223, - "longitude": -42.0787, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2700706, - "municipio": "Batalha", - "latitude": -9.6742, - "longitude": -37.133, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3505906, - "municipio": "Batatais", - "latitude": -20.8929, - "longitude": -47.5921, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5002001, - "municipio": "Batayporã", - "latitude": -22.2944, - "longitude": -53.2705, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2302107, - "municipio": "Baturité", - "latitude": -4.32598, - "longitude": -38.8812, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3506003, - "municipio": "Bauru", - "latitude": -22.3246, - "longitude": -49.0871, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2501807, - "municipio": "Bayeux", - "latitude": -7.1238, - "longitude": -34.9293, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3506102, - "municipio": "Bebedouro", - "latitude": -20.9491, - "longitude": -48.4791, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2302206, - "municipio": "Beberibe", - "latitude": -4.17741, - "longitude": -38.1271, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2302305, - "municipio": "Bela Cruz", - "latitude": -3.04996, - "longitude": -40.1671, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5002100, - "municipio": "Bela Vista", - "latitude": -22.1073, - "longitude": -56.5263, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4102752, - "municipio": "Bela Vista da Caroba", - "latitude": -25.8842, - "longitude": -53.6725, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5203302, - "municipio": "Bela Vista de Goiás", - "latitude": -16.9693, - "longitude": -48.9513, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3106002, - "municipio": "Bela Vista de Minas", - "latitude": -19.8302, - "longitude": -43.0922, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2101772, - "municipio": "Bela Vista do Maranhão", - "latitude": -3.72618, - "longitude": -45.3075, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4102802, - "municipio": "Bela Vista do Paraíso", - "latitude": -22.9937, - "longitude": -51.1927, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2201556, - "municipio": "Bela Vista do Piauí", - "latitude": -7.98809, - "longitude": -41.8675, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4202131, - "municipio": "Bela Vista do Toldo", - "latitude": -26.2746, - "longitude": -50.4664, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2101731, - "municipio": "Belágua", - "latitude": -3.15485, - "longitude": -43.5122, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1501402, - "municipio": "Belém", - "latitude": -1.4554, - "longitude": -48.4898, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2501906, - "municipio": "Belém", - "latitude": -6.74261, - "longitude": -35.5166, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2700805, - "municipio": "Belém", - "latitude": -9.57047, - "longitude": -36.4904, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2601508, - "municipio": "Belém de Maria", - "latitude": -8.62504, - "longitude": -35.8335, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2502003, - "municipio": "Belém do Brejo do Cruz", - "latitude": -6.18515, - "longitude": -37.5348, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2201572, - "municipio": "Belém do Piauí", - "latitude": -7.36652, - "longitude": -40.9688, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2601607, - "municipio": "Belém do São Francisco", - "latitude": -8.75046, - "longitude": -38.9623, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3300456, - "municipio": "Belford Roxo", - "latitude": -22.764, - "longitude": -43.3992, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3106101, - "municipio": "Belmiro Braga", - "latitude": -21.944, - "longitude": -43.4084, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4202156, - "municipio": "Belmonte", - "latitude": -26.843, - "longitude": -53.5758, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2903409, - "municipio": "Belmonte", - "latitude": -15.8608, - "longitude": -38.8758, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2903508, - "municipio": "Belo Campo", - "latitude": -15.0334, - "longitude": -41.2652, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3106200, - "municipio": "Belo Horizonte", - "latitude": -19.9102, - "longitude": -43.9266, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2601706, - "municipio": "Belo Jardim", - "latitude": -8.3313, - "longitude": -36.4258, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2700904, - "municipio": "Belo Monte", - "latitude": -9.82272, - "longitude": -37.277, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3106309, - "municipio": "Belo Oriente", - "latitude": -19.2199, - "longitude": -42.4828, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3106408, - "municipio": "Belo Vale", - "latitude": -20.4077, - "longitude": -44.0275, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1501451, - "municipio": "Belterra", - "latitude": -2.63609, - "longitude": -54.9374, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2201606, - "municipio": "Beneditinos", - "latitude": -5.45676, - "longitude": -42.3638, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2101806, - "municipio": "Benedito Leite", - "latitude": -7.21037, - "longitude": -44.5577, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4202206, - "municipio": "Benedito Novo", - "latitude": -26.781, - "longitude": -49.3593, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1501501, - "municipio": "Benevides", - "latitude": -1.36183, - "longitude": -48.2434, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1300607, - "municipio": "Benjamin Constant", - "latitude": -4.37768, - "longitude": -70.0342, - "codigo_uf": 13, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 4302055, - "municipio": "Benjamin Constant do Sul", - "latitude": -27.5086, - "longitude": -52.5995, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3506201, - "municipio": "Bento de Abreu", - "latitude": -21.2686, - "longitude": -50.814, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2401602, - "municipio": "Bento Fernandes", - "latitude": -5.69906, - "longitude": -35.813, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4302105, - "municipio": "Bento Gonçalves", - "latitude": -29.1662, - "longitude": -51.5165, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2101905, - "municipio": "Bequimão", - "latitude": -2.44162, - "longitude": -44.7842, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3106507, - "municipio": "Berilo", - "latitude": -16.9567, - "longitude": -42.4606, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3106655, - "municipio": "Berizal", - "latitude": -15.61, - "longitude": -41.7432, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2502052, - "municipio": "Bernardino Batista", - "latitude": -6.44572, - "longitude": -38.5521, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3506300, - "municipio": "Bernardino de Campos", - "latitude": -23.0164, - "longitude": -49.4679, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2101939, - "municipio": "Bernardo do Mearim", - "latitude": -4.62666, - "longitude": -44.7608, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1703206, - "municipio": "Bernardo Sayão", - "latitude": -7.87481, - "longitude": -48.8893, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3506359, - "municipio": "Bertioga", - "latitude": -23.8486, - "longitude": -46.1396, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2201705, - "municipio": "Bertolínia", - "latitude": -7.63338, - "longitude": -43.9498, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3106606, - "municipio": "Bertópolis", - "latitude": -17.059, - "longitude": -40.58, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1300631, - "municipio": "Beruri", - "latitude": -3.89874, - "longitude": -61.3616, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2601805, - "municipio": "Betânia", - "latitude": -8.26787, - "longitude": -38.0345, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2201739, - "municipio": "Betânia do Piauí", - "latitude": -8.14376, - "longitude": -40.7989, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3106705, - "municipio": "Betim", - "latitude": -19.9668, - "longitude": -44.2008, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2601904, - "municipio": "Bezerros", - "latitude": -8.2328, - "longitude": -35.796, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3106804, - "municipio": "Bias Fortes", - "latitude": -21.602, - "longitude": -43.7574, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3106903, - "municipio": "Bicas", - "latitude": -21.7232, - "longitude": -43.056, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4202305, - "municipio": "Biguaçu", - "latitude": -27.496, - "longitude": -48.6598, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3506409, - "municipio": "Bilac", - "latitude": -21.404, - "longitude": -50.4746, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3107000, - "municipio": "Biquinhas", - "latitude": -18.7754, - "longitude": -45.4974, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3506508, - "municipio": "Birigui", - "latitude": -21.291, - "longitude": -50.3432, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3506607, - "municipio": "Biritiba-Mirim", - "latitude": -23.5698, - "longitude": -46.0407, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2903607, - "municipio": "Biritinga", - "latitude": -11.6072, - "longitude": -38.8051, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4102901, - "municipio": "Bituruna", - "latitude": -26.1607, - "longitude": -51.5518, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4202404, - "municipio": "Blumenau", - "latitude": -26.9155, - "longitude": -49.0709, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4103008, - "municipio": "Boa Esperança", - "latitude": -24.2467, - "longitude": -52.7876, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3107109, - "municipio": "Boa Esperança", - "latitude": -21.0927, - "longitude": -45.5612, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3201001, - "municipio": "Boa Esperança", - "latitude": -18.5395, - "longitude": -40.3025, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4103024, - "municipio": "Boa Esperança do Iguaçu", - "latitude": -25.6324, - "longitude": -53.2108, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3506706, - "municipio": "Boa Esperança do Sul", - "latitude": -21.9918, - "longitude": -48.3906, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2201770, - "municipio": "Boa Hora", - "latitude": -4.41404, - "longitude": -42.1357, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2903706, - "municipio": "Boa Nova", - "latitude": -14.3598, - "longitude": -40.2064, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2502102, - "municipio": "Boa Ventura", - "latitude": -7.40982, - "longitude": -38.2113, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4103040, - "municipio": "Boa Ventura de São Roque", - "latitude": -24.8688, - "longitude": -51.6276, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2302404, - "municipio": "Boa Viagem", - "latitude": -5.11258, - "longitude": -39.7337, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1400100, - "municipio": "Boa Vista", - "latitude": 2.82384, - "longitude": -60.6753, - "codigo_uf": 14, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2502151, - "municipio": "Boa Vista", - "latitude": -7.26365, - "longitude": -36.2357, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4103057, - "municipio": "Boa Vista da Aparecida", - "latitude": -25.4308, - "longitude": -53.4117, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4302154, - "municipio": "Boa Vista das Missões", - "latitude": -27.6671, - "longitude": -53.3102, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4302204, - "municipio": "Boa Vista do Buricá", - "latitude": -27.6693, - "longitude": -54.1082, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4302220, - "municipio": "Boa Vista do Cadeado", - "latitude": -28.5791, - "longitude": -53.8108, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2101970, - "municipio": "Boa Vista do Gurupi", - "latitude": -1.77614, - "longitude": -46.3002, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4302238, - "municipio": "Boa Vista do Incra", - "latitude": -28.8185, - "longitude": -53.391, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1300680, - "municipio": "Boa Vista do Ramos", - "latitude": -2.97409, - "longitude": -57.5873, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4302253, - "municipio": "Boa Vista do Sul", - "latitude": -29.3544, - "longitude": -51.6687, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2903805, - "municipio": "Boa Vista do Tupim", - "latitude": -12.6498, - "longitude": -40.6064, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2701001, - "municipio": "Boca da Mata", - "latitude": -9.64308, - "longitude": -36.2125, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1300706, - "municipio": "Boca do Acre", - "latitude": -8.74232, - "longitude": -67.3919, - "codigo_uf": 13, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 2201804, - "municipio": "Bocaina", - "latitude": -6.94124, - "longitude": -41.3168, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3506805, - "municipio": "Bocaina", - "latitude": -22.1365, - "longitude": -48.523, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3107208, - "municipio": "Bocaina de Minas", - "latitude": -22.1697, - "longitude": -44.3972, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4202438, - "municipio": "Bocaina do Sul", - "latitude": -27.7455, - "longitude": -49.9423, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3107307, - "municipio": "Bocaiúva", - "latitude": -17.1135, - "longitude": -43.8104, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4103107, - "municipio": "Bocaiúva do Sul", - "latitude": -25.2066, - "longitude": -49.1141, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2401651, - "municipio": "Bodó", - "latitude": -5.98027, - "longitude": -36.4167, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2602001, - "municipio": "Bodocó", - "latitude": -7.77759, - "longitude": -39.9338, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5002159, - "municipio": "Bodoquena", - "latitude": -20.537, - "longitude": -56.7127, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3506904, - "municipio": "Bofete", - "latitude": -23.1055, - "longitude": -48.2582, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3507001, - "municipio": "Boituva", - "latitude": -23.2855, - "longitude": -47.6786, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2602100, - "municipio": "Bom Conselho", - "latitude": -9.16919, - "longitude": -36.6857, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3107406, - "municipio": "Bom Despacho", - "latitude": -19.7386, - "longitude": -45.2622, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3300506, - "municipio": "Bom Jardim", - "latitude": -22.1545, - "longitude": -42.4251, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2602209, - "municipio": "Bom Jardim", - "latitude": -7.79695, - "longitude": -35.5784, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2102002, - "municipio": "Bom Jardim", - "latitude": -3.54129, - "longitude": -45.606, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4202503, - "municipio": "Bom Jardim da Serra", - "latitude": -28.3377, - "longitude": -49.6373, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5203401, - "municipio": "Bom Jardim de Goiás", - "latitude": -16.2063, - "longitude": -52.1728, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3107505, - "municipio": "Bom Jardim de Minas", - "latitude": -21.9479, - "longitude": -44.1885, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4202537, - "municipio": "Bom Jesus", - "latitude": -26.7326, - "longitude": -52.3919, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4302303, - "municipio": "Bom Jesus", - "latitude": -28.6697, - "longitude": -50.4295, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2201903, - "municipio": "Bom Jesus", - "latitude": -9.07124, - "longitude": -44.359, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2401701, - "municipio": "Bom Jesus", - "latitude": -5.98648, - "longitude": -35.5792, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2502201, - "municipio": "Bom Jesus", - "latitude": -6.81601, - "longitude": -38.6453, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2903904, - "municipio": "Bom Jesus da Lapa", - "latitude": -13.2506, - "longitude": -43.4108, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3107604, - "municipio": "Bom Jesus da Penha", - "latitude": -21.0148, - "longitude": -46.5174, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2903953, - "municipio": "Bom Jesus da Serra", - "latitude": -14.3663, - "longitude": -40.5126, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2102036, - "municipio": "Bom Jesus das Selvas", - "latitude": -4.47638, - "longitude": -46.8641, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5203500, - "municipio": "Bom Jesus de Goiás", - "latitude": -18.2173, - "longitude": -49.74, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3107703, - "municipio": "Bom Jesus do Amparo", - "latitude": -19.7054, - "longitude": -43.4782, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5101852, - "municipio": "Bom Jesus do Araguaia", - "latitude": -12.1706, - "longitude": -51.5032, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3107802, - "municipio": "Bom Jesus do Galho", - "latitude": -19.836, - "longitude": -42.3165, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3300605, - "municipio": "Bom Jesus do Itabapoana", - "latitude": -21.1449, - "longitude": -41.6822, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3201100, - "municipio": "Bom Jesus do Norte", - "latitude": -21.1173, - "longitude": -41.6731, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4202578, - "municipio": "Bom Jesus do Oeste", - "latitude": -26.6927, - "longitude": -53.0967, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4103156, - "municipio": "Bom Jesus do Sul", - "latitude": -26.1958, - "longitude": -53.5955, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1501576, - "municipio": "Bom Jesus do Tocantins", - "latitude": -5.0424, - "longitude": -48.6047, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1703305, - "municipio": "Bom Jesus do Tocantins", - "latitude": -8.96306, - "longitude": -48.1650, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3507100, - "municipio": "Bom Jesus dos Perdões", - "latitude": -23.1356, - "longitude": -46.4675, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2102077, - "municipio": "Bom Lugar", - "latitude": -4.37311, - "longitude": -45.0326, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4302352, - "municipio": "Bom Princípio", - "latitude": -29.4856, - "longitude": -51.3548, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2201919, - "municipio": "Bom Princípio do Piauí", - "latitude": -3.19631, - "longitude": -41.6403, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4302378, - "municipio": "Bom Progresso", - "latitude": -27.5399, - "longitude": -53.8716, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3107901, - "municipio": "Bom Repouso", - "latitude": -22.4675, - "longitude": -46.144, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4202602, - "municipio": "Bom Retiro", - "latitude": -27.799, - "longitude": -49.487, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4302402, - "municipio": "Bom Retiro do Sul", - "latitude": -29.6071, - "longitude": -51.9456, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3108008, - "municipio": "Bom Sucesso", - "latitude": -21.0329, - "longitude": -44.7537, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4103206, - "municipio": "Bom Sucesso", - "latitude": -23.7063, - "longitude": -51.7671, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2502300, - "municipio": "Bom Sucesso", - "latitude": -6.44176, - "longitude": -37.9234, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3507159, - "municipio": "Bom Sucesso de Itararé", - "latitude": -24.3155, - "longitude": -49.1451, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4103222, - "municipio": "Bom Sucesso do Sul", - "latitude": -26.0731, - "longitude": -52.8353, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4202453, - "municipio": "Bombinhas", - "latitude": -27.1382, - "longitude": -48.5146, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1400159, - "municipio": "Bonfim", - "latitude": 3.36161, - "longitude": -59.8333, - "codigo_uf": 14, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3108107, - "municipio": "Bonfim", - "latitude": -20.3302, - "longitude": -44.2366, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2201929, - "municipio": "Bonfim do Piauí", - "latitude": -9.1605, - "longitude": -42.8865, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5203559, - "municipio": "Bonfinópolis", - "latitude": -16.6173, - "longitude": -48.9616, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3108206, - "municipio": "Bonfinópolis de Minas", - "latitude": -16.568, - "longitude": -45.9839, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2904001, - "municipio": "Boninal", - "latitude": -12.7069, - "longitude": -41.8286, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2602308, - "municipio": "Bonito", - "latitude": -8.47163, - "longitude": -35.7292, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2904050, - "municipio": "Bonito", - "latitude": -11.9668, - "longitude": -41.2647, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1501600, - "municipio": "Bonito", - "latitude": -1.36745, - "longitude": -47.3066, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5002209, - "municipio": "Bonito", - "latitude": -21.1261, - "longitude": -56.4836, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3108255, - "municipio": "Bonito de Minas", - "latitude": -15.3231, - "longitude": -44.7543, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2502409, - "municipio": "Bonito de Santa Fé", - "latitude": -7.31341, - "longitude": -38.5133, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5203575, - "municipio": "Bonópolis", - "latitude": -13.6329, - "longitude": -49.8106, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2502508, - "municipio": "Boqueirão", - "latitude": -7.487, - "longitude": -36.1309, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4302451, - "municipio": "Boqueirão do Leão", - "latitude": -29.3046, - "longitude": -52.4284, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2201945, - "municipio": "Boqueirão do Piauí", - "latitude": -4.48181, - "longitude": -42.1212, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2800670, - "municipio": "Boquim", - "latitude": -11.1397, - "longitude": -37.6195, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2904100, - "municipio": "Boquira", - "latitude": -12.8205, - "longitude": -42.7324, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3507209, - "municipio": "Borá", - "latitude": -22.2696, - "longitude": -50.5409, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3507308, - "municipio": "Boracéia", - "latitude": -22.1926, - "longitude": -48.7808, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1300805, - "municipio": "Borba", - "latitude": -4.39154, - "longitude": -59.5874, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2502706, - "municipio": "Borborema", - "latitude": -6.80199, - "longitude": -35.6187, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3507407, - "municipio": "Borborema", - "latitude": -21.6214, - "longitude": -49.0741, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3108305, - "municipio": "Borda da Mata", - "latitude": -22.2707, - "longitude": -46.1653, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3507456, - "municipio": "Borebi", - "latitude": -22.5728, - "longitude": -48.9707, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4103305, - "municipio": "Borrazópolis", - "latitude": -23.9366, - "longitude": -51.5875, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4302501, - "municipio": "Bossoroca", - "latitude": -28.7291, - "longitude": -54.9035, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3108404, - "municipio": "Botelhos", - "latitude": -21.6412, - "longitude": -46.391, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3507506, - "municipio": "Botucatu", - "latitude": -22.8837, - "longitude": -48.4437, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3108503, - "municipio": "Botumirim", - "latitude": -16.8657, - "longitude": -43.0086, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2904209, - "municipio": "Botuporã", - "latitude": -13.3772, - "longitude": -42.5163, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4202701, - "municipio": "Botuverá", - "latitude": -27.2007, - "longitude": -49.0689, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4302584, - "municipio": "Bozano", - "latitude": -28.3659, - "longitude": -53.772, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4202800, - "municipio": "Braço do Norte", - "latitude": -28.2681, - "longitude": -49.1701, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4202859, - "municipio": "Braço do Trombudo", - "latitude": -27.3586, - "longitude": -49.8821, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4302600, - "municipio": "Braga", - "latitude": -27.6173, - "longitude": -53.7405, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1501709, - "municipio": "Bragança", - "latitude": -1.06126, - "longitude": -46.7826, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3507605, - "municipio": "Bragança Paulista", - "latitude": -22.9527, - "longitude": -46.5419, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4103354, - "municipio": "Braganey", - "latitude": -24.8173, - "longitude": -53.1218, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2701100, - "municipio": "Branquinha", - "latitude": -9.23342, - "longitude": -36.0162, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3108701, - "municipio": "Brás Pires", - "latitude": -20.8419, - "longitude": -43.2406, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1501725, - "municipio": "Brasil Novo", - "latitude": -3.29792, - "longitude": -52.534, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5002308, - "municipio": "Brasilândia", - "latitude": -21.2544, - "longitude": -52.0365, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3108552, - "municipio": "Brasilândia de Minas", - "latitude": -16.9999, - "longitude": -46.0081, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4103370, - "municipio": "Brasilândia do Sul", - "latitude": -24.1978, - "longitude": -53.5275, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1703602, - "municipio": "Brasilândia do Tocantins", - "latitude": -8.38918, - "longitude": -48.4822, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1200104, - "municipio": "Brasiléia", - "latitude": -10.995, - "longitude": -68.7497, - "codigo_uf": 12, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 2201960, - "municipio": "Brasileira", - "latitude": -4.1337, - "longitude": -41.7859, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5300108, - "municipio": "Brasília", - "latitude": -15.7795, - "longitude": -47.9297, - "codigo_uf": 53, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3108602, - "municipio": "Brasília de Minas", - "latitude": -16.2104, - "longitude": -44.4299, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5101902, - "municipio": "Brasnorte", - "latitude": -12.1474, - "longitude": -57.9833, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3507704, - "municipio": "Braúna", - "latitude": -21.499, - "longitude": -50.3175, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3108800, - "municipio": "Braúnas", - "latitude": -19.0562, - "longitude": -42.7099, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5203609, - "municipio": "Brazabrantes", - "latitude": -16.4281, - "longitude": -49.3863, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3108909, - "municipio": "Brazópolis", - "latitude": -22.4743, - "longitude": -45.6166, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2602407, - "municipio": "Brejão", - "latitude": -9.02915, - "longitude": -36.566, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3201159, - "municipio": "Brejetuba", - "latitude": -20.1395, - "longitude": -41.2954, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2401800, - "municipio": "Brejinho", - "latitude": -6.18566, - "longitude": -35.3591, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2602506, - "municipio": "Brejinho", - "latitude": -7.34694, - "longitude": -37.2865, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1703701, - "municipio": "Brejinho de Nazaré", - "latitude": -11.0058, - "longitude": -48.5683, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2102101, - "municipio": "Brejo", - "latitude": -3.67796, - "longitude": -42.7527, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3507753, - "municipio": "Brejo Alegre", - "latitude": -21.1651, - "longitude": -50.1861, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2602605, - "municipio": "Brejo da Madre de Deus", - "latitude": -8.14933, - "longitude": -36.3741, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2102150, - "municipio": "Brejo de Areia", - "latitude": -4.334, - "longitude": -45.581, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2502805, - "municipio": "Brejo do Cruz", - "latitude": -6.34185, - "longitude": -37.4943, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2201988, - "municipio": "Brejo do Piauí", - "latitude": -8.20314, - "longitude": -42.8229, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2502904, - "municipio": "Brejo dos Santos", - "latitude": -6.37065, - "longitude": -37.8253, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2800704, - "municipio": "Brejo Grande", - "latitude": -10.4297, - "longitude": -36.4611, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1501758, - "municipio": "Brejo Grande do Araguaia", - "latitude": -5.69822, - "longitude": -48.4103, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2302503, - "municipio": "Brejo Santo", - "latitude": -7.48469, - "longitude": -38.9799, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2904308, - "municipio": "Brejões", - "latitude": -13.1039, - "longitude": -39.7988, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2904407, - "municipio": "Brejolândia", - "latitude": -12.4815, - "longitude": -43.9679, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1501782, - "municipio": "Breu Branco", - "latitude": -3.77191, - "longitude": -49.5735, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1501808, - "municipio": "Breves", - "latitude": -1.68036, - "longitude": -50.4791, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5203807, - "municipio": "Britânia", - "latitude": -15.2428, - "longitude": -51.1602, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4302659, - "municipio": "Brochier", - "latitude": -29.5501, - "longitude": -51.5945, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3507803, - "municipio": "Brodowski", - "latitude": -20.9845, - "longitude": -47.6572, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3507902, - "municipio": "Brotas", - "latitude": -22.2795, - "longitude": -48.1251, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2904506, - "municipio": "Brotas de Macaúbas", - "latitude": -11.9915, - "longitude": -42.6326, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3109006, - "municipio": "Brumadinho", - "latitude": -20.151, - "longitude": -44.2007, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2904605, - "municipio": "Brumado", - "latitude": -14.2021, - "longitude": -41.6696, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4202875, - "municipio": "Brunópolis", - "latitude": -27.3058, - "longitude": -50.8684, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4202909, - "municipio": "Brusque", - "latitude": -27.0977, - "longitude": -48.9107, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3109105, - "municipio": "Bueno Brandão", - "latitude": -22.4383, - "longitude": -46.3491, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3109204, - "municipio": "Buenópolis", - "latitude": -17.8744, - "longitude": -44.1775, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2602704, - "municipio": "Buenos Aires", - "latitude": -7.72449, - "longitude": -35.3182, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2904704, - "municipio": "Buerarema", - "latitude": -14.9595, - "longitude": -39.3028, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3109253, - "municipio": "Bugre", - "latitude": -19.4231, - "longitude": -42.2552, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2602803, - "municipio": "Buíque", - "latitude": -8.61954, - "longitude": -37.1606, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1200138, - "municipio": "Bujari", - "latitude": -9.81528, - "longitude": -67.955, - "codigo_uf": 12, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 1501907, - "municipio": "Bujaru", - "latitude": -1.51762, - "longitude": -48.0381, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3508009, - "municipio": "Buri", - "latitude": -23.7977, - "longitude": -48.5958, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3508108, - "municipio": "Buritama", - "latitude": -21.0661, - "longitude": -50.1475, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2102200, - "municipio": "Buriti", - "latitude": -3.94169, - "longitude": -42.9179, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5203906, - "municipio": "Buriti Alegre", - "latitude": -18.1378, - "longitude": -49.0404, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2102309, - "municipio": "Buriti Bravo", - "latitude": -5.83239, - "longitude": -43.8353, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5203939, - "municipio": "Buriti de Goiás", - "latitude": -16.1792, - "longitude": -50.4302, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1703800, - "municipio": "Buriti do Tocantins", - "latitude": -5.31448, - "longitude": -48.2271, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2202000, - "municipio": "Buriti dos Lopes", - "latitude": -3.18259, - "longitude": -41.8695, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2202026, - "municipio": "Buriti dos Montes", - "latitude": -5.30584, - "longitude": -41.0933, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2102325, - "municipio": "Buriticupu", - "latitude": -4.32375, - "longitude": -46.4409, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5203962, - "municipio": "Buritinópolis", - "latitude": -14.4772, - "longitude": -46.4076, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2904753, - "municipio": "Buritirama", - "latitude": -10.7171, - "longitude": -43.6302, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2102358, - "municipio": "Buritirana", - "latitude": -5.59823, - "longitude": -47.0131, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100452, - "municipio": "Buritis", - "latitude": -10.1943, - "longitude": -63.8324, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3109303, - "municipio": "Buritis", - "latitude": -15.6218, - "longitude": -46.4221, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3508207, - "municipio": "Buritizal", - "latitude": -20.1911, - "longitude": -47.7096, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3109402, - "municipio": "Buritizeiro", - "latitude": -17.3656, - "longitude": -44.9606, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4302709, - "municipio": "Butiá", - "latitude": -30.1179, - "longitude": -51.9601, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1300839, - "municipio": "Caapiranga", - "latitude": -3.31537, - "longitude": -61.2206, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2503001, - "municipio": "Caaporã", - "latitude": -7.51351, - "longitude": -34.9055, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5002407, - "municipio": "Caarapó", - "latitude": -22.6368, - "longitude": -54.8209, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2904803, - "municipio": "Caatiba", - "latitude": -14.9699, - "longitude": -40.4092, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2503100, - "municipio": "Cabaceiras", - "latitude": -7.48899, - "longitude": -36.287, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2904852, - "municipio": "Cabaceiras do Paraguaçu", - "latitude": -12.5317, - "longitude": -39.1902, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3109451, - "municipio": "Cabeceira Grande", - "latitude": -16.0335, - "longitude": -47.0862, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5204003, - "municipio": "Cabeceiras", - "latitude": -15.7995, - "longitude": -46.9265, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2202059, - "municipio": "Cabeceiras do Piauí", - "latitude": -4.4773, - "longitude": -42.3069, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2503209, - "municipio": "Cabedelo", - "latitude": -6.98731, - "longitude": -34.8284, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100031, - "municipio": "Cabixi", - "latitude": -13.4945, - "longitude": -60.552, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2602902, - "municipio": "Cabo de Santo Agostinho", - "latitude": -8.28218, - "longitude": -35.0253, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3300704, - "municipio": "Cabo Frio", - "latitude": -22.8894, - "longitude": -42.0286, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3109501, - "municipio": "Cabo Verde", - "latitude": -21.4699, - "longitude": -46.3919, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3508306, - "municipio": "Cabrália Paulista", - "latitude": -22.4576, - "longitude": -49.3393, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3508405, - "municipio": "Cabreúva", - "latitude": -23.3053, - "longitude": -47.1362, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2603009, - "municipio": "Cabrobó", - "latitude": -8.50548, - "longitude": -39.3094, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4203006, - "municipio": "Caçador", - "latitude": -26.7757, - "longitude": -51.012, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3508504, - "municipio": "Caçapava", - "latitude": -23.0992, - "longitude": -45.7076, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4302808, - "municipio": "Caçapava do Sul", - "latitude": -30.5144, - "longitude": -53.4827, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100601, - "municipio": "Cacaulândia", - "latitude": -10.349, - "longitude": -62.9043, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4302907, - "municipio": "Cacequi", - "latitude": -29.8883, - "longitude": -54.822, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5102504, - "municipio": "Cáceres", - "latitude": -16.0764, - "longitude": -57.6818, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2904902, - "municipio": "Cachoeira", - "latitude": -12.5994, - "longitude": -38.9587, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5204102, - "municipio": "Cachoeira Alta", - "latitude": -18.7618, - "longitude": -50.9432, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3109600, - "municipio": "Cachoeira da Prata", - "latitude": -19.521, - "longitude": -44.4544, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5204201, - "municipio": "Cachoeira de Goiás", - "latitude": -16.6635, - "longitude": -50.646, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3109709, - "municipio": "Cachoeira de Minas", - "latitude": -22.3511, - "longitude": -45.7809, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3102704, - "municipio": "Cachoeira de Pajeú", - "latitude": -15.9688, - "longitude": -41.4948, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1502004, - "municipio": "Cachoeira do Arari", - "latitude": -1.01226, - "longitude": -48.9503, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1501956, - "municipio": "Cachoeira do Piriá", - "latitude": -1.75974, - "longitude": -46.5459, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4303004, - "municipio": "Cachoeira do Sul", - "latitude": -30.033, - "longitude": -52.8928, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2503308, - "municipio": "Cachoeira dos Índios", - "latitude": -6.91353, - "longitude": -38.676, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5204250, - "municipio": "Cachoeira Dourada", - "latitude": -18.4859, - "longitude": -49.4766, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3109808, - "municipio": "Cachoeira Dourada", - "latitude": -18.5161, - "longitude": -49.5039, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2102374, - "municipio": "Cachoeira Grande", - "latitude": -2.93074, - "longitude": -44.0528, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3508603, - "municipio": "Cachoeira Paulista", - "latitude": -22.6665, - "longitude": -45.0154, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3300803, - "municipio": "Cachoeiras de Macacu", - "latitude": -22.4658, - "longitude": -42.6523, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1703826, - "municipio": "Cachoeirinha", - "latitude": -6.1156, - "longitude": -47.9234, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2603108, - "municipio": "Cachoeirinha", - "latitude": -8.48668, - "longitude": -36.2402, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4303103, - "municipio": "Cachoeirinha", - "latitude": -29.9472, - "longitude": -51.1016, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3201209, - "municipio": "Cachoeiro de Itapemirim", - "latitude": -20.8462, - "longitude": -41.1198, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2503407, - "municipio": "Cacimba de Areia", - "latitude": -7.12128, - "longitude": -37.1563, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2503506, - "municipio": "Cacimba de Dentro", - "latitude": -6.6386, - "longitude": -35.7778, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2503555, - "municipio": "Cacimbas", - "latitude": -7.20721, - "longitude": -37.0604, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2701209, - "municipio": "Cacimbinhas", - "latitude": -9.40121, - "longitude": -36.9911, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4303202, - "municipio": "Cacique Doble", - "latitude": -27.767, - "longitude": -51.6597, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100049, - "municipio": "Cacoal", - "latitude": -11.4343, - "longitude": -61.4562, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3508702, - "municipio": "Caconde", - "latitude": -21.528, - "longitude": -46.6437, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5204300, - "municipio": "Caçu", - "latitude": -18.5594, - "longitude": -51.1328, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2905008, - "municipio": "Caculé", - "latitude": -14.5003, - "longitude": -42.2229, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2905107, - "municipio": "Caém", - "latitude": -11.0677, - "longitude": -40.432, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3109907, - "municipio": "Caetanópolis", - "latitude": -19.2971, - "longitude": -44.4189, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2905156, - "municipio": "Caetanos", - "latitude": -14.3347, - "longitude": -40.9175, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3110004, - "municipio": "Caeté", - "latitude": -19.8826, - "longitude": -43.6704, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2603207, - "municipio": "Caetés", - "latitude": -8.7803, - "longitude": -36.6268, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2905206, - "municipio": "Caetité", - "latitude": -14.0684, - "longitude": -42.4861, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2905305, - "municipio": "Cafarnaum", - "latitude": -11.6914, - "longitude": -41.4688, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4103404, - "municipio": "Cafeara", - "latitude": -22.789, - "longitude": -51.7142, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3508801, - "municipio": "Cafelândia", - "latitude": -21.8031, - "longitude": -49.6092, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4103453, - "municipio": "Cafelândia", - "latitude": -24.6189, - "longitude": -53.3207, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4103479, - "municipio": "Cafezal do Sul", - "latitude": -23.9005, - "longitude": -53.5124, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3508900, - "municipio": "Caiabu", - "latitude": -22.0127, - "longitude": -51.2394, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3110103, - "municipio": "Caiana", - "latitude": -20.6956, - "longitude": -41.9292, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5204409, - "municipio": "Caiapônia", - "latitude": -16.9539, - "longitude": -51.8091, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4303301, - "municipio": "Caibaté", - "latitude": -28.2905, - "longitude": -54.6454, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4203105, - "municipio": "Caibi", - "latitude": -27.0741, - "longitude": -53.2458, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4303400, - "municipio": "Caiçara", - "latitude": -27.2791, - "longitude": -53.4257, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2503605, - "municipio": "Caiçara", - "latitude": -6.62115, - "longitude": -35.4581, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2401859, - "municipio": "Caiçara do Norte", - "latitude": -5.07091, - "longitude": -36.0717, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2401909, - "municipio": "Caiçara do Rio do Vento", - "latitude": -5.76541, - "longitude": -35.9938, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2402006, - "municipio": "Caicó", - "latitude": -6.45441, - "longitude": -37.1067, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3509007, - "municipio": "Caieiras", - "latitude": -23.3607, - "longitude": -46.7397, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2905404, - "municipio": "Cairu", - "latitude": -13.4904, - "longitude": -39.0465, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3509106, - "municipio": "Caiuá", - "latitude": -21.8322, - "longitude": -51.9969, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3509205, - "municipio": "Cajamar", - "latitude": -23.355, - "longitude": -46.8781, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2102408, - "municipio": "Cajapió", - "latitude": -2.87326, - "longitude": -44.6741, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2102507, - "municipio": "Cajari", - "latitude": -3.32742, - "longitude": -45.0145, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3509254, - "municipio": "Cajati", - "latitude": -24.7324, - "longitude": -48.1223, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2503704, - "municipio": "Cajazeiras", - "latitude": -6.88004, - "longitude": -38.5577, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2202075, - "municipio": "Cajazeiras do Piauí", - "latitude": -6.79667, - "longitude": -42.3903, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2503753, - "municipio": "Cajazeirinhas", - "latitude": -6.96016, - "longitude": -37.8009, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3509304, - "municipio": "Cajobi", - "latitude": -20.8773, - "longitude": -48.8063, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2701308, - "municipio": "Cajueiro", - "latitude": -9.3994, - "longitude": -36.1559, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2202083, - "municipio": "Cajueiro da Praia", - "latitude": -2.93111, - "longitude": -41.3408, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3110202, - "municipio": "Cajuri", - "latitude": -20.7903, - "longitude": -42.7925, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3509403, - "municipio": "Cajuru", - "latitude": -21.2749, - "longitude": -47.303, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2603306, - "municipio": "Calçado", - "latitude": -8.73108, - "longitude": -36.3366, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1600204, - "municipio": "Calçoene", - "latitude": 2.50475, - "longitude": -50.9512, - "codigo_uf": 16, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3110301, - "municipio": "Caldas", - "latitude": -21.9183, - "longitude": -46.3843, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2503803, - "municipio": "Caldas Brandão", - "latitude": -7.1025, - "longitude": -35.3272, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5204508, - "municipio": "Caldas Novas", - "latitude": -17.7441, - "longitude": -48.6246, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5204557, - "municipio": "Caldazinha", - "latitude": -16.7117, - "longitude": -49.0013, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2905503, - "municipio": "Caldeirão Grande", - "latitude": -11.0208, - "longitude": -40.2956, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2202091, - "municipio": "Caldeirão Grande do Piauí", - "latitude": -7.3314, - "longitude": -40.6366, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4103503, - "municipio": "Califórnia", - "latitude": -23.6566, - "longitude": -51.3574, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4203154, - "municipio": "Calmon", - "latitude": -26.5942, - "longitude": -51.095, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2603405, - "municipio": "Calumbi", - "latitude": -7.93551, - "longitude": -38.1482, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2905602, - "municipio": "Camacan", - "latitude": -15.4142, - "longitude": -39.4919, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2905701, - "municipio": "Camaçari", - "latitude": -12.6996, - "longitude": -38.3263, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3110400, - "municipio": "Camacho", - "latitude": -20.6294, - "longitude": -45.1593, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2503902, - "municipio": "Camalaú", - "latitude": -7.88503, - "longitude": -36.8242, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2905800, - "municipio": "Camamu", - "latitude": -13.9398, - "longitude": -39.1071, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3110509, - "municipio": "Camanducaia", - "latitude": -22.7515, - "longitude": -46.1494, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5002605, - "municipio": "Camapuã", - "latitude": -19.5347, - "longitude": -54.0431, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4303509, - "municipio": "Camaquã", - "latitude": -30.8489, - "longitude": -51.8043, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2603454, - "municipio": "Camaragibe", - "latitude": -8.02351, - "longitude": -34.9782, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4303558, - "municipio": "Camargo", - "latitude": -28.588, - "longitude": -52.2003, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4103602, - "municipio": "Cambará", - "latitude": -23.0423, - "longitude": -50.0753, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4303608, - "municipio": "Cambará do Sul", - "latitude": -29.0474, - "longitude": -50.1465, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4103701, - "municipio": "Cambé", - "latitude": -23.2766, - "longitude": -51.2798, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4103800, - "municipio": "Cambira", - "latitude": -23.589, - "longitude": -51.5792, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4203204, - "municipio": "Camboriú", - "latitude": -27.0241, - "longitude": -48.6503, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3300902, - "municipio": "Cambuci", - "latitude": -21.5691, - "longitude": -41.9187, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3110608, - "municipio": "Cambuí", - "latitude": -22.6115, - "longitude": -46.0572, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3110707, - "municipio": "Cambuquira", - "latitude": -21.854, - "longitude": -45.2896, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1502103, - "municipio": "Cametá", - "latitude": -2.24295, - "longitude": -49.4979, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2302602, - "municipio": "Camocim", - "latitude": -2.9005, - "longitude": -40.8544, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2603504, - "municipio": "Camocim de São Félix", - "latitude": -8.35865, - "longitude": -35.7653, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3110806, - "municipio": "Campanário", - "latitude": -18.2427, - "longitude": -41.7355, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3110905, - "municipio": "Campanha", - "latitude": -21.836, - "longitude": -45.4004, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3111002, - "municipio": "Campestre", - "latitude": -21.7079, - "longitude": -46.2381, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2701357, - "municipio": "Campestre", - "latitude": -8.84723, - "longitude": -35.5685, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4303673, - "municipio": "Campestre da Serra", - "latitude": -28.7926, - "longitude": -51.0941, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5204607, - "municipio": "Campestre de Goiás", - "latitude": -16.7624, - "longitude": -49.695, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2102556, - "municipio": "Campestre do Maranhão", - "latitude": -6.17075, - "longitude": -47.3625, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4103909, - "municipio": "Campina da Lagoa", - "latitude": -24.5893, - "longitude": -52.7976, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4303707, - "municipio": "Campina das Missões", - "latitude": -27.9888, - "longitude": -54.8416, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3509452, - "municipio": "Campina do Monte Alegre", - "latitude": -23.5895, - "longitude": -48.4758, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4103958, - "municipio": "Campina do Simão", - "latitude": -25.0802, - "longitude": -51.8237, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2504009, - "municipio": "Campina Grande", - "latitude": -7.22196, - "longitude": -35.8731, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4104006, - "municipio": "Campina Grande do Sul", - "latitude": -25.3044, - "longitude": -49.0551, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3111101, - "municipio": "Campina Verde", - "latitude": -19.5382, - "longitude": -49.4862, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5204656, - "municipio": "Campinaçu", - "latitude": -13.787, - "longitude": -48.5704, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5102603, - "municipio": "Campinápolis", - "latitude": -14.5162, - "longitude": -52.893, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3509502, - "municipio": "Campinas", - "latitude": -22.9053, - "longitude": -47.0659, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2202109, - "municipio": "Campinas do Piauí", - "latitude": -7.6593, - "longitude": -41.8775, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4303806, - "municipio": "Campinas do Sul", - "latitude": -27.7174, - "longitude": -52.6248, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5204706, - "municipio": "Campinorte", - "latitude": -14.3137, - "longitude": -49.1511, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4203303, - "municipio": "Campo Alegre", - "latitude": -26.195, - "longitude": -49.2676, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2701407, - "municipio": "Campo Alegre", - "latitude": -9.78451, - "longitude": -36.3525, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5204805, - "municipio": "Campo Alegre de Goiás", - "latitude": -17.6363, - "longitude": -47.7768, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2905909, - "municipio": "Campo Alegre de Lourdes", - "latitude": -9.52221, - "longitude": -43.0126, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2202117, - "municipio": "Campo Alegre do Fidalgo", - "latitude": -8.38236, - "longitude": -41.8344, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3111150, - "municipio": "Campo Azul", - "latitude": -16.5028, - "longitude": -44.8096, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3111200, - "municipio": "Campo Belo", - "latitude": -20.8932, - "longitude": -45.2699, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4203402, - "municipio": "Campo Belo do Sul", - "latitude": -27.8975, - "longitude": -50.7595, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4303905, - "municipio": "Campo Bom", - "latitude": -29.6747, - "longitude": -51.0606, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4104055, - "municipio": "Campo Bonito", - "latitude": -25.0294, - "longitude": -52.9939, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2801009, - "municipio": "Campo do Brito", - "latitude": -10.7392, - "longitude": -37.4954, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3111309, - "municipio": "Campo do Meio", - "latitude": -21.1127, - "longitude": -45.8273, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4104105, - "municipio": "Campo do Tenente", - "latitude": -25.98, - "longitude": -49.6844, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4203501, - "municipio": "Campo Erê", - "latitude": -26.3931, - "longitude": -53.0856, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3111408, - "municipio": "Campo Florido", - "latitude": -19.7631, - "longitude": -48.5716, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2906006, - "municipio": "Campo Formoso", - "latitude": -10.5105, - "longitude": -40.32, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2701506, - "municipio": "Campo Grande", - "latitude": -9.95542, - "longitude": -36.7926, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5002704, - "municipio": "Campo Grande", - "latitude": -20.4486, - "longitude": -54.6295, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2202133, - "municipio": "Campo Grande do Piauí", - "latitude": -7.12827, - "longitude": -41.0315, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4104204, - "municipio": "Campo Largo", - "latitude": -25.4525, - "longitude": -49.529, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2202174, - "municipio": "Campo Largo do Piauí", - "latitude": -3.80441, - "longitude": -42.64, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5204854, - "municipio": "Campo Limpo de Goiás", - "latitude": -16.2971, - "longitude": -49.0895, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3509601, - "municipio": "Campo Limpo Paulista", - "latitude": -23.2078, - "longitude": -46.7889, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4104253, - "municipio": "Campo Magro", - "latitude": -25.3687, - "longitude": -49.4501, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2202208, - "municipio": "Campo Maior", - "latitude": -4.8217, - "longitude": -42.1641, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4104303, - "municipio": "Campo Mourão", - "latitude": -24.0463, - "longitude": -52.378, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4304002, - "municipio": "Campo Novo", - "latitude": -27.6792, - "longitude": -53.8052, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100700, - "municipio": "Campo Novo de Rondônia", - "latitude": -10.5712, - "longitude": -63.6266, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5102637, - "municipio": "Campo Novo do Parecis", - "latitude": -13.6587, - "longitude": -57.8907, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2402105, - "municipio": "Campo Redondo", - "latitude": -6.23829, - "longitude": -36.1888, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5102678, - "municipio": "Campo Verde", - "latitude": -15.545, - "longitude": -55.1626, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3111507, - "municipio": "Campos Altos", - "latitude": -19.6914, - "longitude": -46.1725, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5204904, - "municipio": "Campos Belos", - "latitude": -13.035, - "longitude": -46.7681, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4304101, - "municipio": "Campos Borges", - "latitude": -28.8871, - "longitude": -53.0008, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5102686, - "municipio": "Campos de Júlio", - "latitude": -13.7242, - "longitude": -59.2858, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3509700, - "municipio": "Campos do Jordão", - "latitude": -22.7296, - "longitude": -45.5833, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3301009, - "municipio": "Campos dos Goytacazes", - "latitude": -21.7622, - "longitude": -41.3181, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3111606, - "municipio": "Campos Gerais", - "latitude": -21.237, - "longitude": -45.7569, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1703842, - "municipio": "Campos Lindos", - "latitude": -7.98956, - "longitude": -46.8645, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4203600, - "municipio": "Campos Novos", - "latitude": -27.4002, - "longitude": -51.2276, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3509809, - "municipio": "Campos Novos Paulista", - "latitude": -22.602, - "longitude": -49.9987, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2302701, - "municipio": "Campos Sales", - "latitude": -7.06761, - "longitude": -40.3687, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5204953, - "municipio": "Campos Verdes", - "latitude": -14.2442, - "longitude": -49.6528, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2603603, - "municipio": "Camutanga", - "latitude": -7.40545, - "longitude": -35.2664, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3111903, - "municipio": "Cana Verde", - "latitude": -21.0232, - "longitude": -45.1801, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3111705, - "municipio": "Canaã", - "latitude": -20.6869, - "longitude": -42.6167, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1502152, - "municipio": "Canaã dos Carajás", - "latitude": -6.49659, - "longitude": -49.8776, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5102694, - "municipio": "Canabrava do Norte", - "latitude": -11.0556, - "longitude": -51.8209, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3509908, - "municipio": "Cananéia", - "latitude": -25.0144, - "longitude": -47.9341, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2701605, - "municipio": "Canapi", - "latitude": -9.11932, - "longitude": -37.5967, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2906105, - "municipio": "Canápolis", - "latitude": -13.0725, - "longitude": -44.201, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3111804, - "municipio": "Canápolis", - "latitude": -18.7212, - "longitude": -49.2035, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2906204, - "municipio": "Canarana", - "latitude": -11.6858, - "longitude": -41.7677, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5102702, - "municipio": "Canarana", - "latitude": -13.5515, - "longitude": -52.2705, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3509957, - "municipio": "Canas", - "latitude": -22.7003, - "longitude": -45.0521, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2202251, - "municipio": "Canavieira", - "latitude": -7.68821, - "longitude": -43.7233, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2906303, - "municipio": "Canavieiras", - "latitude": -15.6722, - "longitude": -38.9536, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2906402, - "municipio": "Candeal", - "latitude": -11.8049, - "longitude": -39.1203, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2906501, - "municipio": "Candeias", - "latitude": -12.6716, - "longitude": -38.5472, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3112000, - "municipio": "Candeias", - "latitude": -20.7692, - "longitude": -45.2765, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100809, - "municipio": "Candeias do Jamari", - "latitude": -8.7907, - "longitude": -63.7005, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4304200, - "municipio": "Candelária", - "latitude": -29.6684, - "longitude": -52.7895, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2906600, - "municipio": "Candiba", - "latitude": -14.4097, - "longitude": -42.8667, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4104402, - "municipio": "Cândido de Abreu", - "latitude": -24.5649, - "longitude": -51.3372, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4304309, - "municipio": "Cândido Godói", - "latitude": -27.9515, - "longitude": -54.7517, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2102606, - "municipio": "Cândido Mendes", - "latitude": -1.43265, - "longitude": -45.7161, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3510005, - "municipio": "Cândido Mota", - "latitude": -22.7471, - "longitude": -50.3873, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3510104, - "municipio": "Cândido Rodrigues", - "latitude": -21.3275, - "longitude": -48.6327, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2906709, - "municipio": "Cândido Sales", - "latitude": -15.4993, - "longitude": -41.2414, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4304358, - "municipio": "Candiota", - "latitude": -31.5516, - "longitude": -53.6773, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4104428, - "municipio": "Candói", - "latitude": -25.5758, - "longitude": -52.0409, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4304408, - "municipio": "Canela", - "latitude": -29.356, - "longitude": -50.8119, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4203709, - "municipio": "Canelinha", - "latitude": -27.2616, - "longitude": -48.7658, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2402204, - "municipio": "Canguaretama", - "latitude": -6.37193, - "longitude": -35.1281, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4304507, - "municipio": "Canguçu", - "latitude": -31.396, - "longitude": -52.6783, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2801108, - "municipio": "Canhoba", - "latitude": -10.1365, - "longitude": -36.9806, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2603702, - "municipio": "Canhotinho", - "latitude": -8.87652, - "longitude": -36.1979, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2302800, - "municipio": "Canindé", - "latitude": -4.35162, - "longitude": -39.3155, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2801207, - "municipio": "Canindé de São Francisco", - "latitude": -9.64882, - "longitude": -37.7923, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3510153, - "municipio": "Canitar", - "latitude": -23.004, - "longitude": -49.7839, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4304606, - "municipio": "Canoas", - "latitude": -29.9128, - "longitude": -51.1857, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4203808, - "municipio": "Canoinhas", - "latitude": -26.1766, - "longitude": -50.395, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2906808, - "municipio": "Cansanção", - "latitude": -10.6647, - "longitude": -39.4944, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1400175, - "municipio": "Cantá", - "latitude": 2.60994, - "longitude": -60.6058, - "codigo_uf": 14, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3301108, - "municipio": "Cantagalo", - "latitude": -21.9797, - "longitude": -42.3664, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4104451, - "municipio": "Cantagalo", - "latitude": -25.3734, - "longitude": -52.1198, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3112059, - "municipio": "Cantagalo", - "latitude": -18.5248, - "longitude": -42.6223, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2102705, - "municipio": "Cantanhede", - "latitude": -3.63757, - "longitude": -44.383, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2202307, - "municipio": "Canto do Buriti", - "latitude": -8.1111, - "longitude": -42.9517, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2906824, - "municipio": "Canudos", - "latitude": -9.90014, - "longitude": -39.1471, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4304614, - "municipio": "Canudos do Vale", - "latitude": -29.3271, - "longitude": -52.2374, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1300904, - "municipio": "Canutama", - "latitude": -6.52582, - "longitude": -64.3953, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1502202, - "municipio": "Capanema", - "latitude": -1.20529, - "longitude": -47.1778, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4104501, - "municipio": "Capanema", - "latitude": -25.6691, - "longitude": -53.8055, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4203253, - "municipio": "Capão Alto", - "latitude": -27.9389, - "longitude": -50.5098, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3510203, - "municipio": "Capão Bonito", - "latitude": -24.0113, - "longitude": -48.3482, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4304622, - "municipio": "Capão Bonito do Sul", - "latitude": -28.1254, - "longitude": -51.3961, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4304630, - "municipio": "Capão da Canoa", - "latitude": -29.7642, - "longitude": -50.0282, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4304655, - "municipio": "Capão do Cipó", - "latitude": -28.9312, - "longitude": -54.5558, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4304663, - "municipio": "Capão do Leão", - "latitude": -31.7565, - "longitude": -52.4889, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3112109, - "municipio": "Caparaó", - "latitude": -20.5289, - "longitude": -41.9061, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2701704, - "municipio": "Capela", - "latitude": -9.41504, - "longitude": -36.0826, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2801306, - "municipio": "Capela", - "latitude": -10.5069, - "longitude": -37.0628, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4304689, - "municipio": "Capela de Santana", - "latitude": -29.6961, - "longitude": -51.328, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3510302, - "municipio": "Capela do Alto", - "latitude": -23.4685, - "longitude": -47.7388, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2906857, - "municipio": "Capela do Alto Alegre", - "latitude": -11.6658, - "longitude": -39.8349, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3112208, - "municipio": "Capela Nova", - "latitude": -20.9179, - "longitude": -43.622, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3112307, - "municipio": "Capelinha", - "latitude": -17.6888, - "longitude": -42.5147, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3112406, - "municipio": "Capetinga", - "latitude": -20.6163, - "longitude": -47.0571, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2504033, - "municipio": "Capim", - "latitude": -6.91624, - "longitude": -35.1673, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3112505, - "municipio": "Capim Branco", - "latitude": -19.5471, - "longitude": -44.1304, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2906873, - "municipio": "Capim Grosso", - "latitude": -11.3797, - "longitude": -40.0089, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3112604, - "municipio": "Capinópolis", - "latitude": -18.6862, - "longitude": -49.5706, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4203907, - "municipio": "Capinzal", - "latitude": -27.3473, - "longitude": -51.6057, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2102754, - "municipio": "Capinzal do Norte", - "latitude": -4.7236, - "longitude": -44.328, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2302909, - "municipio": "Capistrano", - "latitude": -4.45569, - "longitude": -38.9048, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4304697, - "municipio": "Capitão", - "latitude": -29.2674, - "longitude": -51.9853, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3112653, - "municipio": "Capitão Andrade", - "latitude": -19.0748, - "longitude": -41.8614, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2202406, - "municipio": "Capitão de Campos", - "latitude": -4.457, - "longitude": -41.944, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3112703, - "municipio": "Capitão Enéas", - "latitude": -16.3265, - "longitude": -43.7084, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2202455, - "municipio": "Capitão Gervásio Oliveira", - "latitude": -8.49655, - "longitude": -41.814, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4104600, - "municipio": "Capitão Leônidas Marques", - "latitude": -25.4816, - "longitude": -53.6112, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1502301, - "municipio": "Capitão Poço", - "latitude": -1.74785, - "longitude": -47.0629, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3112802, - "municipio": "Capitólio", - "latitude": -20.6164, - "longitude": -46.0493, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3510401, - "municipio": "Capivari", - "latitude": -22.9951, - "longitude": -47.5071, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4203956, - "municipio": "Capivari de Baixo", - "latitude": -28.4498, - "longitude": -48.9631, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4304671, - "municipio": "Capivari do Sul", - "latitude": -30.1383, - "longitude": -50.5152, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1200179, - "municipio": "Capixaba", - "latitude": -10.566, - "longitude": -67.686, - "codigo_uf": 12, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 2603801, - "municipio": "Capoeiras", - "latitude": -8.73423, - "longitude": -36.6306, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3112901, - "municipio": "Caputira", - "latitude": -20.1703, - "longitude": -42.2683, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4304713, - "municipio": "Caraá", - "latitude": -29.7869, - "longitude": -50.4316, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1400209, - "municipio": "Caracaraí", - "latitude": 1.82766, - "longitude": -61.1304, - "codigo_uf": 14, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2202505, - "municipio": "Caracol", - "latitude": -9.27933, - "longitude": -43.329, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5002803, - "municipio": "Caracol", - "latitude": -22.011, - "longitude": -57.0277, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3510500, - "municipio": "Caraguatatuba", - "latitude": -23.6125, - "longitude": -45.4125, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3113008, - "municipio": "Caraí", - "latitude": -17.1862, - "longitude": -41.7004, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2906899, - "municipio": "Caraíbas", - "latitude": -14.7177, - "longitude": -41.2603, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4104659, - "municipio": "Carambeí", - "latitude": -24.9152, - "longitude": -50.0986, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3113107, - "municipio": "Caranaíba", - "latitude": -20.8707, - "longitude": -43.7417, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3113206, - "municipio": "Carandaí", - "latitude": -20.9566, - "longitude": -43.811, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3113305, - "municipio": "Carangola", - "latitude": -20.7343, - "longitude": -42.0313, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3300936, - "municipio": "Carapebus", - "latitude": -22.1821, - "longitude": -41.663, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3510609, - "municipio": "Carapicuíba", - "latitude": -23.5235, - "longitude": -46.8407, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3113404, - "municipio": "Caratinga", - "latitude": -19.7868, - "longitude": -42.1292, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1301001, - "municipio": "Carauari", - "latitude": -4.88161, - "longitude": -66.9086, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2402303, - "municipio": "Caraúbas", - "latitude": -5.78387, - "longitude": -37.5586, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2504074, - "municipio": "Caraúbas", - "latitude": -7.72049, - "longitude": -36.492, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2202539, - "municipio": "Caraúbas do Piauí", - "latitude": -3.47525, - "longitude": -41.8425, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2906907, - "municipio": "Caravelas", - "latitude": -17.7268, - "longitude": -39.2597, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4304705, - "municipio": "Carazinho", - "latitude": -28.2958, - "longitude": -52.7933, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3113503, - "municipio": "Carbonita", - "latitude": -17.5255, - "longitude": -43.0137, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2907004, - "municipio": "Cardeal da Silva", - "latitude": -11.9472, - "longitude": -37.9469, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3510708, - "municipio": "Cardoso", - "latitude": -20.08, - "longitude": -49.9183, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3301157, - "municipio": "Cardoso Moreira", - "latitude": -21.4846, - "longitude": -41.6165, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3113602, - "municipio": "Careaçu", - "latitude": -22.0424, - "longitude": -45.696, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1301100, - "municipio": "Careiro", - "latitude": -3.76803, - "longitude": -60.369, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1301159, - "municipio": "Careiro da Várzea", - "latitude": -3.314, - "longitude": -59.5557, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3201308, - "municipio": "Cariacica", - "latitude": -20.2632, - "longitude": -40.4165, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2303006, - "municipio": "Caridade", - "latitude": -4.22514, - "longitude": -39.1912, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2202554, - "municipio": "Caridade do Piauí", - "latitude": -7.73435, - "longitude": -40.9848, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2907103, - "municipio": "Carinhanha", - "latitude": -14.2985, - "longitude": -43.7724, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2801405, - "municipio": "Carira", - "latitude": -10.3524, - "longitude": -37.7002, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2303105, - "municipio": "Cariré", - "latitude": -3.94858, - "longitude": -40.476, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1703867, - "municipio": "Cariri do Tocantins", - "latitude": -11.8881, - "longitude": -49.1609, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2303204, - "municipio": "Caririaçu", - "latitude": -7.02808, - "longitude": -39.2828, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2303303, - "municipio": "Cariús", - "latitude": -6.52428, - "longitude": -39.4916, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5102793, - "municipio": "Carlinda", - "latitude": -9.94912, - "longitude": -55.8417, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4104709, - "municipio": "Carlópolis", - "latitude": -23.4269, - "longitude": -49.7235, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4304804, - "municipio": "Carlos Barbosa", - "latitude": -29.2969, - "longitude": -51.5028, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3113701, - "municipio": "Carlos Chagas", - "latitude": -17.6973, - "longitude": -40.7723, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4304853, - "municipio": "Carlos Gomes", - "latitude": -27.7167, - "longitude": -51.9121, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3113800, - "municipio": "Carmésia", - "latitude": -19.0877, - "longitude": -43.1382, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3301207, - "municipio": "Carmo", - "latitude": -21.931, - "longitude": -42.6046, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3113909, - "municipio": "Carmo da Cachoeira", - "latitude": -21.4633, - "longitude": -45.2201, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3114006, - "municipio": "Carmo da Mata", - "latitude": -20.5575, - "longitude": -44.8735, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3114105, - "municipio": "Carmo de Minas", - "latitude": -22.1204, - "longitude": -45.1307, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3114204, - "municipio": "Carmo do Cajuru", - "latitude": -20.1912, - "longitude": -44.7664, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3114303, - "municipio": "Carmo do Paranaíba", - "latitude": -18.991, - "longitude": -46.3167, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3114402, - "municipio": "Carmo do Rio Claro", - "latitude": -20.9736, - "longitude": -46.1149, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5205000, - "municipio": "Carmo do Rio Verde", - "latitude": -15.3549, - "longitude": -49.708, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1703883, - "municipio": "Carmolândia", - "latitude": -7.03262, - "longitude": -48.3978, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2801504, - "municipio": "Carmópolis", - "latitude": -10.6449, - "longitude": -36.9887, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3114501, - "municipio": "Carmópolis de Minas", - "latitude": -20.5396, - "longitude": -44.6336, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2603900, - "municipio": "Carnaíba", - "latitude": -7.79342, - "longitude": -37.7946, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2402402, - "municipio": "Carnaúba dos Dantas", - "latitude": -6.55015, - "longitude": -36.5868, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2402501, - "municipio": "Carnaubais", - "latitude": -5.34181, - "longitude": -36.8335, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2303402, - "municipio": "Carnaubal", - "latitude": -4.15985, - "longitude": -40.9413, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2603926, - "municipio": "Carnaubeira da Penha", - "latitude": -8.31799, - "longitude": -38.7512, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3114550, - "municipio": "Carneirinho", - "latitude": -19.6987, - "longitude": -50.6894, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2701803, - "municipio": "Carneiros", - "latitude": -9.48476, - "longitude": -37.3773, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1400233, - "municipio": "Caroebe", - "latitude": 0.884203, - "longitude": -59.6959, - "codigo_uf": 14, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2102804, - "municipio": "Carolina", - "latitude": -7.33584, - "longitude": -47.4634, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2604007, - "municipio": "Carpina", - "latitude": -7.84566, - "longitude": -35.2514, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3114600, - "municipio": "Carrancas", - "latitude": -21.4898, - "longitude": -44.6446, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2504108, - "municipio": "Carrapateira", - "latitude": -7.03414, - "longitude": -38.3399, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1703891, - "municipio": "Carrasco Bonito", - "latitude": -5.31415, - "longitude": -48.0314, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2604106, - "municipio": "Caruaru", - "latitude": -8.28455, - "longitude": -35.9699, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2102903, - "municipio": "Carutapera", - "latitude": -1.19696, - "longitude": -46.0085, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3114709, - "municipio": "Carvalhópolis", - "latitude": -21.7735, - "longitude": -45.8421, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3114808, - "municipio": "Carvalhos", - "latitude": -22.0145, - "longitude": -44.4632, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3510807, - "municipio": "Casa Branca", - "latitude": -21.7708, - "longitude": -47.0852, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3114907, - "municipio": "Casa Grande", - "latitude": -20.7925, - "longitude": -43.9343, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2907202, - "municipio": "Casa Nova", - "latitude": -9.16408, - "longitude": -40.974, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4304903, - "municipio": "Casca", - "latitude": -28.5605, - "longitude": -51.9815, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3115003, - "municipio": "Cascalho Rico", - "latitude": -18.5772, - "longitude": -47.8716, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4104808, - "municipio": "Cascavel", - "latitude": -24.9573, - "longitude": -53.459, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2303501, - "municipio": "Cascavel", - "latitude": -4.12967, - "longitude": -38.2412, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1703909, - "municipio": "Caseara", - "latitude": -9.27612, - "longitude": -49.9521, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4304952, - "municipio": "Caseiros", - "latitude": -28.2582, - "longitude": -51.6861, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3301306, - "municipio": "Casimiro de Abreu", - "latitude": -22.4812, - "longitude": -42.2066, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2604155, - "municipio": "Casinhas", - "latitude": -7.74084, - "longitude": -35.7206, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2504157, - "municipio": "Casserengue", - "latitude": -6.77954, - "longitude": -35.8179, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3115102, - "municipio": "Cássia", - "latitude": -20.5831, - "longitude": -46.9201, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3510906, - "municipio": "Cássia dos Coqueiros", - "latitude": -21.2801, - "longitude": -47.1643, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5002902, - "municipio": "Cassilândia", - "latitude": -19.1179, - "longitude": -51.7313, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1502400, - "municipio": "Castanhal", - "latitude": -1.29797, - "longitude": -47.9167, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5102850, - "municipio": "Castanheira", - "latitude": -11.1251, - "longitude": -58.6081, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1100908, - "municipio": "Castanheiras", - "latitude": -11.4253, - "longitude": -61.9482, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5205059, - "municipio": "Castelândia", - "latitude": -18.0921, - "longitude": -50.203, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3201407, - "municipio": "Castelo", - "latitude": -20.6033, - "longitude": -41.2031, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2202604, - "municipio": "Castelo do Piauí", - "latitude": -5.31869, - "longitude": -41.5499, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3511003, - "municipio": "Castilho", - "latitude": -20.8689, - "longitude": -51.4884, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4104907, - "municipio": "Castro", - "latitude": -24.7891, - "longitude": -50.0108, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2907301, - "municipio": "Castro Alves", - "latitude": -12.7579, - "longitude": -39.4248, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3115300, - "municipio": "Cataguases", - "latitude": -21.3924, - "longitude": -42.6896, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5205109, - "municipio": "Catalão", - "latitude": -18.1656, - "longitude": -47.944, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3511102, - "municipio": "Catanduva", - "latitude": -21.1314, - "longitude": -48.977, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4105003, - "municipio": "Catanduvas", - "latitude": -25.2044, - "longitude": -53.1548, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4204004, - "municipio": "Catanduvas", - "latitude": -27.069, - "longitude": -51.6602, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2303600, - "municipio": "Catarina", - "latitude": -6.12291, - "longitude": -39.8736, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3115359, - "municipio": "Catas Altas", - "latitude": -20.0734, - "longitude": -43.4061, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3115409, - "municipio": "Catas Altas da Noruega", - "latitude": -20.6901, - "longitude": -43.4939, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2604205, - "municipio": "Catende", - "latitude": -8.67509, - "longitude": -35.7024, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3511201, - "municipio": "Catiguá", - "latitude": -21.0519, - "longitude": -49.0616, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2504207, - "municipio": "Catingueira", - "latitude": -7.12008, - "longitude": -37.6064, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2907400, - "municipio": "Catolândia", - "latitude": -12.31, - "longitude": -44.8648, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2504306, - "municipio": "Catolé do Rocha", - "latitude": -6.34062, - "longitude": -37.747, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2907509, - "municipio": "Catu", - "latitude": -12.3513, - "longitude": -38.3791, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4305009, - "municipio": "Catuípe", - "latitude": -28.2554, - "longitude": -54.0132, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3115458, - "municipio": "Catuji", - "latitude": -17.3018, - "longitude": -41.5276, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2303659, - "municipio": "Catunda", - "latitude": -4.64336, - "longitude": -40.2, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5205208, - "municipio": "Caturaí", - "latitude": -16.4447, - "longitude": -49.4936, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2907558, - "municipio": "Caturama", - "latitude": -13.3239, - "longitude": -42.2904, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2504355, - "municipio": "Caturité", - "latitude": -7.41659, - "longitude": -36.0306, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3115474, - "municipio": "Catuti", - "latitude": -15.3616, - "longitude": -42.9627, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2303709, - "municipio": "Caucaia", - "latitude": -3.72797, - "longitude": -38.6619, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5205307, - "municipio": "Cavalcante", - "latitude": -13.7976, - "longitude": -47.4566, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3115508, - "municipio": "Caxambu", - "latitude": -21.9753, - "longitude": -44.9319, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4204103, - "municipio": "Caxambu do Sul", - "latitude": -27.1624, - "longitude": -52.8807, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2103000, - "municipio": "Caxias", - "latitude": -4.86505, - "longitude": -43.3617, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4305108, - "municipio": "Caxias do Sul", - "latitude": -29.1629, - "longitude": -51.1792, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2202653, - "municipio": "Caxingó", - "latitude": -3.41904, - "longitude": -41.8955, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2402600, - "municipio": "Ceará-Mirim", - "latitude": -5.64323, - "longitude": -35.4247, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2103109, - "municipio": "Cedral", - "latitude": -2.00027, - "longitude": -44.5281, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3511300, - "municipio": "Cedral", - "latitude": -20.9009, - "longitude": -49.2664, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2303808, - "municipio": "Cedro", - "latitude": -6.60034, - "longitude": -39.0609, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2604304, - "municipio": "Cedro", - "latitude": -7.71179, - "longitude": -39.2367, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2801603, - "municipio": "Cedro de São João", - "latitude": -10.2534, - "longitude": -36.8856, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3115607, - "municipio": "Cedro do Abaeté", - "latitude": -19.1458, - "longitude": -45.712, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4204152, - "municipio": "Celso Ramos", - "latitude": -27.6327, - "longitude": -51.335, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4305116, - "municipio": "Centenário", - "latitude": -27.7615, - "longitude": -51.9984, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1704105, - "municipio": "Centenário", - "latitude": -8.96103, - "longitude": -47.3304, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4105102, - "municipio": "Centenário do Sul", - "latitude": -22.8188, - "longitude": -51.5973, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2907608, - "municipio": "Central", - "latitude": -11.1376, - "longitude": -42.1116, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3115706, - "municipio": "Central de Minas", - "latitude": -18.7612, - "longitude": -41.3143, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2103125, - "municipio": "Central do Maranhão", - "latitude": -2.19831, - "longitude": -44.8254, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3115805, - "municipio": "Centralina", - "latitude": -18.5852, - "longitude": -49.2014, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2103158, - "municipio": "Centro do Guilherme", - "latitude": -2.44891, - "longitude": -46.0345, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2103174, - "municipio": "Centro Novo do Maranhão", - "latitude": -2.12696, - "longitude": -46.1228, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100056, - "municipio": "Cerejeiras", - "latitude": -13.187, - "longitude": -60.8168, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5205406, - "municipio": "Ceres", - "latitude": -15.3061, - "longitude": -49.6, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3511409, - "municipio": "Cerqueira César", - "latitude": -23.038, - "longitude": -49.1655, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3511508, - "municipio": "Cerquilho", - "latitude": -23.1665, - "longitude": -47.7459, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4305124, - "municipio": "Cerrito", - "latitude": -31.8419, - "longitude": -52.8004, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4105201, - "municipio": "Cerro Azul", - "latitude": -26.0891, - "longitude": -52.8691, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4305132, - "municipio": "Cerro Branco", - "latitude": -29.657, - "longitude": -52.9406, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2402709, - "municipio": "Cerro Corá", - "latitude": -6.03503, - "longitude": -36.3503, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4305157, - "municipio": "Cerro Grande", - "latitude": -27.6106, - "longitude": -53.1672, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4305173, - "municipio": "Cerro Grande do Sul", - "latitude": -30.5905, - "longitude": -51.7418, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4305207, - "municipio": "Cerro Largo", - "latitude": -28.1463, - "longitude": -54.7428, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4204178, - "municipio": "Cerro Negro", - "latitude": -27.7942, - "longitude": -50.8673, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3511607, - "municipio": "Cesário Lange", - "latitude": -23.226, - "longitude": -47.9545, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4105300, - "municipio": "Céu Azul", - "latitude": -25.1489, - "longitude": -53.8415, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5205455, - "municipio": "Cezarina", - "latitude": -16.9718, - "longitude": -49.7758, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2604403, - "municipio": "Chã de Alegria", - "latitude": -8.00679, - "longitude": -35.204, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2604502, - "municipio": "Chã Grande", - "latitude": -8.23827, - "longitude": -35.4571, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2701902, - "municipio": "Chã Preta", - "latitude": -9.2556, - "longitude": -36.2983, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3115904, - "municipio": "Chácara", - "latitude": -21.6733, - "longitude": -43.215, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3116001, - "municipio": "Chalé", - "latitude": -20.0453, - "longitude": -41.6897, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4305306, - "municipio": "Chapada", - "latitude": -28.0559, - "longitude": -53.0665, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1705102, - "municipio": "Chapada da Natividade", - "latitude": -11.6175, - "longitude": -47.7486, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1704600, - "municipio": "Chapada de Areia", - "latitude": -10.1419, - "longitude": -49.1403, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3116100, - "municipio": "Chapada do Norte", - "latitude": -17.0881, - "longitude": -42.5392, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5103007, - "municipio": "Chapada dos Guimarães", - "latitude": -15.4643, - "longitude": -55.7499, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3116159, - "municipio": "Chapada Gaúcha", - "latitude": -15.3014, - "longitude": -45.6116, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5205471, - "municipio": "Chapadão do Céu", - "latitude": -18.4073, - "longitude": -52.549, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4204194, - "municipio": "Chapadão do Lageado", - "latitude": -27.5905, - "longitude": -49.5539, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5002951, - "municipio": "Chapadão do Sul", - "latitude": -18.788, - "longitude": -52.6263, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2103208, - "municipio": "Chapadinha", - "latitude": -3.73875, - "longitude": -43.3538, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4204202, - "municipio": "Chapecó", - "latitude": -27.1004, - "longitude": -52.6152, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3511706, - "municipio": "Charqueada", - "latitude": -22.5096, - "longitude": -47.7755, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4305355, - "municipio": "Charqueadas", - "latitude": -29.9625, - "longitude": -51.6289, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4305371, - "municipio": "Charrua", - "latitude": -27.9493, - "longitude": -52.015, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2303907, - "municipio": "Chaval", - "latitude": -3.03571, - "longitude": -41.2435, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3557204, - "municipio": "Chavantes", - "latitude": -23.0366, - "longitude": -49.7096, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1502509, - "municipio": "Chaves", - "latitude": -0.164154, - "longitude": -49.987, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3116209, - "municipio": "Chiador", - "latitude": -21.9996, - "longitude": -43.0617, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4305405, - "municipio": "Chiapetta", - "latitude": -27.923, - "longitude": -53.9419, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4105409, - "municipio": "Chopinzinho", - "latitude": -25.8515, - "longitude": -52.5173, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2303931, - "municipio": "Choró", - "latitude": -4.83906, - "longitude": -39.1344, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2303956, - "municipio": "Chorozinho", - "latitude": -4.28873, - "longitude": -38.4986, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2907707, - "municipio": "Chorrochó", - "latitude": -8.9695, - "longitude": -39.0979, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4305439, - "municipio": "Chuí", - "latitude": -33.6866, - "longitude": -53.4594, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100924, - "municipio": "Chupinguaia", - "latitude": -12.5611, - "longitude": -60.8877, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4305447, - "municipio": "Chuvisca", - "latitude": -30.7504, - "longitude": -51.9737, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4105508, - "municipio": "Cianorte", - "latitude": -23.6599, - "longitude": -52.6054, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2907806, - "municipio": "Cícero Dantas", - "latitude": -10.5897, - "longitude": -38.3794, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4105607, - "municipio": "Cidade Gaúcha", - "latitude": -23.3772, - "longitude": -52.9436, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5205497, - "municipio": "Cidade Ocidental", - "latitude": -16.0765, - "longitude": -47.9252, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2103257, - "municipio": "Cidelândia", - "latitude": -5.17465, - "longitude": -47.7781, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4305454, - "municipio": "Cidreira", - "latitude": -30.1604, - "longitude": -50.2337, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2907905, - "municipio": "Cipó", - "latitude": -11.1032, - "longitude": -38.5179, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3116308, - "municipio": "Cipotânea", - "latitude": -20.9026, - "longitude": -43.3629, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4305504, - "municipio": "Ciríaco", - "latitude": -28.3419, - "longitude": -51.8741, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3116407, - "municipio": "Claraval", - "latitude": -20.397, - "longitude": -47.2768, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3116506, - "municipio": "Claro dos Poções", - "latitude": -17.082, - "longitude": -44.2061, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5103056, - "municipio": "Cláudia", - "latitude": -11.5075, - "longitude": -54.8835, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3116605, - "municipio": "Cláudio", - "latitude": -20.4437, - "longitude": -44.7673, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3511904, - "municipio": "Clementina", - "latitude": -21.5604, - "longitude": -50.4525, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4105706, - "municipio": "Clevelândia", - "latitude": -26.4043, - "longitude": -52.3508, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2908002, - "municipio": "Coaraci", - "latitude": -14.637, - "longitude": -39.5556, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1301209, - "municipio": "Coari", - "latitude": -4.09412, - "longitude": -63.1441, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2202703, - "municipio": "Cocal", - "latitude": -3.47279, - "longitude": -41.5546, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2202711, - "municipio": "Cocal de Telha", - "latitude": -4.5571, - "longitude": -41.9587, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4204251, - "municipio": "Cocal do Sul", - "latitude": -28.5986, - "longitude": -49.3335, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2202729, - "municipio": "Cocal dos Alves", - "latitude": -3.62047, - "longitude": -41.4402, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5103106, - "municipio": "Cocalinho", - "latitude": -14.3903, - "longitude": -51.0001, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5205513, - "municipio": "Cocalzinho de Goiás", - "latitude": -15.7914, - "longitude": -48.7747, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2908101, - "municipio": "Cocos", - "latitude": -14.1814, - "longitude": -44.5352, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1301308, - "municipio": "Codajás", - "latitude": -3.83053, - "longitude": -62.0658, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2103307, - "municipio": "Codó", - "latitude": -4.45562, - "longitude": -43.8924, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2103406, - "municipio": "Coelho Neto", - "latitude": -4.25245, - "longitude": -43.0108, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3116704, - "municipio": "Coimbra", - "latitude": -20.8535, - "longitude": -42.8008, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2702009, - "municipio": "Coité do Nóia", - "latitude": -9.63348, - "longitude": -36.5845, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2202737, - "municipio": "Coivaras", - "latitude": -5.09224, - "longitude": -42.208, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1502608, - "municipio": "Colares", - "latitude": -0.936423, - "longitude": -48.2803, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3201506, - "municipio": "Colatina", - "latitude": -19.5493, - "longitude": -40.6269, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5103205, - "municipio": "Colíder", - "latitude": -10.8135, - "longitude": -55.461, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3512001, - "municipio": "Colina", - "latitude": -20.7114, - "longitude": -48.5387, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4305587, - "municipio": "Colinas", - "latitude": -29.3948, - "longitude": -51.8556, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2103505, - "municipio": "Colinas", - "latitude": -6.03199, - "longitude": -44.2543, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5205521, - "municipio": "Colinas do Sul", - "latitude": -14.1528, - "longitude": -48.076, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1705508, - "municipio": "Colinas do Tocantins", - "latitude": -8.05764, - "longitude": -48.4757, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1716703, - "municipio": "Colméia", - "latitude": -8.72463, - "longitude": -48.7638, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5103254, - "municipio": "Colniza", - "latitude": -9.46121, - "longitude": -59.2252, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3512100, - "municipio": "Colômbia", - "latitude": -20.1768, - "longitude": -48.6865, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4105805, - "municipio": "Colombo", - "latitude": -25.2925, - "longitude": -49.2262, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2202752, - "municipio": "Colônia do Gurguéia", - "latitude": -8.1837, - "longitude": -43.794, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2202778, - "municipio": "Colônia do Piauí", - "latitude": -7.22651, - "longitude": -42.1756, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2702108, - "municipio": "Colônia Leopoldina", - "latitude": -8.91806, - "longitude": -35.7214, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4305603, - "municipio": "Colorado", - "latitude": -28.5258, - "longitude": -52.9928, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4105904, - "municipio": "Colorado", - "latitude": -22.8374, - "longitude": -51.9743, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100064, - "municipio": "Colorado do Oeste", - "latitude": -13.1174, - "longitude": -60.5454, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3116803, - "municipio": "Coluna", - "latitude": -18.2311, - "longitude": -42.8352, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1705557, - "municipio": "Combinado", - "latitude": -12.7917, - "longitude": -46.5388, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3116902, - "municipio": "Comendador Gomes", - "latitude": -19.6973, - "longitude": -49.0789, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3300951, - "municipio": "Comendador Levy Gasparian", - "latitude": -22.0404, - "longitude": -43.214, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3117009, - "municipio": "Comercinho", - "latitude": -16.2963, - "longitude": -41.7945, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5103304, - "municipio": "Comodoro", - "latitude": -13.6614, - "longitude": -59.7848, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2504405, - "municipio": "Conceição", - "latitude": -7.55106, - "longitude": -38.5014, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3117108, - "municipio": "Conceição da Aparecida", - "latitude": -21.096, - "longitude": -46.2049, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3201605, - "municipio": "Conceição da Barra", - "latitude": -18.5883, - "longitude": -39.7362, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3115201, - "municipio": "Conceição da Barra de Minas", - "latitude": -21.1316, - "longitude": -44.4729, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2908200, - "municipio": "Conceição da Feira", - "latitude": -12.5078, - "longitude": -38.9978, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3117306, - "municipio": "Conceição das Alagoas", - "latitude": -19.9172, - "longitude": -48.3839, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3117207, - "municipio": "Conceição das Pedras", - "latitude": -22.1576, - "longitude": -45.4562, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3117405, - "municipio": "Conceição de Ipanema", - "latitude": -19.9326, - "longitude": -41.6908, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3301405, - "municipio": "Conceição de Macabu", - "latitude": -22.0834, - "longitude": -41.8719, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2908309, - "municipio": "Conceição do Almeida", - "latitude": -12.7836, - "longitude": -39.1715, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1502707, - "municipio": "Conceição do Araguaia", - "latitude": -8.26136, - "longitude": -49.2689, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2202802, - "municipio": "Conceição do Canindé", - "latitude": -7.87638, - "longitude": -41.5942, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3201704, - "municipio": "Conceição do Castelo", - "latitude": -20.3639, - "longitude": -41.2417, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2908408, - "municipio": "Conceição do Coité", - "latitude": -11.56, - "longitude": -39.2808, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2908507, - "municipio": "Conceição do Jacuípe", - "latitude": -12.3268, - "longitude": -38.7684, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2103554, - "municipio": "Conceição do Lago-Açu", - "latitude": -3.85142, - "longitude": -44.8895, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3117504, - "municipio": "Conceição do Mato Dentro", - "latitude": -19.0344, - "longitude": -43.4221, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3117603, - "municipio": "Conceição do Pará", - "latitude": -19.7456, - "longitude": -44.8945, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3117702, - "municipio": "Conceição do Rio Verde", - "latitude": -21.8778, - "longitude": -45.087, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1705607, - "municipio": "Conceição do Tocantins", - "latitude": -12.2209, - "longitude": -47.2951, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3117801, - "municipio": "Conceição dos Ouros", - "latitude": -22.4078, - "longitude": -45.7996, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3512209, - "municipio": "Conchal", - "latitude": -22.3375, - "longitude": -47.1729, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3512308, - "municipio": "Conchas", - "latitude": -23.0154, - "longitude": -48.0134, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4204301, - "municipio": "Concórdia", - "latitude": -27.2335, - "longitude": -52.026, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1502756, - "municipio": "Concórdia do Pará", - "latitude": -1.99238, - "longitude": -47.9422, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2504504, - "municipio": "Condado", - "latitude": -6.89831, - "longitude": -37.606, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2604601, - "municipio": "Condado", - "latitude": -7.58787, - "longitude": -35.0999, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2504603, - "municipio": "Conde", - "latitude": -7.25746, - "longitude": -34.8999, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2908606, - "municipio": "Conde", - "latitude": -11.8179, - "longitude": -37.6131, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2908705, - "municipio": "Condeúba", - "latitude": -14.9022, - "longitude": -41.9718, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4305702, - "municipio": "Condor", - "latitude": -28.2075, - "longitude": -53.4905, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3117836, - "municipio": "Cônego Marinho", - "latitude": -15.2892, - "longitude": -44.4181, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3117876, - "municipio": "Confins", - "latitude": -19.6282, - "longitude": -43.9931, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5103353, - "municipio": "Confresa", - "latitude": -10.6437, - "longitude": -51.5699, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2504702, - "municipio": "Congo", - "latitude": -7.79078, - "longitude": -36.6581, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3117900, - "municipio": "Congonhal", - "latitude": -22.1488, - "longitude": -46.043, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3118007, - "municipio": "Congonhas", - "latitude": -20.4958, - "longitude": -43.851, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3118106, - "municipio": "Congonhas do Norte", - "latitude": -18.8021, - "longitude": -43.6767, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4106001, - "municipio": "Congonhinhas", - "latitude": -23.5493, - "longitude": -50.5569, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3118205, - "municipio": "Conquista", - "latitude": -19.9312, - "longitude": -47.5492, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5103361, - "municipio": "Conquista D'Oeste", - "latitude": -14.5381, - "longitude": -59.5444, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3118304, - "municipio": "Conselheiro Lafaiete", - "latitude": -20.6634, - "longitude": -43.7846, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4106100, - "municipio": "Conselheiro Mairinck", - "latitude": -23.623, - "longitude": -50.1707, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3118403, - "municipio": "Conselheiro Pena", - "latitude": -19.1789, - "longitude": -41.4736, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3118502, - "municipio": "Consolação", - "latitude": -22.5493, - "longitude": -45.9255, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4305801, - "municipio": "Constantina", - "latitude": -27.732, - "longitude": -52.9938, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3118601, - "municipio": "Contagem", - "latitude": -19.9321, - "longitude": -44.0539, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4106209, - "municipio": "Contenda", - "latitude": -25.6788, - "longitude": -49.535, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2908804, - "municipio": "Contendas do Sincorá", - "latitude": -13.7537, - "longitude": -41.048, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3118700, - "municipio": "Coqueiral", - "latitude": -21.1858, - "longitude": -45.4366, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4305835, - "municipio": "Coqueiro Baixo", - "latitude": -29.1802, - "longitude": -52.0942, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2702207, - "municipio": "Coqueiro Seco", - "latitude": -9.63715, - "longitude": -35.7994, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4305850, - "municipio": "Coqueiros do Sul", - "latitude": -28.1194, - "longitude": -52.7842, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3118809, - "municipio": "Coração de Jesus", - "latitude": -16.6841, - "longitude": -44.3635, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2908903, - "municipio": "Coração de Maria", - "latitude": -12.2333, - "longitude": -38.7487, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4106308, - "municipio": "Corbélia", - "latitude": -24.7971, - "longitude": -53.3006, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3301504, - "municipio": "Cordeiro", - "latitude": -22.0267, - "longitude": -42.3648, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3512407, - "municipio": "Cordeirópolis", - "latitude": -22.4778, - "longitude": -47.4519, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2909000, - "municipio": "Cordeiros", - "latitude": -15.0356, - "longitude": -41.9308, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4204350, - "municipio": "Cordilheira Alta", - "latitude": -26.9844, - "longitude": -52.6056, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3118908, - "municipio": "Cordisburgo", - "latitude": -19.1224, - "longitude": -44.3224, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3119005, - "municipio": "Cordislândia", - "latitude": -21.7891, - "longitude": -45.6999, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2304004, - "municipio": "Coreaú", - "latitude": -3.5415, - "longitude": -40.6587, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2504801, - "municipio": "Coremas", - "latitude": -7.00712, - "longitude": -37.9346, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5003108, - "municipio": "Corguinho", - "latitude": -19.8243, - "longitude": -54.8281, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2909109, - "municipio": "Coribe", - "latitude": -13.8232, - "longitude": -44.4586, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3119104, - "municipio": "Corinto", - "latitude": -18.369, - "longitude": -44.4542, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4106407, - "municipio": "Cornélio Procópio", - "latitude": -23.1829, - "longitude": -50.6498, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3119203, - "municipio": "Coroaci", - "latitude": -18.6156, - "longitude": -42.2791, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3512506, - "municipio": "Coroados", - "latitude": -21.3521, - "longitude": -50.2859, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2103604, - "municipio": "Coroatá", - "latitude": -4.13442, - "longitude": -44.1244, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3119302, - "municipio": "Coromandel", - "latitude": -18.4734, - "longitude": -47.1933, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4305871, - "municipio": "Coronel Barros", - "latitude": -28.3921, - "longitude": -54.0686, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4305900, - "municipio": "Coronel Bicaco", - "latitude": -27.7197, - "longitude": -53.7022, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4106456, - "municipio": "Coronel Domingos Soares", - "latitude": -26.2277, - "longitude": -52.0356, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2402808, - "municipio": "Coronel Ezequiel", - "latitude": -6.3748, - "longitude": -36.2223, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3119401, - "municipio": "Coronel Fabriciano", - "latitude": -19.5179, - "longitude": -42.6276, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4204400, - "municipio": "Coronel Freitas", - "latitude": -26.9057, - "longitude": -52.7011, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2402907, - "municipio": "Coronel João Pessoa", - "latitude": -6.24974, - "longitude": -38.4441, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2909208, - "municipio": "Coronel João Sá", - "latitude": -10.2847, - "longitude": -37.9198, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2202851, - "municipio": "Coronel José Dias", - "latitude": -8.81397, - "longitude": -42.5232, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3512605, - "municipio": "Coronel Macedo", - "latitude": -23.6261, - "longitude": -49.31, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4204459, - "municipio": "Coronel Martins", - "latitude": -26.511, - "longitude": -52.6694, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3119500, - "municipio": "Coronel Murta", - "latitude": -16.6148, - "longitude": -42.184, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3119609, - "municipio": "Coronel Pacheco", - "latitude": -21.5898, - "longitude": -43.256, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4305934, - "municipio": "Coronel Pilar", - "latitude": -29.2695, - "longitude": -51.6847, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5003157, - "municipio": "Coronel Sapucaia", - "latitude": -23.2724, - "longitude": -55.5278, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4106506, - "municipio": "Coronel Vivida", - "latitude": -25.9767, - "longitude": -52.5641, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3119708, - "municipio": "Coronel Xavier Chaves", - "latitude": -21.0277, - "longitude": -44.2206, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3119807, - "municipio": "Córrego Danta", - "latitude": -19.8198, - "longitude": -45.9032, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3119906, - "municipio": "Córrego do Bom Jesus", - "latitude": -22.6269, - "longitude": -46.0241, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5205703, - "municipio": "Córrego do Ouro", - "latitude": -16.2918, - "longitude": -50.5503, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3119955, - "municipio": "Córrego Fundo", - "latitude": -20.4474, - "longitude": -45.5617, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3120003, - "municipio": "Córrego Novo", - "latitude": -19.8361, - "longitude": -42.3988, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4204558, - "municipio": "Correia Pinto", - "latitude": -27.5877, - "longitude": -50.3614, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2202901, - "municipio": "Corrente", - "latitude": -10.4333, - "longitude": -45.1633, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2604700, - "municipio": "Correntes", - "latitude": -9.12117, - "longitude": -36.3244, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2909307, - "municipio": "Correntina", - "latitude": -13.3477, - "longitude": -44.6333, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2604809, - "municipio": "Cortês", - "latitude": -8.47443, - "longitude": -35.5468, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5003207, - "municipio": "Corumbá", - "latitude": -19.0077, - "longitude": -57.651, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5205802, - "municipio": "Corumbá de Goiás", - "latitude": -15.9245, - "longitude": -48.8117, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5205901, - "municipio": "Corumbaíba", - "latitude": -18.1415, - "longitude": -48.5626, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3512704, - "municipio": "Corumbataí", - "latitude": -22.2213, - "longitude": -47.6215, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4106555, - "municipio": "Corumbataí do Sul", - "latitude": -24.101, - "longitude": -52.1177, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100072, - "municipio": "Corumbiara", - "latitude": -12.9551, - "longitude": -60.8947, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4204509, - "municipio": "Corupá", - "latitude": -26.4246, - "longitude": -49.246, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2702306, - "municipio": "Coruripe", - "latitude": -10.1276, - "longitude": -36.1717, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3512803, - "municipio": "Cosmópolis", - "latitude": -22.6419, - "longitude": -47.1926, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3512902, - "municipio": "Cosmorama", - "latitude": -20.4755, - "longitude": -49.7827, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100080, - "municipio": "Costa Marques", - "latitude": -12.4367, - "longitude": -64.228, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5003256, - "municipio": "Costa Rica", - "latitude": -18.5432, - "longitude": -53.1287, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2909406, - "municipio": "Cotegipe", - "latitude": -12.0228, - "longitude": -44.2566, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3513009, - "municipio": "Cotia", - "latitude": -23.6022, - "longitude": -46.919, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4305959, - "municipio": "Cotiporã", - "latitude": -28.9891, - "longitude": -51.6971, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5103379, - "municipio": "Cotriguaçu", - "latitude": -9.85656, - "longitude": -58.4192, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3120102, - "municipio": "Couto de Magalhães de Minas", - "latitude": -18.0727, - "longitude": -43.4648, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1706001, - "municipio": "Couto Magalhães", - "latitude": -8.28411, - "longitude": -49.2473, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4305975, - "municipio": "Coxilha", - "latitude": -28.128, - "longitude": -52.3023, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5003306, - "municipio": "Coxim", - "latitude": -18.5013, - "longitude": -54.751, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2504850, - "municipio": "Coxixola", - "latitude": -7.62365, - "longitude": -36.6064, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2702355, - "municipio": "Craíbas", - "latitude": -9.6178, - "longitude": -36.7697, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2304103, - "municipio": "Crateús", - "latitude": -5.16768, - "longitude": -40.6536, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2304202, - "municipio": "Crato", - "latitude": -7.2153, - "longitude": -39.4103, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3513108, - "municipio": "Cravinhos", - "latitude": -21.338, - "longitude": -47.7324, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2909505, - "municipio": "Cravolândia", - "latitude": -13.3531, - "longitude": -39.8031, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4204608, - "municipio": "Criciúma", - "latitude": -28.6723, - "longitude": -49.3729, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3120151, - "municipio": "Crisólita", - "latitude": -17.2381, - "longitude": -40.9184, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2909604, - "municipio": "Crisópolis", - "latitude": -11.5059, - "longitude": -38.1515, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4306007, - "municipio": "Crissiumal", - "latitude": -27.4999, - "longitude": -54.0994, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3120201, - "municipio": "Cristais", - "latitude": -20.8733, - "longitude": -45.5167, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3513207, - "municipio": "Cristais Paulista", - "latitude": -20.4036, - "longitude": -47.4209, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4306056, - "municipio": "Cristal", - "latitude": -31.0046, - "longitude": -52.0436, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4306072, - "municipio": "Cristal do Sul", - "latitude": -27.452, - "longitude": -53.2422, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1706100, - "municipio": "Cristalândia", - "latitude": -10.5985, - "longitude": -49.1942, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2203008, - "municipio": "Cristalândia do Piauí", - "latitude": -10.6443, - "longitude": -45.1893, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3120300, - "municipio": "Cristália", - "latitude": -16.716, - "longitude": -42.8571, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5206206, - "municipio": "Cristalina", - "latitude": -16.7676, - "longitude": -47.6131, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3120409, - "municipio": "Cristiano Otoni", - "latitude": -20.8324, - "longitude": -43.8166, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5206305, - "municipio": "Cristianópolis", - "latitude": -17.1987, - "longitude": -48.7034, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3120508, - "municipio": "Cristina", - "latitude": -22.208, - "longitude": -45.2673, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2801702, - "municipio": "Cristinápolis", - "latitude": -11.4668, - "longitude": -37.7585, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2203107, - "municipio": "Cristino Castro", - "latitude": -8.82273, - "longitude": -44.223, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2909703, - "municipio": "Cristópolis", - "latitude": -12.2249, - "longitude": -44.4214, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5206404, - "municipio": "Crixás", - "latitude": -14.5412, - "longitude": -49.974, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1706258, - "municipio": "Crixás do Tocantins", - "latitude": -11.0994, - "longitude": -48.9152, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2304236, - "municipio": "Croatá", - "latitude": -4.40481, - "longitude": -40.9022, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5206503, - "municipio": "Cromínia", - "latitude": -17.2883, - "longitude": -49.3798, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3120607, - "municipio": "Crucilândia", - "latitude": -20.3923, - "longitude": -44.3334, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2304251, - "municipio": "Cruz", - "latitude": -2.91813, - "longitude": -40.176, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4306106, - "municipio": "Cruz Alta", - "latitude": -28.645, - "longitude": -53.6048, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2909802, - "municipio": "Cruz das Almas", - "latitude": -12.6675, - "longitude": -39.1008, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2504900, - "municipio": "Cruz do Espírito Santo", - "latitude": -7.13902, - "longitude": -35.0857, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4106803, - "municipio": "Cruz Machado", - "latitude": -26.0166, - "longitude": -51.343, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3513306, - "municipio": "Cruzália", - "latitude": -22.7373, - "longitude": -50.7909, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4306130, - "municipio": "Cruzaltense", - "latitude": -27.6672, - "longitude": -52.6522, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3513405, - "municipio": "Cruzeiro", - "latitude": -22.5728, - "longitude": -44.969, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3120706, - "municipio": "Cruzeiro da Fortaleza", - "latitude": -18.944, - "longitude": -46.6669, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4106571, - "municipio": "Cruzeiro do Iguaçu", - "latitude": -25.6192, - "longitude": -53.1285, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4106605, - "municipio": "Cruzeiro do Oeste", - "latitude": -23.7799, - "longitude": -53.0774, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4106704, - "municipio": "Cruzeiro do Sul", - "latitude": -22.9624, - "longitude": -52.1622, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4306205, - "municipio": "Cruzeiro do Sul", - "latitude": -29.5148, - "longitude": -51.9928, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1200203, - "municipio": "Cruzeiro do Sul", - "latitude": -7.62762, - "longitude": -72.6756, - "codigo_uf": 12, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 2403004, - "municipio": "Cruzeta", - "latitude": -6.40894, - "longitude": -36.7782, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3120805, - "municipio": "Cruzília", - "latitude": -21.84, - "longitude": -44.8067, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4106852, - "municipio": "Cruzmaltina", - "latitude": -24.0132, - "longitude": -51.4563, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3513504, - "municipio": "Cubatão", - "latitude": -23.8911, - "longitude": -46.424, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2505006, - "municipio": "Cubati", - "latitude": -6.86686, - "longitude": -36.3619, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5103403, - "municipio": "Cuiabá", - "latitude": -15.601, - "longitude": -56.0974, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2505105, - "municipio": "Cuité", - "latitude": -6.47647, - "longitude": -36.1515, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2505238, - "municipio": "Cuité de Mamanguape", - "latitude": -6.91292, - "longitude": -35.2502, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2505204, - "municipio": "Cuitegi", - "latitude": -6.89058, - "longitude": -35.5215, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100940, - "municipio": "Cujubim", - "latitude": -9.36065, - "longitude": -62.5846, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5206602, - "municipio": "Cumari", - "latitude": -18.2644, - "longitude": -48.1511, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2604908, - "municipio": "Cumaru", - "latitude": -8.00827, - "longitude": -35.6957, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1502764, - "municipio": "Cumaru do Norte", - "latitude": -7.81097, - "longitude": -50.7698, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2801900, - "municipio": "Cumbe", - "latitude": -10.352, - "longitude": -37.1846, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3513603, - "municipio": "Cunha", - "latitude": -23.0731, - "longitude": -44.9576, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4204707, - "municipio": "Cunha Porã", - "latitude": -26.895, - "longitude": -53.1662, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4204756, - "municipio": "Cunhataí", - "latitude": -26.9709, - "longitude": -53.0895, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3120839, - "municipio": "Cuparaque", - "latitude": -18.9648, - "longitude": -41.0986, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2605004, - "municipio": "Cupira", - "latitude": -8.62432, - "longitude": -35.9518, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2909901, - "municipio": "Curaçá", - "latitude": -8.98458, - "longitude": -39.8997, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2203206, - "municipio": "Curimatá", - "latitude": -10.0326, - "longitude": -44.3002, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1502772, - "municipio": "Curionópolis", - "latitude": -6.09965, - "longitude": -49.6068, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4106902, - "municipio": "Curitiba", - "latitude": -25.4195, - "longitude": -49.2646, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4204806, - "municipio": "Curitibanos", - "latitude": -27.2824, - "longitude": -50.5816, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4107009, - "municipio": "Curiúva", - "latitude": -24.0362, - "longitude": -50.4576, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2203230, - "municipio": "Currais", - "latitude": -9.01175, - "longitude": -44.4062, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2403103, - "municipio": "Currais Novos", - "latitude": -6.25484, - "longitude": -36.5146, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2505279, - "municipio": "Curral de Cima", - "latitude": -6.72325, - "longitude": -35.2639, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3120870, - "municipio": "Curral de Dentro", - "latitude": -15.9327, - "longitude": -41.8557, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2203271, - "municipio": "Curral Novo do Piauí", - "latitude": -7.8313, - "longitude": -40.8957, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2505303, - "municipio": "Curral Velho", - "latitude": -7.53075, - "longitude": -38.1962, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1502806, - "municipio": "Curralinho", - "latitude": -1.81179, - "longitude": -49.7952, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2203255, - "municipio": "Curralinhos", - "latitude": -5.60825, - "longitude": -42.8376, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1502855, - "municipio": "Curuá", - "latitude": -1.88775, - "longitude": -55.1168, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1502905, - "municipio": "Curuçá", - "latitude": -0.733214, - "longitude": -47.8515, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2103703, - "municipio": "Cururupu", - "latitude": -1.81475, - "longitude": -44.8644, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5103437, - "municipio": "Curvelândia", - "latitude": -15.6084, - "longitude": -57.9133, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3120904, - "municipio": "Curvelo", - "latitude": -18.7527, - "longitude": -44.4303, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2605103, - "municipio": "Custódia", - "latitude": -8.08546, - "longitude": -37.6443, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1600212, - "municipio": "Cutias", - "latitude": 0.970761, - "longitude": -50.8005, - "codigo_uf": 16, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5206701, - "municipio": "Damianópolis", - "latitude": -14.5604, - "longitude": -46.178, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2505352, - "municipio": "Damião", - "latitude": -6.63161, - "longitude": -35.9101, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5206800, - "municipio": "Damolândia", - "latitude": -16.2544, - "longitude": -49.3631, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1706506, - "municipio": "Darcinópolis", - "latitude": -6.71591, - "longitude": -47.7597, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2910008, - "municipio": "Dário Meira", - "latitude": -14.4229, - "longitude": -39.9031, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3121001, - "municipio": "Datas", - "latitude": -18.4478, - "longitude": -43.6591, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4306304, - "municipio": "David Canabarro", - "latitude": -28.3849, - "longitude": -51.8482, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2103752, - "municipio": "Davinópolis", - "latitude": -5.54637, - "longitude": -47.4217, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5206909, - "municipio": "Davinópolis", - "latitude": -18.1501, - "longitude": -47.5568, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3121100, - "municipio": "Delfim Moreira", - "latitude": -22.5036, - "longitude": -45.2792, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3121209, - "municipio": "Delfinópolis", - "latitude": -20.3468, - "longitude": -46.8456, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2702405, - "municipio": "Delmiro Gouveia", - "latitude": -9.38534, - "longitude": -37.9987, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3121258, - "municipio": "Delta", - "latitude": -19.9721, - "longitude": -47.7841, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2203305, - "municipio": "Demerval Lobão", - "latitude": -5.35875, - "longitude": -42.6776, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5103452, - "municipio": "Denise", - "latitude": -14.7324, - "longitude": -57.0583, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5003454, - "municipio": "Deodápolis", - "latitude": -22.2763, - "longitude": -54.1682, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2304269, - "municipio": "Deputado Irapuan Pinheiro", - "latitude": -5.91485, - "longitude": -39.257, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4306320, - "municipio": "Derrubadas", - "latitude": -27.2642, - "longitude": -53.8645, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3513702, - "municipio": "Descalvado", - "latitude": -21.9002, - "longitude": -47.6181, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4204905, - "municipio": "Descanso", - "latitude": -26.827, - "longitude": -53.5034, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3121308, - "municipio": "Descoberto", - "latitude": -21.46, - "longitude": -42.9618, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2505402, - "municipio": "Desterro", - "latitude": -7.287, - "longitude": -37.0925, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3121407, - "municipio": "Desterro de Entre Rios", - "latitude": -20.665, - "longitude": -44.3334, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3121506, - "municipio": "Desterro do Melo", - "latitude": -21.143, - "longitude": -43.5178, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4306353, - "municipio": "Dezesseis de Novembro", - "latitude": -28.219, - "longitude": -55.0617, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3513801, - "municipio": "Diadema", - "latitude": -23.6813, - "longitude": -46.6205, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2505600, - "municipio": "Diamante", - "latitude": -7.41738, - "longitude": -38.2615, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4107157, - "municipio": "Diamante D'Oeste", - "latitude": -24.9419, - "longitude": -54.1052, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4107108, - "municipio": "Diamante do Norte", - "latitude": -22.655, - "longitude": -52.8617, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4107124, - "municipio": "Diamante do Sul", - "latitude": -25.035, - "longitude": -52.6768, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3121605, - "municipio": "Diamantina", - "latitude": -18.2413, - "longitude": -43.6031, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5103502, - "municipio": "Diamantino", - "latitude": -14.4037, - "longitude": -56.4366, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1707009, - "municipio": "Dianópolis", - "latitude": -11.624, - "longitude": -46.8198, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2910057, - "municipio": "Dias d'Ávila", - "latitude": -12.6187, - "longitude": -38.2926, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4306379, - "municipio": "Dilermando de Aguiar", - "latitude": -29.7054, - "longitude": -54.2122, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3121704, - "municipio": "Diogo de Vasconcelos", - "latitude": -20.4879, - "longitude": -43.1953, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3121803, - "municipio": "Dionísio", - "latitude": -19.8433, - "longitude": -42.7701, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4205001, - "municipio": "Dionísio Cerqueira", - "latitude": -26.2648, - "longitude": -53.6351, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5207105, - "municipio": "Diorama", - "latitude": -16.2329, - "longitude": -51.2543, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3513850, - "municipio": "Dirce Reis", - "latitude": -20.4642, - "longitude": -50.6073, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2203354, - "municipio": "Dirceu Arcoverde", - "latitude": -9.33939, - "longitude": -42.4348, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2802007, - "municipio": "Divina Pastora", - "latitude": -10.6782, - "longitude": -37.1506, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3121902, - "municipio": "Divinésia", - "latitude": -20.9917, - "longitude": -43.0003, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3122009, - "municipio": "Divino", - "latitude": -20.6134, - "longitude": -42.1438, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3122108, - "municipio": "Divino das Laranjeiras", - "latitude": -18.7755, - "longitude": -41.4781, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3201803, - "municipio": "Divino de São Lourenço", - "latitude": -20.6229, - "longitude": -41.6937, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3513900, - "municipio": "Divinolândia", - "latitude": -21.6637, - "longitude": -46.7361, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3122207, - "municipio": "Divinolândia de Minas", - "latitude": -18.8004, - "longitude": -42.6103, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3122306, - "municipio": "Divinópolis", - "latitude": -20.1446, - "longitude": -44.8912, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5208301, - "municipio": "Divinópolis de Goiás", - "latitude": -13.2853, - "longitude": -46.3999, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1707108, - "municipio": "Divinópolis do Tocantins", - "latitude": -9.80018, - "longitude": -49.2169, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3122355, - "municipio": "Divisa Alegre", - "latitude": -15.7221, - "longitude": -41.3463, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3122405, - "municipio": "Divisa Nova", - "latitude": -21.5092, - "longitude": -46.1904, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3122454, - "municipio": "Divisópolis", - "latitude": -15.7254, - "longitude": -40.9997, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3514007, - "municipio": "Dobrada", - "latitude": -21.5155, - "longitude": -48.3935, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3514106, - "municipio": "Dois Córregos", - "latitude": -22.3673, - "longitude": -48.3819, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4306403, - "municipio": "Dois Irmãos", - "latitude": -29.5836, - "longitude": -51.0898, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4306429, - "municipio": "Dois Irmãos das Missões", - "latitude": -27.6621, - "longitude": -53.5304, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5003488, - "municipio": "Dois Irmãos do Buriti", - "latitude": -20.6848, - "longitude": -55.2915, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1707207, - "municipio": "Dois Irmãos do Tocantins", - "latitude": -9.25534, - "longitude": -49.0638, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4306452, - "municipio": "Dois Lajeados", - "latitude": -28.983, - "longitude": -51.8396, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2702504, - "municipio": "Dois Riachos", - "latitude": -9.38465, - "longitude": -37.0965, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4107207, - "municipio": "Dois Vizinhos", - "latitude": -25.7407, - "longitude": -53.057, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3514205, - "municipio": "Dolcinópolis", - "latitude": -20.124, - "longitude": -50.5149, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5103601, - "municipio": "Dom Aquino", - "latitude": -15.8099, - "longitude": -54.9223, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2910107, - "municipio": "Dom Basílio", - "latitude": -13.7565, - "longitude": -41.7677, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3122470, - "municipio": "Dom Bosco", - "latitude": -16.652, - "longitude": -46.2597, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3122504, - "municipio": "Dom Cavati", - "latitude": -19.3735, - "longitude": -42.1121, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1502939, - "municipio": "Dom Eliseu", - "latitude": -4.19944, - "longitude": -47.8245, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2203404, - "municipio": "Dom Expedito Lopes", - "latitude": -6.95332, - "longitude": -41.6396, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4306502, - "municipio": "Dom Feliciano", - "latitude": -30.7004, - "longitude": -52.1026, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2203453, - "municipio": "Dom Inocêncio", - "latitude": -9.00516, - "longitude": -41.9697, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3122603, - "municipio": "Dom Joaquim", - "latitude": -18.961, - "longitude": -43.2544, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2910206, - "municipio": "Dom Macedo Costa", - "latitude": -12.9016, - "longitude": -39.1923, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4306601, - "municipio": "Dom Pedrito", - "latitude": -30.9756, - "longitude": -54.6694, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2103802, - "municipio": "Dom Pedro", - "latitude": -5.03518, - "longitude": -44.4409, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4306551, - "municipio": "Dom Pedro de Alcântara", - "latitude": -29.3639, - "longitude": -49.853, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3122702, - "municipio": "Dom Silvério", - "latitude": -20.1627, - "longitude": -42.9627, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3122801, - "municipio": "Dom Viçoso", - "latitude": -22.2511, - "longitude": -45.1643, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3201902, - "municipio": "Domingos Martins", - "latitude": -20.3603, - "longitude": -40.6594, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2203420, - "municipio": "Domingos Mourão", - "latitude": -4.2495, - "longitude": -41.2683, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4205100, - "municipio": "Dona Emma", - "latitude": -26.981, - "longitude": -49.7261, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3122900, - "municipio": "Dona Eusébia", - "latitude": -21.319, - "longitude": -42.807, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4306700, - "municipio": "Dona Francisca", - "latitude": -29.6195, - "longitude": -53.3617, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2505709, - "municipio": "Dona Inês", - "latitude": -6.61566, - "longitude": -35.6205, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3123007, - "municipio": "Dores de Campos", - "latitude": -21.1139, - "longitude": -44.0207, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3123106, - "municipio": "Dores de Guanhães", - "latitude": -19.0516, - "longitude": -42.9254, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3123205, - "municipio": "Dores do Indaiá", - "latitude": -19.4628, - "longitude": -45.5927, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3202009, - "municipio": "Dores do Rio Preto", - "latitude": -20.6931, - "longitude": -41.8405, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3123304, - "municipio": "Dores do Turvo", - "latitude": -20.9785, - "longitude": -43.1834, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3123403, - "municipio": "Doresópolis", - "latitude": -20.2868, - "longitude": -45.9007, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2605152, - "municipio": "Dormentes", - "latitude": -8.44116, - "longitude": -40.7662, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5003504, - "municipio": "Douradina", - "latitude": -22.0405, - "longitude": -54.6158, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4107256, - "municipio": "Douradina", - "latitude": -23.3807, - "longitude": -53.2918, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3514304, - "municipio": "Dourado", - "latitude": -22.1044, - "longitude": -48.3178, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3123502, - "municipio": "Douradoquara", - "latitude": -18.4338, - "longitude": -47.5993, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5003702, - "municipio": "Dourados", - "latitude": -22.2231, - "longitude": -54.812, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4107306, - "municipio": "Doutor Camargo", - "latitude": -23.5582, - "longitude": -52.2178, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4306734, - "municipio": "Doutor Maurício Cardoso", - "latitude": -27.5103, - "longitude": -54.3577, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4205159, - "municipio": "Doutor Pedrinho", - "latitude": -26.7174, - "longitude": -49.4795, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4306759, - "municipio": "Doutor Ricardo", - "latitude": -29.084, - "longitude": -51.9972, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2403202, - "municipio": "Doutor Severiano", - "latitude": -6.08082, - "longitude": -38.3794, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4128633, - "municipio": "Doutor Ulysses", - "latitude": -24.5665, - "longitude": -49.4219, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5207253, - "municipio": "Doverlândia", - "latitude": -16.7188, - "longitude": -52.3189, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3514403, - "municipio": "Dracena", - "latitude": -21.4843, - "longitude": -51.535, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3514502, - "municipio": "Duartina", - "latitude": -22.4146, - "longitude": -49.4084, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3301603, - "municipio": "Duas Barras", - "latitude": -22.0536, - "longitude": -42.5232, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2505808, - "municipio": "Duas Estradas", - "latitude": -6.68499, - "longitude": -35.418, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1707306, - "municipio": "Dueré", - "latitude": -11.3416, - "longitude": -49.2716, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3514601, - "municipio": "Dumont", - "latitude": -21.2324, - "longitude": -47.9756, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2103901, - "municipio": "Duque Bacelar", - "latitude": -4.15002, - "longitude": -42.9477, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3301702, - "municipio": "Duque de Caxias", - "latitude": -22.7858, - "longitude": -43.3049, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3123528, - "municipio": "Durandé", - "latitude": -20.2058, - "longitude": -41.7977, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3514700, - "municipio": "Echaporã", - "latitude": -22.4326, - "longitude": -50.2038, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3202108, - "municipio": "Ecoporanga", - "latitude": -18.3702, - "longitude": -40.836, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5207352, - "municipio": "Edealina", - "latitude": -17.4239, - "longitude": -49.6644, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5207402, - "municipio": "Edéia", - "latitude": -17.3406, - "longitude": -49.9295, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1301407, - "municipio": "Eirunepé", - "latitude": -6.65677, - "longitude": -69.8662, - "codigo_uf": 13, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 5003751, - "municipio": "Eldorado", - "latitude": -23.7868, - "longitude": -54.2838, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3514809, - "municipio": "Eldorado", - "latitude": -24.5281, - "longitude": -48.1141, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1502954, - "municipio": "Eldorado do Carajás", - "latitude": -6.10389, - "longitude": -49.3553, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4306767, - "municipio": "Eldorado do Sul", - "latitude": -30.0847, - "longitude": -51.6187, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2203503, - "municipio": "Elesbão Veloso", - "latitude": -6.19947, - "longitude": -42.1355, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3514908, - "municipio": "Elias Fausto", - "latitude": -23.0428, - "longitude": -47.3682, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2203602, - "municipio": "Eliseu Martins", - "latitude": -8.09629, - "longitude": -43.6705, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3514924, - "municipio": "Elisiário", - "latitude": -21.1678, - "longitude": -49.1146, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2910305, - "municipio": "Elísio Medrado", - "latitude": -12.9417, - "longitude": -39.5191, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3123601, - "municipio": "Elói Mendes", - "latitude": -21.6088, - "longitude": -45.5691, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2505907, - "municipio": "Emas", - "latitude": -7.09964, - "longitude": -37.7163, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3514957, - "municipio": "Embaúba", - "latitude": -20.9796, - "longitude": -48.8325, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3515004, - "municipio": "Embu das Artes", - "latitude": -23.6437, - "longitude": -46.8579, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3515103, - "municipio": "Embu-Guaçu", - "latitude": -23.8297, - "longitude": -46.8136, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3515129, - "municipio": "Emilianópolis", - "latitude": -21.8314, - "longitude": -51.4832, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4306809, - "municipio": "Encantado", - "latitude": -29.2351, - "longitude": -51.8703, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2403301, - "municipio": "Encanto", - "latitude": -6.10691, - "longitude": -38.3033, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2910404, - "municipio": "Encruzilhada", - "latitude": -15.5302, - "longitude": -40.9124, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4306908, - "municipio": "Encruzilhada do Sul", - "latitude": -30.543, - "longitude": -52.5204, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4107405, - "municipio": "Enéas Marques", - "latitude": -25.9445, - "longitude": -53.1659, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4107504, - "municipio": "Engenheiro Beltrão", - "latitude": -23.797, - "longitude": -52.2659, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3123700, - "municipio": "Engenheiro Caldas", - "latitude": -19.2065, - "longitude": -42.0503, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3515152, - "municipio": "Engenheiro Coelho", - "latitude": -22.4836, - "longitude": -47.211, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3123809, - "municipio": "Engenheiro Navarro", - "latitude": -17.2831, - "longitude": -43.947, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3301801, - "municipio": "Engenheiro Paulo de Frontin", - "latitude": -22.5498, - "longitude": -43.6827, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4306924, - "municipio": "Engenho Velho", - "latitude": -27.706, - "longitude": -52.9145, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3123858, - "municipio": "Entre Folhas", - "latitude": -19.6218, - "longitude": -42.2306, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2910503, - "municipio": "Entre Rios", - "latitude": -11.9392, - "longitude": -38.0871, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4205175, - "municipio": "Entre Rios", - "latitude": -26.7225, - "longitude": -52.5585, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3123908, - "municipio": "Entre Rios de Minas", - "latitude": -20.6706, - "longitude": -44.0654, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4107538, - "municipio": "Entre Rios do Oeste", - "latitude": -24.7042, - "longitude": -54.2385, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4306957, - "municipio": "Entre Rios do Sul", - "latitude": -27.5298, - "longitude": -52.7347, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4306932, - "municipio": "Entre-Ijuís", - "latitude": -28.3686, - "longitude": -54.2686, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1301506, - "municipio": "Envira", - "latitude": -7.43789, - "longitude": -70.0281, - "codigo_uf": 13, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 1200252, - "municipio": "Epitaciolândia", - "latitude": -11.0188, - "longitude": -68.7341, - "codigo_uf": 12, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 2403400, - "municipio": "Equador", - "latitude": -6.93835, - "longitude": -36.717, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4306973, - "municipio": "Erebango", - "latitude": -27.8544, - "longitude": -52.3005, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4307005, - "municipio": "Erechim", - "latitude": -27.6364, - "longitude": -52.2697, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2304277, - "municipio": "Ererê", - "latitude": -6.02751, - "longitude": -38.3461, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2900504, - "municipio": "Érico Cardoso", - "latitude": -13.4215, - "longitude": -42.1352, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4205191, - "municipio": "Ermo", - "latitude": -28.9869, - "longitude": -49.643, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4307054, - "municipio": "Ernestina", - "latitude": -28.4977, - "longitude": -52.5836, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4307203, - "municipio": "Erval Grande", - "latitude": -27.3926, - "longitude": -52.574, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4307302, - "municipio": "Erval Seco", - "latitude": -27.5443, - "longitude": -53.5005, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4205209, - "municipio": "Erval Velho", - "latitude": -27.2743, - "longitude": -51.443, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3124005, - "municipio": "Ervália", - "latitude": -20.8403, - "longitude": -42.6544, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2605202, - "municipio": "Escada", - "latitude": -8.35672, - "longitude": -35.2241, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4307401, - "municipio": "Esmeralda", - "latitude": -28.0518, - "longitude": -51.1933, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3124104, - "municipio": "Esmeraldas", - "latitude": -19.764, - "longitude": -44.3065, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3124203, - "municipio": "Espera Feliz", - "latitude": -20.6508, - "longitude": -41.9119, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2506004, - "municipio": "Esperança", - "latitude": -7.02278, - "longitude": -35.8597, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4307450, - "municipio": "Esperança do Sul", - "latitude": -27.3603, - "longitude": -53.9891, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4107520, - "municipio": "Esperança Nova", - "latitude": -23.7238, - "longitude": -53.811, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1707405, - "municipio": "Esperantina", - "latitude": -5.36593, - "longitude": -48.5378, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2203701, - "municipio": "Esperantina", - "latitude": -3.88863, - "longitude": -42.2324, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2104008, - "municipio": "Esperantinópolis", - "latitude": -4.87938, - "longitude": -44.6926, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4107546, - "municipio": "Espigão Alto do Iguaçu", - "latitude": -25.4216, - "longitude": -52.8348, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100098, - "municipio": "Espigão D'Oeste", - "latitude": -11.5266, - "longitude": -61.0252, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3124302, - "municipio": "Espinosa", - "latitude": -14.9249, - "longitude": -42.809, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2403509, - "municipio": "Espírito Santo", - "latitude": -6.33563, - "longitude": -35.3052, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3124401, - "municipio": "Espírito Santo do Dourado", - "latitude": -22.0454, - "longitude": -45.9548, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3515186, - "municipio": "Espírito Santo do Pinhal", - "latitude": -22.1909, - "longitude": -46.7477, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3515194, - "municipio": "Espírito Santo do Turvo", - "latitude": -22.6925, - "longitude": -49.4341, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2910602, - "municipio": "Esplanada", - "latitude": -11.7942, - "longitude": -37.9432, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4307500, - "municipio": "Espumoso", - "latitude": -28.7286, - "longitude": -52.8461, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4307559, - "municipio": "Estação", - "latitude": -27.9135, - "longitude": -52.2635, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2802106, - "municipio": "Estância", - "latitude": -11.2659, - "longitude": -37.4484, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4307609, - "municipio": "Estância Velha", - "latitude": -29.6535, - "longitude": -51.1843, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4307708, - "municipio": "Esteio", - "latitude": -29.852, - "longitude": -51.1841, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3124500, - "municipio": "Estiva", - "latitude": -22.4577, - "longitude": -46.0191, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3557303, - "municipio": "Estiva Gerbi", - "latitude": -22.2713, - "longitude": -46.9481, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2104057, - "municipio": "Estreito", - "latitude": -6.56077, - "longitude": -47.4431, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4307807, - "municipio": "Estrela", - "latitude": -29.5002, - "longitude": -51.9495, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3515202, - "municipio": "Estrela d'Oeste", - "latitude": -20.2875, - "longitude": -50.4049, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3124609, - "municipio": "Estrela Dalva", - "latitude": -21.7412, - "longitude": -42.4574, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2702553, - "municipio": "Estrela de Alagoas", - "latitude": -9.39089, - "longitude": -36.7644, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3124708, - "municipio": "Estrela do Indaiá", - "latitude": -19.5169, - "longitude": -45.7859, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5207501, - "municipio": "Estrela do Norte", - "latitude": -13.8665, - "longitude": -49.0716, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3515301, - "municipio": "Estrela do Norte", - "latitude": -22.4859, - "longitude": -51.6632, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3124807, - "municipio": "Estrela do Sul", - "latitude": -18.7399, - "longitude": -47.6956, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4307815, - "municipio": "Estrela Velha", - "latitude": -29.1713, - "longitude": -53.1639, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2910701, - "municipio": "Euclides da Cunha", - "latitude": -10.5078, - "longitude": -39.0153, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3515350, - "municipio": "Euclides da Cunha Paulista", - "latitude": -22.5545, - "longitude": -52.5928, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4307831, - "municipio": "Eugênio de Castro", - "latitude": -28.5315, - "longitude": -54.1506, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3124906, - "municipio": "Eugenópolis", - "latitude": -21.1002, - "longitude": -42.1878, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2910727, - "municipio": "Eunápolis", - "latitude": -16.3715, - "longitude": -39.5821, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2304285, - "municipio": "Eusébio", - "latitude": -3.8925, - "longitude": -38.4559, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3125002, - "municipio": "Ewbank da Câmara", - "latitude": -21.5498, - "longitude": -43.5068, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3125101, - "municipio": "Extrema", - "latitude": -22.854, - "longitude": -46.3178, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2403608, - "municipio": "Extremoz", - "latitude": -5.70143, - "longitude": -35.3048, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2605301, - "municipio": "Exu", - "latitude": -7.50364, - "longitude": -39.7238, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2506103, - "municipio": "Fagundes", - "latitude": -7.34454, - "longitude": -35.7931, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4307864, - "municipio": "Fagundes Varela", - "latitude": -28.8794, - "longitude": -51.7014, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5207535, - "municipio": "Faina", - "latitude": -15.4473, - "longitude": -50.3622, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3125200, - "municipio": "Fama", - "latitude": -21.4089, - "longitude": -45.8286, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3125309, - "municipio": "Faria Lemos", - "latitude": -20.8097, - "longitude": -42.0213, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2304301, - "municipio": "Farias Brito", - "latitude": -6.92146, - "longitude": -39.5651, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1503002, - "municipio": "Faro", - "latitude": -2.16805, - "longitude": -56.7405, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4107553, - "municipio": "Farol", - "latitude": -24.0958, - "longitude": -52.6217, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4307906, - "municipio": "Farroupilha", - "latitude": -29.2227, - "longitude": -51.3419, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3515400, - "municipio": "Fartura", - "latitude": -23.3916, - "longitude": -49.5124, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2203750, - "municipio": "Fartura do Piauí", - "latitude": -9.48342, - "longitude": -42.7912, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1707553, - "municipio": "Fátima", - "latitude": -10.7603, - "longitude": -48.9076, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2910750, - "municipio": "Fátima", - "latitude": -10.616, - "longitude": -38.2239, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5003801, - "municipio": "Fátima do Sul", - "latitude": -22.3789, - "longitude": -54.5131, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4107603, - "municipio": "Faxinal", - "latitude": -24.0077, - "longitude": -51.3227, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4308003, - "municipio": "Faxinal do Soturno", - "latitude": -29.5788, - "longitude": -53.4484, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4205308, - "municipio": "Faxinal dos Guedes", - "latitude": -26.8451, - "longitude": -52.2596, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4308052, - "municipio": "Faxinalzinho", - "latitude": -27.4238, - "longitude": -52.6789, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5207600, - "municipio": "Fazenda Nova", - "latitude": -16.1834, - "longitude": -50.7781, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4107652, - "municipio": "Fazenda Rio Grande", - "latitude": -25.6624, - "longitude": -49.3073, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4308078, - "municipio": "Fazenda Vilanova", - "latitude": -29.5885, - "longitude": -51.8217, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1200302, - "municipio": "Feijó", - "latitude": -8.17054, - "longitude": -70.351, - "codigo_uf": 12, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 2910776, - "municipio": "Feira da Mata", - "latitude": -14.2044, - "longitude": -44.2744, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2910800, - "municipio": "Feira de Santana", - "latitude": -12.2664, - "longitude": -38.9663, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2702603, - "municipio": "Feira Grande", - "latitude": -9.89859, - "longitude": -36.6815, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2605400, - "municipio": "Feira Nova", - "latitude": -7.94704, - "longitude": -35.3801, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2802205, - "municipio": "Feira Nova", - "latitude": -10.2616, - "longitude": -37.3147, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2104073, - "municipio": "Feira Nova do Maranhão", - "latitude": -6.96508, - "longitude": -46.6786, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3125408, - "municipio": "Felício dos Santos", - "latitude": -18.0755, - "longitude": -43.2422, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2403707, - "municipio": "Felipe Guerra", - "latitude": -5.59274, - "longitude": -37.6875, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3125606, - "municipio": "Felisburgo", - "latitude": -16.6348, - "longitude": -40.7605, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3125705, - "municipio": "Felixlândia", - "latitude": -18.7507, - "longitude": -44.9004, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4308102, - "municipio": "Feliz", - "latitude": -29.4527, - "longitude": -51.3032, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2702702, - "municipio": "Feliz Deserto", - "latitude": -10.2935, - "longitude": -36.3028, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5103700, - "municipio": "Feliz Natal", - "latitude": -12.385, - "longitude": -54.9227, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4107702, - "municipio": "Fênix", - "latitude": -23.9135, - "longitude": -51.9805, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4107736, - "municipio": "Fernandes Pinheiro", - "latitude": -25.4107, - "longitude": -50.5456, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3125804, - "municipio": "Fernandes Tourinho", - "latitude": -19.1541, - "longitude": -42.0803, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2605459, - "municipio": "Fernando de Noronha", - "latitude": -3.8396, - "longitude": -32.4107, - "codigo_uf": 26, - "fuso_horario": "America\/Noronha" - }, - { - "geocodigo": 2104081, - "municipio": "Fernando Falcão", - "latitude": -6.16207, - "longitude": -44.8979, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2403756, - "municipio": "Fernando Pedroza", - "latitude": -5.69096, - "longitude": -36.5282, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3515608, - "municipio": "Fernando Prestes", - "latitude": -21.2661, - "longitude": -48.6874, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3515509, - "municipio": "Fernandópolis", - "latitude": -20.2806, - "longitude": -50.2471, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3515657, - "municipio": "Fernão", - "latitude": -22.3607, - "longitude": -49.5187, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3515707, - "municipio": "Ferraz de Vasconcelos", - "latitude": -23.5411, - "longitude": -46.371, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1600238, - "municipio": "Ferreira Gomes", - "latitude": 0.857256, - "longitude": -51.1795, - "codigo_uf": 16, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2605509, - "municipio": "Ferreiros", - "latitude": -7.44666, - "longitude": -35.2373, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3125903, - "municipio": "Ferros", - "latitude": -19.2343, - "longitude": -43.0192, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3125952, - "municipio": "Fervedouro", - "latitude": -20.726, - "longitude": -42.279, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4107751, - "municipio": "Figueira", - "latitude": -23.8455, - "longitude": -50.4031, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5003900, - "municipio": "Figueirão", - "latitude": -18.6782, - "longitude": -53.638, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1707652, - "municipio": "Figueirópolis", - "latitude": -12.1312, - "longitude": -49.1748, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5103809, - "municipio": "Figueirópolis D'Oeste", - "latitude": -15.4439, - "longitude": -58.7391, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1707702, - "municipio": "Filadélfia", - "latitude": -7.33501, - "longitude": -47.4954, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2910859, - "municipio": "Filadélfia", - "latitude": -10.7405, - "longitude": -40.1437, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2910909, - "municipio": "Firmino Alves", - "latitude": -14.9823, - "longitude": -39.9269, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5207808, - "municipio": "Firminópolis", - "latitude": -16.5778, - "longitude": -50.304, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2702801, - "municipio": "Flexeiras", - "latitude": -9.27281, - "longitude": -35.7139, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4107850, - "municipio": "Flor da Serra do Sul", - "latitude": -26.2523, - "longitude": -53.3092, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4205357, - "municipio": "Flor do Sertão", - "latitude": -26.7811, - "longitude": -53.3505, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3515806, - "municipio": "Flora Rica", - "latitude": -21.6727, - "longitude": -51.3821, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4107801, - "municipio": "Floraí", - "latitude": -23.3178, - "longitude": -52.3029, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2403806, - "municipio": "Florânia", - "latitude": -6.12264, - "longitude": -36.8226, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3515905, - "municipio": "Floreal", - "latitude": -20.6752, - "longitude": -50.1513, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2605608, - "municipio": "Flores", - "latitude": -7.85842, - "longitude": -37.9715, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4308201, - "municipio": "Flores da Cunha", - "latitude": -29.0261, - "longitude": -51.1875, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5207907, - "municipio": "Flores de Goiás", - "latitude": -14.4451, - "longitude": -47.0417, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2203800, - "municipio": "Flores do Piauí", - "latitude": -7.78793, - "longitude": -42.918, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4107900, - "municipio": "Floresta", - "latitude": -23.6031, - "longitude": -52.0807, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2605707, - "municipio": "Floresta", - "latitude": -8.60307, - "longitude": -38.5687, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2911006, - "municipio": "Floresta Azul", - "latitude": -14.8629, - "longitude": -39.6579, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1503044, - "municipio": "Floresta do Araguaia", - "latitude": -7.55335, - "longitude": -49.7125, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2203859, - "municipio": "Floresta do Piauí", - "latitude": -7.46682, - "longitude": -41.7883, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3126000, - "municipio": "Florestal", - "latitude": -19.888, - "longitude": -44.4318, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4108007, - "municipio": "Florestópolis", - "latitude": -22.8623, - "longitude": -51.3882, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2203909, - "municipio": "Floriano", - "latitude": -6.77182, - "longitude": -43.0241, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4308250, - "municipio": "Floriano Peixoto", - "latitude": -27.8614, - "longitude": -52.0838, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4205407, - "municipio": "Florianópolis", - "latitude": -27.5945, - "longitude": -48.5477, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4108106, - "municipio": "Flórida", - "latitude": -23.0847, - "longitude": -51.9546, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3516002, - "municipio": "Flórida Paulista", - "latitude": -21.6127, - "longitude": -51.1724, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3516101, - "municipio": "Florínia", - "latitude": -22.868, - "longitude": -50.6814, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1301605, - "municipio": "Fonte Boa", - "latitude": -2.52342, - "longitude": -66.0942, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4308300, - "municipio": "Fontoura Xavier", - "latitude": -28.9817, - "longitude": -52.3445, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3126109, - "municipio": "Formiga", - "latitude": -20.4618, - "longitude": -45.4268, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4308409, - "municipio": "Formigueiro", - "latitude": -30.0035, - "longitude": -53.4959, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5208004, - "municipio": "Formosa", - "latitude": -15.54, - "longitude": -47.337, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2104099, - "municipio": "Formosa da Serra Negra", - "latitude": -6.44017, - "longitude": -46.1916, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4108205, - "municipio": "Formosa do Oeste", - "latitude": -24.2951, - "longitude": -53.3114, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2911105, - "municipio": "Formosa do Rio Preto", - "latitude": -11.0328, - "longitude": -45.193, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4205431, - "municipio": "Formosa do Sul", - "latitude": -26.6453, - "longitude": -52.7946, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5208103, - "municipio": "Formoso", - "latitude": -13.6499, - "longitude": -48.8775, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3126208, - "municipio": "Formoso", - "latitude": -14.9446, - "longitude": -46.2371, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1708205, - "municipio": "Formoso do Araguaia", - "latitude": -11.7976, - "longitude": -49.5316, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4308433, - "municipio": "Forquetinha", - "latitude": -29.3828, - "longitude": -52.0981, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2304350, - "municipio": "Forquilha", - "latitude": -3.79945, - "longitude": -40.2634, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4205456, - "municipio": "Forquilhinha", - "latitude": -28.7454, - "longitude": -49.4785, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2304400, - "municipio": "Fortaleza", - "latitude": -3.71664, - "longitude": -38.5423, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3126307, - "municipio": "Fortaleza de Minas", - "latitude": -20.8508, - "longitude": -46.712, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1708254, - "municipio": "Fortaleza do Tabocão", - "latitude": -9.05611, - "longitude": -48.5206, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2104107, - "municipio": "Fortaleza dos Nogueiras", - "latitude": -6.95983, - "longitude": -46.1749, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4308458, - "municipio": "Fortaleza dos Valos", - "latitude": -28.7986, - "longitude": -53.2249, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2304459, - "municipio": "Fortim", - "latitude": -4.45126, - "longitude": -37.7981, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2104206, - "municipio": "Fortuna", - "latitude": -5.72792, - "longitude": -44.1565, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3126406, - "municipio": "Fortuna de Minas", - "latitude": -19.5578, - "longitude": -44.4472, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4108304, - "municipio": "Foz do Iguaçu", - "latitude": -25.5427, - "longitude": -54.5827, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4108452, - "municipio": "Foz do Jordão", - "latitude": -25.7371, - "longitude": -52.1188, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4205506, - "municipio": "Fraiburgo", - "latitude": -27.0233, - "longitude": -50.92, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3516200, - "municipio": "Franca", - "latitude": -20.5352, - "longitude": -47.4039, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2204006, - "municipio": "Francinópolis", - "latitude": -6.39334, - "longitude": -42.2591, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4108320, - "municipio": "Francisco Alves", - "latitude": -24.0667, - "longitude": -53.8461, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2204105, - "municipio": "Francisco Ayres", - "latitude": -6.62606, - "longitude": -42.6881, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3126505, - "municipio": "Francisco Badaró", - "latitude": -16.9883, - "longitude": -42.3568, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4108403, - "municipio": "Francisco Beltrão", - "latitude": -26.0817, - "longitude": -53.0535, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2403905, - "municipio": "Francisco Dantas", - "latitude": -6.07234, - "longitude": -38.1212, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3126604, - "municipio": "Francisco Dumont", - "latitude": -17.3107, - "longitude": -44.2317, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2204154, - "municipio": "Francisco Macedo", - "latitude": -7.331, - "longitude": -40.788, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3516309, - "municipio": "Francisco Morato", - "latitude": -23.2792, - "longitude": -46.7448, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3126703, - "municipio": "Francisco Sá", - "latitude": -16.4827, - "longitude": -43.4896, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2204204, - "municipio": "Francisco Santos", - "latitude": -6.99491, - "longitude": -41.1288, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3126752, - "municipio": "Franciscópolis", - "latitude": -17.9578, - "longitude": -42.0094, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3516408, - "municipio": "Franco da Rocha", - "latitude": -23.3229, - "longitude": -46.729, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2304509, - "municipio": "Frecheirinha", - "latitude": -3.75557, - "longitude": -40.818, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4308508, - "municipio": "Frederico Westphalen", - "latitude": -27.3586, - "longitude": -53.3958, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3126802, - "municipio": "Frei Gaspar", - "latitude": -18.0709, - "longitude": -41.4325, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3126901, - "municipio": "Frei Inocêncio", - "latitude": -18.5556, - "longitude": -41.9121, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3126950, - "municipio": "Frei Lagonegro", - "latitude": -18.1751, - "longitude": -42.7617, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2506202, - "municipio": "Frei Martinho", - "latitude": -6.39759, - "longitude": -36.4526, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2605806, - "municipio": "Frei Miguelinho", - "latitude": -7.93918, - "longitude": -35.9113, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2802304, - "municipio": "Frei Paulo", - "latitude": -10.5513, - "longitude": -37.5279, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4205555, - "municipio": "Frei Rogério", - "latitude": -27.175, - "longitude": -50.8076, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3127008, - "municipio": "Fronteira", - "latitude": -20.2748, - "longitude": -49.1984, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3127057, - "municipio": "Fronteira dos Vales", - "latitude": -16.8898, - "longitude": -40.923, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2204303, - "municipio": "Fronteiras", - "latitude": -7.08173, - "longitude": -40.6146, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3127073, - "municipio": "Fruta de Leite", - "latitude": -16.1225, - "longitude": -42.5288, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3127107, - "municipio": "Frutal", - "latitude": -20.0259, - "longitude": -48.9355, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2404002, - "municipio": "Frutuoso Gomes", - "latitude": -6.15669, - "longitude": -37.8375, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3202207, - "municipio": "Fundão", - "latitude": -19.937, - "longitude": -40.4078, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3127206, - "municipio": "Funilândia", - "latitude": -19.3661, - "longitude": -44.061, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3516507, - "municipio": "Gabriel Monteiro", - "latitude": -21.5294, - "longitude": -50.5573, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2506251, - "municipio": "Gado Bravo", - "latitude": -7.58279, - "longitude": -35.7899, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3516606, - "municipio": "Gália", - "latitude": -22.2918, - "longitude": -49.5504, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3127305, - "municipio": "Galiléia", - "latitude": -19.0005, - "longitude": -41.5387, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2404101, - "municipio": "Galinhos", - "latitude": -5.0909, - "longitude": -36.2754, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4205605, - "municipio": "Galvão", - "latitude": -26.4549, - "longitude": -52.6875, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2605905, - "municipio": "Gameleira", - "latitude": -8.5798, - "longitude": -35.3846, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5208152, - "municipio": "Gameleira de Goiás", - "latitude": -16.4854, - "longitude": -48.6454, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3127339, - "municipio": "Gameleiras", - "latitude": -15.0829, - "longitude": -43.125, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2911204, - "municipio": "Gandu", - "latitude": -13.7441, - "longitude": -39.4747, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2606002, - "municipio": "Garanhuns", - "latitude": -8.88243, - "longitude": -36.4966, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2802403, - "municipio": "Gararu", - "latitude": -9.9722, - "longitude": -37.0869, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3516705, - "municipio": "Garça", - "latitude": -22.2125, - "longitude": -49.6546, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4308607, - "municipio": "Garibaldi", - "latitude": -29.259, - "longitude": -51.5352, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4205704, - "municipio": "Garopaba", - "latitude": -28.0275, - "longitude": -48.6192, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1503077, - "municipio": "Garrafão do Norte", - "latitude": -1.92986, - "longitude": -47.0505, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4308656, - "municipio": "Garruchos", - "latitude": -28.1944, - "longitude": -55.6383, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4205803, - "municipio": "Garuva", - "latitude": -26.0292, - "longitude": -48.852, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4205902, - "municipio": "Gaspar", - "latitude": -26.9336, - "longitude": -48.9534, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3516804, - "municipio": "Gastão Vidigal", - "latitude": -20.7948, - "longitude": -50.1912, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5103858, - "municipio": "Gaúcha do Norte", - "latitude": -13.2443, - "longitude": -53.0809, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4308706, - "municipio": "Gaurama", - "latitude": -27.5856, - "longitude": -52.0915, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2911253, - "municipio": "Gavião", - "latitude": -11.4688, - "longitude": -39.7757, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3516853, - "municipio": "Gavião Peixoto", - "latitude": -21.8367, - "longitude": -48.4957, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2204352, - "municipio": "Geminiano", - "latitude": -7.15476, - "longitude": -41.3409, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4308805, - "municipio": "General Câmara", - "latitude": -29.9032, - "longitude": -51.7612, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5103908, - "municipio": "General Carneiro", - "latitude": -15.7094, - "longitude": -52.7574, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4108502, - "municipio": "General Carneiro", - "latitude": -26.425, - "longitude": -51.3172, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2802502, - "municipio": "General Maynard", - "latitude": -10.6835, - "longitude": -36.9838, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3516903, - "municipio": "General Salgado", - "latitude": -20.6485, - "longitude": -50.364, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2304608, - "municipio": "General Sampaio", - "latitude": -4.04351, - "longitude": -39.454, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4308854, - "municipio": "Gentil", - "latitude": -28.4316, - "longitude": -52.0337, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2911303, - "municipio": "Gentio do Ouro", - "latitude": -11.4342, - "longitude": -42.5077, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3517000, - "municipio": "Getulina", - "latitude": -21.7961, - "longitude": -49.9312, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4308904, - "municipio": "Getúlio Vargas", - "latitude": -27.8911, - "longitude": -52.2294, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2204402, - "municipio": "Gilbués", - "latitude": -9.83001, - "longitude": -45.3423, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2702900, - "municipio": "Girau do Ponciano", - "latitude": -9.88404, - "longitude": -36.8316, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4309001, - "municipio": "Giruá", - "latitude": -28.0297, - "longitude": -54.3517, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3127354, - "municipio": "Glaucilândia", - "latitude": -16.8481, - "longitude": -43.692, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3517109, - "municipio": "Glicério", - "latitude": -21.3812, - "longitude": -50.2123, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2911402, - "municipio": "Glória", - "latitude": -9.34382, - "longitude": -38.2544, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5103957, - "municipio": "Glória D'Oeste", - "latitude": -15.768, - "longitude": -58.3108, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5004007, - "municipio": "Glória de Dourados", - "latitude": -22.4136, - "longitude": -54.2335, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2606101, - "municipio": "Glória do Goitá", - "latitude": -8.00568, - "longitude": -35.2904, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4309050, - "municipio": "Glorinha", - "latitude": -29.8798, - "longitude": -50.7734, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2104305, - "municipio": "Godofredo Viana", - "latitude": -1.40259, - "longitude": -45.7795, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4108551, - "municipio": "Godoy Moreira", - "latitude": -24.173, - "longitude": -51.9246, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3127370, - "municipio": "Goiabeira", - "latitude": -18.9807, - "longitude": -41.2235, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3127388, - "municipio": "Goianá", - "latitude": -21.536, - "longitude": -43.1957, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2606200, - "municipio": "Goiana", - "latitude": -7.5606, - "longitude": -34.9959, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5208400, - "municipio": "Goianápolis", - "latitude": -16.5098, - "longitude": -49.0234, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5208509, - "municipio": "Goiandira", - "latitude": -18.1352, - "longitude": -48.0875, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5208608, - "municipio": "Goianésia", - "latitude": -15.3118, - "longitude": -49.1162, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1503093, - "municipio": "Goianésia do Pará", - "latitude": -3.84338, - "longitude": -49.0974, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5208707, - "municipio": "Goiânia", - "latitude": -16.6864, - "longitude": -49.2643, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2404200, - "municipio": "Goianinha", - "latitude": -6.26486, - "longitude": -35.1943, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5208806, - "municipio": "Goianira", - "latitude": -16.4947, - "longitude": -49.427, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1708304, - "municipio": "Goianorte", - "latitude": -8.77413, - "longitude": -48.9313, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5208905, - "municipio": "Goiás", - "latitude": -15.9333, - "longitude": -50.14, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1709005, - "municipio": "Goiatins", - "latitude": -7.71478, - "longitude": -47.3252, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5209101, - "municipio": "Goiatuba", - "latitude": -18.0105, - "longitude": -49.3658, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4108601, - "municipio": "Goioerê", - "latitude": -24.1835, - "longitude": -53.0248, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4108650, - "municipio": "Goioxim", - "latitude": -25.1927, - "longitude": -51.9911, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3127404, - "municipio": "Gonçalves", - "latitude": -22.6545, - "longitude": -45.8556, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2104404, - "municipio": "Gonçalves Dias", - "latitude": -5.1475, - "longitude": -44.3013, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2911501, - "municipio": "Gongogi", - "latitude": -14.3195, - "longitude": -39.469, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3127503, - "municipio": "Gonzaga", - "latitude": -18.8196, - "longitude": -42.4769, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3127602, - "municipio": "Gouveia", - "latitude": -18.4519, - "longitude": -43.7423, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5209150, - "municipio": "Gouvelândia", - "latitude": -18.6238, - "longitude": -50.0805, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2104503, - "municipio": "Governador Archer", - "latitude": -5.02078, - "longitude": -44.2754, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4206009, - "municipio": "Governador Celso Ramos", - "latitude": -27.3172, - "longitude": -48.5576, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2404309, - "municipio": "Governador Dix-Sept Rosado", - "latitude": -5.44887, - "longitude": -37.5183, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2104552, - "municipio": "Governador Edison Lobão", - "latitude": -5.74973, - "longitude": -47.3646, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2104602, - "municipio": "Governador Eugênio Barros", - "latitude": -5.31897, - "longitude": -44.2469, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1101005, - "municipio": "Governador Jorge Teixeira", - "latitude": -10.61, - "longitude": -62.7371, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3202256, - "municipio": "Governador Lindenberg", - "latitude": -19.1864, - "longitude": -40.4473, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2104628, - "municipio": "Governador Luiz Rocha", - "latitude": -5.47835, - "longitude": -44.0774, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2911600, - "municipio": "Governador Mangabeira", - "latitude": -12.5994, - "longitude": -39.0412, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2104651, - "municipio": "Governador Newton Bello", - "latitude": -3.43245, - "longitude": -45.6619, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2104677, - "municipio": "Governador Nunes Freire", - "latitude": -2.12899, - "longitude": -45.8777, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3127701, - "municipio": "Governador Valadares", - "latitude": -18.8545, - "longitude": -41.9555, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2304657, - "municipio": "Graça", - "latitude": -4.04422, - "longitude": -40.749, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2104701, - "municipio": "Graça Aranha", - "latitude": -5.40547, - "longitude": -44.3358, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2802601, - "municipio": "Gracho Cardoso", - "latitude": -10.2252, - "longitude": -37.2006, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2104800, - "municipio": "Grajaú", - "latitude": -5.81367, - "longitude": -46.1462, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4309100, - "municipio": "Gramado", - "latitude": -29.3734, - "longitude": -50.8762, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4309126, - "municipio": "Gramado dos Loureiros", - "latitude": -27.4429, - "longitude": -52.9149, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4309159, - "municipio": "Gramado Xavier", - "latitude": -29.2706, - "longitude": -52.5795, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4108700, - "municipio": "Grandes Rios", - "latitude": -24.1466, - "longitude": -51.5094, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2606309, - "municipio": "Granito", - "latitude": -7.70711, - "longitude": -39.615, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2304707, - "municipio": "Granja", - "latitude": -3.12788, - "longitude": -40.8372, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2304806, - "municipio": "Granjeiro", - "latitude": -6.88134, - "longitude": -39.2144, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3127800, - "municipio": "Grão Mogol", - "latitude": -16.5662, - "longitude": -42.8923, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4206108, - "municipio": "Grão Pará", - "latitude": -28.1809, - "longitude": -49.2252, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2606408, - "municipio": "Gravatá", - "latitude": -8.21118, - "longitude": -35.5675, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4309209, - "municipio": "Gravataí", - "latitude": -29.9413, - "longitude": -50.9869, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4206207, - "municipio": "Gravatal", - "latitude": -28.3208, - "longitude": -49.0427, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2304905, - "municipio": "Groaíras", - "latitude": -3.91787, - "longitude": -40.3852, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2404408, - "municipio": "Grossos", - "latitude": -4.98068, - "longitude": -37.1621, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3127909, - "municipio": "Grupiara", - "latitude": -18.5003, - "longitude": -47.7318, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4309258, - "municipio": "Guabiju", - "latitude": -28.5421, - "longitude": -51.6948, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4206306, - "municipio": "Guabiruba", - "latitude": -27.0808, - "longitude": -48.9804, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3202306, - "municipio": "Guaçuí", - "latitude": -20.7668, - "longitude": -41.6734, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2204501, - "municipio": "Guadalupe", - "latitude": -6.78285, - "longitude": -43.5594, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4309308, - "municipio": "Guaíba", - "latitude": -30.1086, - "longitude": -51.3233, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3517208, - "municipio": "Guaiçara", - "latitude": -21.6195, - "longitude": -49.8013, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3517307, - "municipio": "Guaimbê", - "latitude": -21.9091, - "longitude": -49.8986, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3517406, - "municipio": "Guaíra", - "latitude": -20.3196, - "longitude": -48.312, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4108809, - "municipio": "Guaíra", - "latitude": -24.085, - "longitude": -54.2573, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4108908, - "municipio": "Guairaçá", - "latitude": -22.932, - "longitude": -52.6906, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2304954, - "municipio": "Guaiúba", - "latitude": -4.04057, - "longitude": -38.6404, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1301654, - "municipio": "Guajará", - "latitude": -7.53797, - "longitude": -72.5907, - "codigo_uf": 13, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 1100106, - "municipio": "Guajará-Mirim", - "latitude": -10.7889, - "longitude": -65.3296, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2911659, - "municipio": "Guajeru", - "latitude": -14.5467, - "longitude": -41.9381, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2404507, - "municipio": "Guamaré", - "latitude": -5.10619, - "longitude": -36.3222, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4108957, - "municipio": "Guamiranga", - "latitude": -25.1912, - "longitude": -50.8021, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2911709, - "municipio": "Guanambi", - "latitude": -14.2231, - "longitude": -42.7799, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3128006, - "municipio": "Guanhães", - "latitude": -18.7713, - "longitude": -42.9312, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3128105, - "municipio": "Guapé", - "latitude": -20.7631, - "longitude": -45.9152, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3517505, - "municipio": "Guapiaçu", - "latitude": -20.7959, - "longitude": -49.2172, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3517604, - "municipio": "Guapiara", - "latitude": -24.1892, - "longitude": -48.5295, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3301850, - "municipio": "Guapimirim", - "latitude": -22.5347, - "longitude": -42.9895, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4109005, - "municipio": "Guapirama", - "latitude": -23.5203, - "longitude": -50.0407, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5209200, - "municipio": "Guapó", - "latitude": -16.8297, - "longitude": -49.5345, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4309407, - "municipio": "Guaporé", - "latitude": -28.8399, - "longitude": -51.8895, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4109104, - "municipio": "Guaporema", - "latitude": -23.3402, - "longitude": -52.7786, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3517703, - "municipio": "Guará", - "latitude": -20.4302, - "longitude": -47.8236, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2506301, - "municipio": "Guarabira", - "latitude": -6.85064, - "longitude": -35.485, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3517802, - "municipio": "Guaraçaí", - "latitude": -21.0292, - "longitude": -51.2119, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3517901, - "municipio": "Guaraci", - "latitude": -20.4977, - "longitude": -48.9391, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4109203, - "municipio": "Guaraci", - "latitude": -22.9694, - "longitude": -51.6504, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3128204, - "municipio": "Guaraciaba", - "latitude": -20.5716, - "longitude": -43.0094, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4206405, - "municipio": "Guaraciaba", - "latitude": -26.6042, - "longitude": -53.5243, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2305001, - "municipio": "Guaraciaba do Norte", - "latitude": -4.15814, - "longitude": -40.7476, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3128253, - "municipio": "Guaraciama", - "latitude": -17.0142, - "longitude": -43.6675, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1709302, - "municipio": "Guaraí", - "latitude": -8.83543, - "longitude": -48.5114, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5209291, - "municipio": "Guaraíta", - "latitude": -15.6121, - "longitude": -50.0265, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2305100, - "municipio": "Guaramiranga", - "latitude": -4.26248, - "longitude": -38.932, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4206504, - "municipio": "Guaramirim", - "latitude": -26.4688, - "longitude": -49.0026, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3128303, - "municipio": "Guaranésia", - "latitude": -21.3009, - "longitude": -46.7964, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3128402, - "municipio": "Guarani", - "latitude": -21.3563, - "longitude": -43.0328, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3518008, - "municipio": "Guarani d'Oeste", - "latitude": -20.0746, - "longitude": -50.3411, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4309506, - "municipio": "Guarani das Missões", - "latitude": -28.1491, - "longitude": -54.5629, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5209408, - "municipio": "Guarani de Goiás", - "latitude": -13.9421, - "longitude": -46.4868, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4109302, - "municipio": "Guaraniaçu", - "latitude": -25.0968, - "longitude": -52.8755, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3518107, - "municipio": "Guarantã", - "latitude": -21.8942, - "longitude": -49.5914, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5104104, - "municipio": "Guarantã do Norte", - "latitude": -9.96218, - "longitude": -54.9121, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3202405, - "municipio": "Guarapari", - "latitude": -20.6772, - "longitude": -40.5093, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4109401, - "municipio": "Guarapuava", - "latitude": -25.3902, - "longitude": -51.4623, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4109500, - "municipio": "Guaraqueçaba", - "latitude": -25.3071, - "longitude": -48.3204, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3128501, - "municipio": "Guarará", - "latitude": -21.7304, - "longitude": -43.0334, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3518206, - "municipio": "Guararapes", - "latitude": -21.2544, - "longitude": -50.6453, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3518305, - "municipio": "Guararema", - "latitude": -23.4112, - "longitude": -46.0369, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2911808, - "municipio": "Guaratinga", - "latitude": -16.5833, - "longitude": -39.7847, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3518404, - "municipio": "Guaratinguetá", - "latitude": -22.8075, - "longitude": -45.1938, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4109609, - "municipio": "Guaratuba", - "latitude": -25.8817, - "longitude": -48.5752, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3128600, - "municipio": "Guarda-Mor", - "latitude": -17.7673, - "longitude": -47.0998, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3518503, - "municipio": "Guareí", - "latitude": -23.3714, - "longitude": -48.1837, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3518602, - "municipio": "Guariba", - "latitude": -21.3594, - "longitude": -48.2316, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2204550, - "municipio": "Guaribas", - "latitude": -9.38647, - "longitude": -43.6943, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5209457, - "municipio": "Guarinos", - "latitude": -14.7292, - "longitude": -49.7006, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3518701, - "municipio": "Guarujá", - "latitude": -23.9888, - "longitude": -46.258, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4206603, - "municipio": "Guarujá do Sul", - "latitude": -26.3858, - "longitude": -53.5296, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3518800, - "municipio": "Guarulhos", - "latitude": -23.4538, - "longitude": -46.5333, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4206652, - "municipio": "Guatambú", - "latitude": -27.1341, - "longitude": -52.7887, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3518859, - "municipio": "Guatapará", - "latitude": -21.4944, - "longitude": -48.0356, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3128709, - "municipio": "Guaxupé", - "latitude": -21.305, - "longitude": -46.7081, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5004106, - "municipio": "Guia Lopes da Laguna", - "latitude": -21.4583, - "longitude": -56.1117, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3128808, - "municipio": "Guidoval", - "latitude": -21.155, - "longitude": -42.7887, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2104909, - "municipio": "Guimarães", - "latitude": -2.12755, - "longitude": -44.602, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3128907, - "municipio": "Guimarânia", - "latitude": -18.8425, - "longitude": -46.7901, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5104203, - "municipio": "Guiratinga", - "latitude": -16.346, - "longitude": -53.7575, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3129004, - "municipio": "Guiricema", - "latitude": -21.0098, - "longitude": -42.7207, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3129103, - "municipio": "Gurinhatã", - "latitude": -19.2143, - "longitude": -49.7876, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2506400, - "municipio": "Gurinhém", - "latitude": -7.1233, - "longitude": -35.4222, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2506509, - "municipio": "Gurjão", - "latitude": -7.24833, - "longitude": -36.4923, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1503101, - "municipio": "Gurupá", - "latitude": -1.41412, - "longitude": -51.6338, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1709500, - "municipio": "Gurupi", - "latitude": -11.7279, - "longitude": -49.068, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3518909, - "municipio": "Guzolândia", - "latitude": -20.6467, - "longitude": -50.6645, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4309555, - "municipio": "Harmonia", - "latitude": -29.5456, - "longitude": -51.4185, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5209606, - "municipio": "Heitoraí", - "latitude": -15.719, - "longitude": -49.8268, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3129202, - "municipio": "Heliodora", - "latitude": -22.0644, - "longitude": -45.5453, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2911857, - "municipio": "Heliópolis", - "latitude": -10.6825, - "longitude": -38.2907, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3519006, - "municipio": "Herculândia", - "latitude": -22.0038, - "longitude": -50.3907, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4307104, - "municipio": "Herval", - "latitude": -32.024, - "longitude": -53.3944, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4206702, - "municipio": "Herval d'Oeste", - "latitude": -27.1903, - "longitude": -51.4917, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4309571, - "municipio": "Herveiras", - "latitude": -29.4552, - "longitude": -52.6553, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5209705, - "municipio": "Hidrolândia", - "latitude": -16.9626, - "longitude": -49.2265, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2305209, - "municipio": "Hidrolândia", - "latitude": -4.40958, - "longitude": -40.4056, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5209804, - "municipio": "Hidrolina", - "latitude": -14.7261, - "longitude": -49.4634, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3519055, - "municipio": "Holambra", - "latitude": -22.6405, - "longitude": -47.0487, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4109658, - "municipio": "Honório Serpa", - "latitude": -26.139, - "longitude": -52.3848, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2305233, - "municipio": "Horizonte", - "latitude": -4.1209, - "longitude": -38.4707, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4309605, - "municipio": "Horizontina", - "latitude": -27.6282, - "longitude": -54.3053, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3519071, - "municipio": "Hortolândia", - "latitude": -22.8529, - "longitude": -47.2143, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2204600, - "municipio": "Hugo Napoleão", - "latitude": -5.9886, - "longitude": -42.5598, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4309654, - "municipio": "Hulha Negra", - "latitude": -31.4067, - "longitude": -53.8667, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4309704, - "municipio": "Humaitá", - "latitude": -27.5691, - "longitude": -53.9695, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1301704, - "municipio": "Humaitá", - "latitude": -7.51171, - "longitude": -63.0327, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2105005, - "municipio": "Humberto de Campos", - "latitude": -2.59828, - "longitude": -43.4649, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3519105, - "municipio": "Iacanga", - "latitude": -21.8896, - "longitude": -49.031, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5209903, - "municipio": "Iaciara", - "latitude": -14.1011, - "longitude": -46.6335, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3519204, - "municipio": "Iacri", - "latitude": -21.8572, - "longitude": -50.6932, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2911907, - "municipio": "Iaçu", - "latitude": -12.7666, - "longitude": -40.2056, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3129301, - "municipio": "Iapu", - "latitude": -19.4387, - "longitude": -42.2147, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3519253, - "municipio": "Iaras", - "latitude": -22.8682, - "longitude": -49.1634, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2606507, - "municipio": "Iati", - "latitude": -9.04559, - "longitude": -36.8498, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4109708, - "municipio": "Ibaiti", - "latitude": -23.8478, - "longitude": -50.1932, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4309753, - "municipio": "Ibarama", - "latitude": -29.4203, - "longitude": -53.1295, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2305266, - "municipio": "Ibaretama", - "latitude": -4.80376, - "longitude": -38.7501, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3519303, - "municipio": "Ibaté", - "latitude": -21.9584, - "longitude": -47.9882, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2703007, - "municipio": "Ibateguara", - "latitude": -8.97823, - "longitude": -35.9373, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3202454, - "municipio": "Ibatiba", - "latitude": -20.2347, - "longitude": -41.5087, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4109757, - "municipio": "Ibema", - "latitude": -25.1193, - "longitude": -53.0072, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3129400, - "municipio": "Ibertioga", - "latitude": -21.433, - "longitude": -43.9639, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3129509, - "municipio": "Ibiá", - "latitude": -19.4749, - "longitude": -46.5474, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4309803, - "municipio": "Ibiaçá", - "latitude": -28.0566, - "longitude": -51.8599, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3129608, - "municipio": "Ibiaí", - "latitude": -16.8591, - "longitude": -44.9046, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4206751, - "municipio": "Ibiam", - "latitude": -27.1847, - "longitude": -51.2352, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2305308, - "municipio": "Ibiapina", - "latitude": -3.92403, - "longitude": -40.8911, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2506608, - "municipio": "Ibiara", - "latitude": -7.47957, - "longitude": -38.4059, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2912004, - "municipio": "Ibiassucê", - "latitude": -14.2711, - "longitude": -42.257, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2912103, - "municipio": "Ibicaraí", - "latitude": -14.8579, - "longitude": -39.5914, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4206801, - "municipio": "Ibicaré", - "latitude": -27.0881, - "longitude": -51.3681, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2912202, - "municipio": "Ibicoara", - "latitude": -13.4059, - "longitude": -41.284, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2912301, - "municipio": "Ibicuí", - "latitude": -14.845, - "longitude": -39.9879, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2305332, - "municipio": "Ibicuitinga", - "latitude": -4.96999, - "longitude": -38.6362, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2606606, - "municipio": "Ibimirim", - "latitude": -8.54026, - "longitude": -37.7032, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2912400, - "municipio": "Ibipeba", - "latitude": -11.6438, - "longitude": -42.0195, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2912509, - "municipio": "Ibipitanga", - "latitude": -12.8804, - "longitude": -42.4856, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4109807, - "municipio": "Ibiporã", - "latitude": -23.2659, - "longitude": -51.0522, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2912608, - "municipio": "Ibiquera", - "latitude": -12.6444, - "longitude": -40.9338, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3519402, - "municipio": "Ibirá", - "latitude": -21.083, - "longitude": -49.2448, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3129657, - "municipio": "Ibiracatu", - "latitude": -15.6605, - "longitude": -44.1667, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3129707, - "municipio": "Ibiraci", - "latitude": -20.4611, - "longitude": -47.1222, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3202504, - "municipio": "Ibiraçu", - "latitude": -19.8366, - "longitude": -40.3732, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4309902, - "municipio": "Ibiraiaras", - "latitude": -28.3741, - "longitude": -51.6377, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2606705, - "municipio": "Ibirajuba", - "latitude": -8.57633, - "longitude": -36.1812, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4206900, - "municipio": "Ibirama", - "latitude": -27.0547, - "longitude": -49.5193, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2912707, - "municipio": "Ibirapitanga", - "latitude": -14.1649, - "longitude": -39.3787, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2912806, - "municipio": "Ibirapuã", - "latitude": -17.6832, - "longitude": -40.1129, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4309951, - "municipio": "Ibirapuitã", - "latitude": -28.6247, - "longitude": -52.5158, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3519501, - "municipio": "Ibirarema", - "latitude": -22.8185, - "longitude": -50.0739, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2912905, - "municipio": "Ibirataia", - "latitude": -14.0643, - "longitude": -39.6459, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3129806, - "municipio": "Ibirité", - "latitude": -20.0252, - "longitude": -44.0569, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4310009, - "municipio": "Ibirubá", - "latitude": -28.6302, - "longitude": -53.0961, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2913002, - "municipio": "Ibitiara", - "latitude": -12.6502, - "longitude": -42.2179, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3519600, - "municipio": "Ibitinga", - "latitude": -21.7562, - "longitude": -48.8319, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3202553, - "municipio": "Ibitirama", - "latitude": -20.5466, - "longitude": -41.6667, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2913101, - "municipio": "Ibititá", - "latitude": -11.5414, - "longitude": -41.9748, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3129905, - "municipio": "Ibitiúra de Minas", - "latitude": -22.0604, - "longitude": -46.4368, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3130002, - "municipio": "Ibituruna", - "latitude": -21.1541, - "longitude": -44.7479, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3519709, - "municipio": "Ibiúna", - "latitude": -23.6596, - "longitude": -47.223, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2913200, - "municipio": "Ibotirama", - "latitude": -12.1779, - "longitude": -43.2167, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2305357, - "municipio": "Icapuí", - "latitude": -4.71206, - "longitude": -37.3531, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4207007, - "municipio": "Içara", - "latitude": -28.7132, - "longitude": -49.3087, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3130051, - "municipio": "Icaraí de Minas", - "latitude": -16.214, - "longitude": -44.9034, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4109906, - "municipio": "Icaraíma", - "latitude": -23.3944, - "longitude": -53.615, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2105104, - "municipio": "Icatu", - "latitude": -2.77206, - "longitude": -44.0501, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3519808, - "municipio": "Icém", - "latitude": -20.3391, - "longitude": -49.1915, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2913309, - "municipio": "Ichu", - "latitude": -11.7431, - "longitude": -39.1905, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2305407, - "municipio": "Icó", - "latitude": -6.39627, - "longitude": -38.8554, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3202603, - "municipio": "Iconha", - "latitude": -20.7913, - "longitude": -40.8132, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2404606, - "municipio": "Ielmo Marinho", - "latitude": -5.82447, - "longitude": -35.55, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3519907, - "municipio": "Iepê", - "latitude": -22.6602, - "longitude": -51.0779, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2703106, - "municipio": "Igaci", - "latitude": -9.53768, - "longitude": -36.6372, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2913408, - "municipio": "Igaporã", - "latitude": -13.774, - "longitude": -42.7155, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3520004, - "municipio": "Igaraçu do Tietê", - "latitude": -22.509, - "longitude": -48.5597, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2502607, - "municipio": "Igaracy", - "latitude": -7.17184, - "longitude": -38.1478, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3520103, - "municipio": "Igarapava", - "latitude": -20.0407, - "longitude": -47.7466, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3130101, - "municipio": "Igarapé", - "latitude": -20.0707, - "longitude": -44.2994, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2105153, - "municipio": "Igarapé do Meio", - "latitude": -3.65771, - "longitude": -45.2114, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2105203, - "municipio": "Igarapé Grande", - "latitude": -4.6625, - "longitude": -44.8558, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1503200, - "municipio": "Igarapé-Açu", - "latitude": -1.12539, - "longitude": -47.626, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1503309, - "municipio": "Igarapé-Miri", - "latitude": -1.97533, - "longitude": -48.9575, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2606804, - "municipio": "Igarassu", - "latitude": -7.82881, - "longitude": -34.9013, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3520202, - "municipio": "Igaratá", - "latitude": -23.2037, - "longitude": -46.157, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3130200, - "municipio": "Igaratinga", - "latitude": -19.9476, - "longitude": -44.7063, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2913457, - "municipio": "Igrapiúna", - "latitude": -13.8295, - "longitude": -39.1361, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2703205, - "municipio": "Igreja Nova", - "latitude": -10.1235, - "longitude": -36.6597, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4310108, - "municipio": "Igrejinha", - "latitude": -29.5693, - "longitude": -50.7919, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3301876, - "municipio": "Iguaba Grande", - "latitude": -22.8495, - "longitude": -42.2299, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2913507, - "municipio": "Iguaí", - "latitude": -14.7528, - "longitude": -40.0894, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3520301, - "municipio": "Iguape", - "latitude": -24.699, - "longitude": -47.5537, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4110003, - "municipio": "Iguaraçu", - "latitude": -23.1949, - "longitude": -51.8256, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2606903, - "municipio": "Iguaracy", - "latitude": -7.83222, - "longitude": -37.5082, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3130309, - "municipio": "Iguatama", - "latitude": -20.1776, - "longitude": -45.7111, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5004304, - "municipio": "Iguatemi", - "latitude": -23.6736, - "longitude": -54.5637, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2305506, - "municipio": "Iguatu", - "latitude": -6.36281, - "longitude": -39.2892, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4110052, - "municipio": "Iguatu", - "latitude": -24.7153, - "longitude": -53.0827, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3130408, - "municipio": "Ijaci", - "latitude": -21.1738, - "longitude": -44.9233, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4310207, - "municipio": "Ijuí", - "latitude": -28.388, - "longitude": -53.92, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3520426, - "municipio": "Ilha Comprida", - "latitude": -24.7307, - "longitude": -47.5383, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2802700, - "municipio": "Ilha das Flores", - "latitude": -10.4425, - "longitude": -36.5479, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2607604, - "municipio": "Ilha de Itamaracá", - "latitude": -7.74766, - "longitude": -34.8303, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2204659, - "municipio": "Ilha Grande", - "latitude": -2.85774, - "longitude": -41.8186, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3520442, - "municipio": "Ilha Solteira", - "latitude": -20.4326, - "longitude": -51.3426, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3520400, - "municipio": "Ilhabela", - "latitude": -23.7785, - "longitude": -45.3552, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2913606, - "municipio": "Ilhéus", - "latitude": -14.793, - "longitude": -39.046, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4207106, - "municipio": "Ilhota", - "latitude": -26.9023, - "longitude": -48.8251, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3130507, - "municipio": "Ilicínea", - "latitude": -20.9402, - "longitude": -45.8308, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4310306, - "municipio": "Ilópolis", - "latitude": -28.9282, - "longitude": -52.1258, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2506707, - "municipio": "Imaculada", - "latitude": -7.3889, - "longitude": -37.5079, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4207205, - "municipio": "Imaruí", - "latitude": -28.3339, - "longitude": -48.817, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4110078, - "municipio": "Imbaú", - "latitude": -24.448, - "longitude": -50.7533, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4310330, - "municipio": "Imbé", - "latitude": -29.9753, - "longitude": -50.1281, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3130556, - "municipio": "Imbé de Minas", - "latitude": -19.6017, - "longitude": -41.9695, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4207304, - "municipio": "Imbituba", - "latitude": -28.2284, - "longitude": -48.6659, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4110102, - "municipio": "Imbituva", - "latitude": -25.2285, - "longitude": -50.5989, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4207403, - "municipio": "Imbuia", - "latitude": -27.4908, - "longitude": -49.4218, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4310363, - "municipio": "Imigrante", - "latitude": -29.3508, - "longitude": -51.7748, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2105302, - "municipio": "Imperatriz", - "latitude": -5.51847, - "longitude": -47.4777, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4110201, - "municipio": "Inácio Martins", - "latitude": -25.5704, - "longitude": -51.0769, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5209937, - "municipio": "Inaciolândia", - "latitude": -18.4869, - "longitude": -49.9888, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2607000, - "municipio": "Inajá", - "latitude": -8.90206, - "longitude": -37.8351, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4110300, - "municipio": "Inajá", - "latitude": -22.7509, - "longitude": -52.1995, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3130606, - "municipio": "Inconfidentes", - "latitude": -22.3136, - "longitude": -46.3264, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3130655, - "municipio": "Indaiabira", - "latitude": -15.4911, - "longitude": -42.2005, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4207502, - "municipio": "Indaial", - "latitude": -26.8992, - "longitude": -49.2354, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3520509, - "municipio": "Indaiatuba", - "latitude": -23.0816, - "longitude": -47.2101, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4310405, - "municipio": "Independência", - "latitude": -27.8354, - "longitude": -54.1886, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2305605, - "municipio": "Independência", - "latitude": -5.38789, - "longitude": -40.3085, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3520608, - "municipio": "Indiana", - "latitude": -22.1738, - "longitude": -51.2555, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4110409, - "municipio": "Indianópolis", - "latitude": -23.4762, - "longitude": -52.6989, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3130705, - "municipio": "Indianópolis", - "latitude": -19.0341, - "longitude": -47.9155, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3520707, - "municipio": "Indiaporã", - "latitude": -19.979, - "longitude": -50.2909, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5209952, - "municipio": "Indiara", - "latitude": -17.1387, - "longitude": -49.9862, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2802809, - "municipio": "Indiaroba", - "latitude": -11.5157, - "longitude": -37.515, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5104500, - "municipio": "Indiavaí", - "latitude": -15.4921, - "longitude": -58.5802, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2506806, - "municipio": "Ingá", - "latitude": -7.28144, - "longitude": -35.605, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3130804, - "municipio": "Ingaí", - "latitude": -21.4024, - "longitude": -44.9152, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2607109, - "municipio": "Ingazeira", - "latitude": -7.66909, - "longitude": -37.4576, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4310413, - "municipio": "Inhacorá", - "latitude": -27.8752, - "longitude": -54.015, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2913705, - "municipio": "Inhambupe", - "latitude": -11.781, - "longitude": -38.355, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1503408, - "municipio": "Inhangapi", - "latitude": -1.4349, - "longitude": -47.9114, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2703304, - "municipio": "Inhapi", - "latitude": -9.22594, - "longitude": -37.7509, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3130903, - "municipio": "Inhapim", - "latitude": -19.5476, - "longitude": -42.1147, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3131000, - "municipio": "Inhaúma", - "latitude": -19.4898, - "longitude": -44.3934, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2204709, - "municipio": "Inhuma", - "latitude": -6.665, - "longitude": -41.7041, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5210000, - "municipio": "Inhumas", - "latitude": -16.3611, - "longitude": -49.5001, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3131109, - "municipio": "Inimutaba", - "latitude": -18.7271, - "longitude": -44.3584, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5004403, - "municipio": "Inocência", - "latitude": -19.7277, - "longitude": -51.9281, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3520806, - "municipio": "Inúbia Paulista", - "latitude": -21.7695, - "longitude": -50.9633, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4207577, - "municipio": "Iomerê", - "latitude": -27.0019, - "longitude": -51.2442, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3131158, - "municipio": "Ipaba", - "latitude": -19.4158, - "longitude": -42.4139, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5210109, - "municipio": "Ipameri", - "latitude": -17.7215, - "longitude": -48.1581, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3131208, - "municipio": "Ipanema", - "latitude": -19.7992, - "longitude": -41.7164, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2404705, - "municipio": "Ipanguaçu", - "latitude": -5.48984, - "longitude": -36.8501, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2305654, - "municipio": "Ipaporanga", - "latitude": -4.89764, - "longitude": -40.7537, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3131307, - "municipio": "Ipatinga", - "latitude": -19.4703, - "longitude": -42.5476, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2305704, - "municipio": "Ipaumirim", - "latitude": -6.78265, - "longitude": -38.7179, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3520905, - "municipio": "Ipaussu", - "latitude": -23.0575, - "longitude": -49.6279, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4310439, - "municipio": "Ipê", - "latitude": -28.8171, - "longitude": -51.2859, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2913804, - "municipio": "Ipecaetá", - "latitude": -12.3028, - "longitude": -39.3069, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3521002, - "municipio": "Iperó", - "latitude": -23.3513, - "longitude": -47.6927, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3521101, - "municipio": "Ipeúna", - "latitude": -22.4355, - "longitude": -47.7151, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3131406, - "municipio": "Ipiaçu", - "latitude": -18.6927, - "longitude": -49.9436, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2913903, - "municipio": "Ipiaú", - "latitude": -14.1226, - "longitude": -39.7353, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3521150, - "municipio": "Ipiguá", - "latitude": -20.6557, - "longitude": -49.3842, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2914000, - "municipio": "Ipirá", - "latitude": -12.1561, - "longitude": -39.7359, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4207601, - "municipio": "Ipira", - "latitude": -27.4038, - "longitude": -51.7758, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4110508, - "municipio": "Ipiranga", - "latitude": -25.0238, - "longitude": -50.5794, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5210158, - "municipio": "Ipiranga de Goiás", - "latitude": -15.1689, - "longitude": -49.6695, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5104526, - "municipio": "Ipiranga do Norte", - "latitude": -12.2408, - "longitude": -56.1531, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2204808, - "municipio": "Ipiranga do Piauí", - "latitude": -6.82421, - "longitude": -41.7381, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4310462, - "municipio": "Ipiranga do Sul", - "latitude": -27.9404, - "longitude": -52.4271, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1301803, - "municipio": "Ipixuna", - "latitude": -7.04791, - "longitude": -71.6934, - "codigo_uf": 13, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 1503457, - "municipio": "Ipixuna do Pará", - "latitude": -2.55992, - "longitude": -47.5059, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2607208, - "municipio": "Ipojuca", - "latitude": -8.39303, - "longitude": -35.0609, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4110607, - "municipio": "Iporã", - "latitude": -24.0083, - "longitude": -53.706, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5210208, - "municipio": "Iporá", - "latitude": -16.4398, - "longitude": -51.118, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4207650, - "municipio": "Iporã do Oeste", - "latitude": -26.9854, - "longitude": -53.5355, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3521200, - "municipio": "Iporanga", - "latitude": -24.5847, - "longitude": -48.5971, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2305803, - "municipio": "Ipu", - "latitude": -4.31748, - "longitude": -40.7059, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3521309, - "municipio": "Ipuã", - "latitude": -20.4438, - "longitude": -48.0129, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4207684, - "municipio": "Ipuaçu", - "latitude": -26.635, - "longitude": -52.4556, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2607307, - "municipio": "Ipubi", - "latitude": -7.64505, - "longitude": -40.1476, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2404804, - "municipio": "Ipueira", - "latitude": -6.80596, - "longitude": -37.2045, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1709807, - "municipio": "Ipueiras", - "latitude": -11.2329, - "longitude": -48.46, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2305902, - "municipio": "Ipueiras", - "latitude": -4.53802, - "longitude": -40.7118, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3131505, - "municipio": "Ipuiúna", - "latitude": -22.1013, - "longitude": -46.1915, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4207700, - "municipio": "Ipumirim", - "latitude": -27.0772, - "longitude": -52.1289, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2914109, - "municipio": "Ipupiara", - "latitude": -11.8219, - "longitude": -42.6179, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1400282, - "municipio": "Iracema", - "latitude": 2.18305, - "longitude": -61.0415, - "codigo_uf": 14, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2306009, - "municipio": "Iracema", - "latitude": -5.8124, - "longitude": -38.2919, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4110656, - "municipio": "Iracema do Oeste", - "latitude": -24.4262, - "longitude": -53.3528, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3521408, - "municipio": "Iracemápolis", - "latitude": -22.5832, - "longitude": -47.523, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4207759, - "municipio": "Iraceminha", - "latitude": -26.8215, - "longitude": -53.2767, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4310504, - "municipio": "Iraí", - "latitude": -27.1951, - "longitude": -53.2543, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3131604, - "municipio": "Iraí de Minas", - "latitude": -18.9819, - "longitude": -47.461, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2914208, - "municipio": "Irajuba", - "latitude": -13.2563, - "longitude": -40.0848, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2914307, - "municipio": "Iramaia", - "latitude": -13.2902, - "longitude": -40.9595, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1301852, - "municipio": "Iranduba", - "latitude": -3.27479, - "longitude": -60.19, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4207809, - "municipio": "Irani", - "latitude": -27.0287, - "longitude": -51.9012, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3521507, - "municipio": "Irapuã", - "latitude": -21.2768, - "longitude": -49.4164, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3521606, - "municipio": "Irapuru", - "latitude": -21.5684, - "longitude": -51.3472, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2914406, - "municipio": "Iraquara", - "latitude": -12.2429, - "longitude": -41.6155, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2914505, - "municipio": "Irará", - "latitude": -12.0504, - "longitude": -38.7631, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4110706, - "municipio": "Irati", - "latitude": -25.4697, - "longitude": -50.6493, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4207858, - "municipio": "Irati", - "latitude": -26.6539, - "longitude": -52.8955, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2306108, - "municipio": "Irauçuba", - "latitude": -3.74737, - "longitude": -39.7843, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2914604, - "municipio": "Irecê", - "latitude": -11.3033, - "longitude": -41.8535, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4110805, - "municipio": "Iretama", - "latitude": -24.4253, - "longitude": -52.1012, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4207908, - "municipio": "Irineópolis", - "latitude": -26.242, - "longitude": -50.7957, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1503507, - "municipio": "Irituia", - "latitude": -1.76984, - "longitude": -47.446, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3202652, - "municipio": "Irupi", - "latitude": -20.3501, - "longitude": -41.6444, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2204907, - "municipio": "Isaías Coelho", - "latitude": -7.73597, - "longitude": -41.6735, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5210307, - "municipio": "Israelândia", - "latitude": -16.3144, - "longitude": -50.9087, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4208005, - "municipio": "Itá", - "latitude": -27.2907, - "longitude": -52.3212, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4310538, - "municipio": "Itaara", - "latitude": -29.6013, - "longitude": -53.7725, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2506905, - "municipio": "Itabaiana", - "latitude": -7.33167, - "longitude": -35.3317, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2802908, - "municipio": "Itabaiana", - "latitude": -10.6826, - "longitude": -37.4273, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2803005, - "municipio": "Itabaianinha", - "latitude": -11.2693, - "longitude": -37.7875, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2914653, - "municipio": "Itabela", - "latitude": -16.5732, - "longitude": -39.5593, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3521705, - "municipio": "Itaberá", - "latitude": -23.8638, - "longitude": -49.14, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2914703, - "municipio": "Itaberaba", - "latitude": -12.5242, - "longitude": -40.3059, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5210406, - "municipio": "Itaberaí", - "latitude": -16.0206, - "longitude": -49.806, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2803104, - "municipio": "Itabi", - "latitude": -10.1248, - "longitude": -37.1056, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3131703, - "municipio": "Itabira", - "latitude": -19.6239, - "longitude": -43.2312, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3131802, - "municipio": "Itabirinha", - "latitude": -18.5712, - "longitude": -41.234, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3131901, - "municipio": "Itabirito", - "latitude": -20.2501, - "longitude": -43.8038, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3301900, - "municipio": "Itaboraí", - "latitude": -22.7565, - "longitude": -42.8639, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2914802, - "municipio": "Itabuna", - "latitude": -14.7876, - "longitude": -39.2781, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1710508, - "municipio": "Itacajá", - "latitude": -8.39293, - "longitude": -47.7726, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3132008, - "municipio": "Itacambira", - "latitude": -17.0625, - "longitude": -43.3069, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3132107, - "municipio": "Itacarambi", - "latitude": -15.089, - "longitude": -44.095, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2914901, - "municipio": "Itacaré", - "latitude": -14.2784, - "longitude": -38.9959, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1301902, - "municipio": "Itacoatiara", - "latitude": -3.13861, - "longitude": -58.4449, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2607406, - "municipio": "Itacuruba", - "latitude": -8.82231, - "longitude": -38.6975, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4310553, - "municipio": "Itacurubi", - "latitude": -28.7913, - "longitude": -55.2447, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2915007, - "municipio": "Itaeté", - "latitude": -12.9831, - "longitude": -40.9677, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2915106, - "municipio": "Itagi", - "latitude": -14.1615, - "longitude": -40.0131, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2915205, - "municipio": "Itagibá", - "latitude": -14.2782, - "longitude": -39.8449, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2915304, - "municipio": "Itagimirim", - "latitude": -16.0819, - "longitude": -39.6133, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3202702, - "municipio": "Itaguaçu", - "latitude": -19.8018, - "longitude": -40.8601, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2915353, - "municipio": "Itaguaçu da Bahia", - "latitude": -11.0147, - "longitude": -42.3997, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3302007, - "municipio": "Itaguaí", - "latitude": -22.8636, - "longitude": -43.7798, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4110904, - "municipio": "Itaguajé", - "latitude": -22.6183, - "longitude": -51.9674, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3132206, - "municipio": "Itaguara", - "latitude": -20.3947, - "longitude": -44.4875, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5210562, - "municipio": "Itaguari", - "latitude": -15.918, - "longitude": -49.6071, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5210604, - "municipio": "Itaguaru", - "latitude": -15.7565, - "longitude": -49.6354, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1710706, - "municipio": "Itaguatins", - "latitude": -5.77267, - "longitude": -47.4864, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3521804, - "municipio": "Itaí", - "latitude": -23.4213, - "longitude": -49.092, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2607505, - "municipio": "Itaíba", - "latitude": -8.94569, - "longitude": -37.4173, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2306207, - "municipio": "Itaiçaba", - "latitude": -4.67146, - "longitude": -37.833, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2205003, - "municipio": "Itainópolis", - "latitude": -7.44336, - "longitude": -41.4687, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4208104, - "municipio": "Itaiópolis", - "latitude": -26.339, - "longitude": -49.9092, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2105351, - "municipio": "Itaipava do Grajaú", - "latitude": -5.14252, - "longitude": -45.7877, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3132305, - "municipio": "Itaipé", - "latitude": -17.4014, - "longitude": -41.6697, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4110953, - "municipio": "Itaipulândia", - "latitude": -25.1366, - "longitude": -54.3001, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2306256, - "municipio": "Itaitinga", - "latitude": -3.96577, - "longitude": -38.5298, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1503606, - "municipio": "Itaituba", - "latitude": -4.2667, - "longitude": -55.9926, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2404853, - "municipio": "Itajá", - "latitude": -5.63894, - "longitude": -36.8712, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5210802, - "municipio": "Itajá", - "latitude": -19.0673, - "longitude": -51.5495, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4208203, - "municipio": "Itajaí", - "latitude": -26.9101, - "longitude": -48.6705, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3521903, - "municipio": "Itajobi", - "latitude": -21.3123, - "longitude": -49.0629, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3522000, - "municipio": "Itaju", - "latitude": -21.9857, - "longitude": -48.8116, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2915403, - "municipio": "Itaju do Colônia", - "latitude": -15.1366, - "longitude": -39.7283, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3132404, - "municipio": "Itajubá", - "latitude": -22.4225, - "longitude": -45.4598, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2915502, - "municipio": "Itajuípe", - "latitude": -14.6788, - "longitude": -39.3698, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3302056, - "municipio": "Italva", - "latitude": -21.4296, - "longitude": -41.7014, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2915601, - "municipio": "Itamaraju", - "latitude": -17.0378, - "longitude": -39.5386, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3132503, - "municipio": "Itamarandiba", - "latitude": -17.8552, - "longitude": -42.8561, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1301951, - "municipio": "Itamarati", - "latitude": -6.43852, - "longitude": -68.2437, - "codigo_uf": 13, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 3132602, - "municipio": "Itamarati de Minas", - "latitude": -21.4179, - "longitude": -42.813, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2915700, - "municipio": "Itamari", - "latitude": -13.7782, - "longitude": -39.683, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3132701, - "municipio": "Itambacuri", - "latitude": -18.035, - "longitude": -41.683, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4111001, - "municipio": "Itambaracá", - "latitude": -23.0181, - "longitude": -50.4097, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4111100, - "municipio": "Itambé", - "latitude": -23.6601, - "longitude": -51.9912, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2607653, - "municipio": "Itambé", - "latitude": -7.41403, - "longitude": -35.0963, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2915809, - "municipio": "Itambé", - "latitude": -15.2429, - "longitude": -40.63, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3132800, - "municipio": "Itambé do Mato Dentro", - "latitude": -19.4158, - "longitude": -43.3182, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3132909, - "municipio": "Itamogi", - "latitude": -21.0758, - "longitude": -47.046, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3133006, - "municipio": "Itamonte", - "latitude": -22.2859, - "longitude": -44.868, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2915908, - "municipio": "Itanagra", - "latitude": -12.2614, - "longitude": -38.0436, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3522109, - "municipio": "Itanhaém", - "latitude": -24.1736, - "longitude": -46.788, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3133105, - "municipio": "Itanhandu", - "latitude": -22.2942, - "longitude": -44.9382, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5104542, - "municipio": "Itanhangá", - "latitude": -12.2259, - "longitude": -56.6463, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2916005, - "municipio": "Itanhém", - "latitude": -17.1642, - "longitude": -40.3321, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3133204, - "municipio": "Itanhomi", - "latitude": -19.1736, - "longitude": -41.863, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3133303, - "municipio": "Itaobim", - "latitude": -16.5571, - "longitude": -41.5017, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3522158, - "municipio": "Itaóca", - "latitude": -24.6393, - "longitude": -48.8413, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3302106, - "municipio": "Itaocara", - "latitude": -21.6748, - "longitude": -42.0758, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5210901, - "municipio": "Itapaci", - "latitude": -14.9522, - "longitude": -49.5511, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3133402, - "municipio": "Itapagipe", - "latitude": -19.9062, - "longitude": -49.3781, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2306306, - "municipio": "Itapajé", - "latitude": -3.68314, - "longitude": -39.5855, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2916104, - "municipio": "Itaparica", - "latitude": -12.8932, - "longitude": -38.68, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2916203, - "municipio": "Itapé", - "latitude": -14.8876, - "longitude": -39.4239, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2916302, - "municipio": "Itapebi", - "latitude": -15.9551, - "longitude": -39.5329, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3133501, - "municipio": "Itapecerica", - "latitude": -20.4704, - "longitude": -45.127, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3522208, - "municipio": "Itapecerica da Serra", - "latitude": -23.7161, - "longitude": -46.8572, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2105401, - "municipio": "Itapecuru Mirim", - "latitude": -3.40202, - "longitude": -44.3508, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4111209, - "municipio": "Itapejara d'Oeste", - "latitude": -25.9619, - "longitude": -52.8152, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4208302, - "municipio": "Itapema", - "latitude": -27.0861, - "longitude": -48.616, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3202801, - "municipio": "Itapemirim", - "latitude": -21.0095, - "longitude": -40.8307, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4111258, - "municipio": "Itaperuçu", - "latitude": -25.2193, - "longitude": -49.3454, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3302205, - "municipio": "Itaperuna", - "latitude": -21.1997, - "longitude": -41.8799, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2607703, - "municipio": "Itapetim", - "latitude": -7.37178, - "longitude": -37.1863, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2916401, - "municipio": "Itapetinga", - "latitude": -15.2475, - "longitude": -40.2482, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3522307, - "municipio": "Itapetininga", - "latitude": -23.5886, - "longitude": -48.0483, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3522406, - "municipio": "Itapeva", - "latitude": -23.9788, - "longitude": -48.8764, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3133600, - "municipio": "Itapeva", - "latitude": -22.7665, - "longitude": -46.2241, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3522505, - "municipio": "Itapevi", - "latitude": -23.5488, - "longitude": -46.9327, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2916500, - "municipio": "Itapicuru", - "latitude": -11.3088, - "longitude": -38.2262, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2306405, - "municipio": "Itapipoca", - "latitude": -3.49933, - "longitude": -39.5836, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3522604, - "municipio": "Itapira", - "latitude": -22.4357, - "longitude": -46.8224, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1302009, - "municipio": "Itapiranga", - "latitude": -2.74081, - "longitude": -58.0293, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4208401, - "municipio": "Itapiranga", - "latitude": -27.1659, - "longitude": -53.7166, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5211008, - "municipio": "Itapirapuã", - "latitude": -15.8205, - "longitude": -50.6094, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3522653, - "municipio": "Itapirapuã Paulista", - "latitude": -24.572, - "longitude": -49.1661, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1710904, - "municipio": "Itapiratins", - "latitude": -8.37982, - "longitude": -48.1072, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2607752, - "municipio": "Itapissuma", - "latitude": -7.76798, - "longitude": -34.8971, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2916609, - "municipio": "Itapitanga", - "latitude": -14.4139, - "longitude": -39.5657, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2306504, - "municipio": "Itapiúna", - "latitude": -4.55516, - "longitude": -38.9281, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4208450, - "municipio": "Itapoá", - "latitude": -26.1158, - "longitude": -48.6182, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3522703, - "municipio": "Itápolis", - "latitude": -21.5942, - "longitude": -48.8149, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5004502, - "municipio": "Itaporã", - "latitude": -22.08, - "longitude": -54.7934, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1711100, - "municipio": "Itaporã do Tocantins", - "latitude": -8.57172, - "longitude": -48.6895, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3522802, - "municipio": "Itaporanga", - "latitude": -23.7043, - "longitude": -49.4819, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2507002, - "municipio": "Itaporanga", - "latitude": -7.30202, - "longitude": -38.1504, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2803203, - "municipio": "Itaporanga d'Ajuda", - "latitude": -10.99, - "longitude": -37.3078, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2507101, - "municipio": "Itapororoca", - "latitude": -6.82374, - "longitude": -35.2406, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1101104, - "municipio": "Itapuã do Oeste", - "latitude": -9.19687, - "longitude": -63.1809, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4310579, - "municipio": "Itapuca", - "latitude": -28.7768, - "longitude": -52.1693, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3522901, - "municipio": "Itapuí", - "latitude": -22.2324, - "longitude": -48.7197, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3523008, - "municipio": "Itapura", - "latitude": -20.6419, - "longitude": -51.5063, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5211206, - "municipio": "Itapuranga", - "latitude": -15.5606, - "longitude": -49.949, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3523107, - "municipio": "Itaquaquecetuba", - "latitude": -23.4835, - "longitude": -46.3457, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2916708, - "municipio": "Itaquara", - "latitude": -13.4459, - "longitude": -39.9378, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4310603, - "municipio": "Itaqui", - "latitude": -29.1311, - "longitude": -56.5515, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5004601, - "municipio": "Itaquiraí", - "latitude": -23.4779, - "longitude": -54.187, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2607802, - "municipio": "Itaquitinga", - "latitude": -7.66373, - "longitude": -35.1002, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3202900, - "municipio": "Itarana", - "latitude": -19.875, - "longitude": -40.8753, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2916807, - "municipio": "Itarantim", - "latitude": -15.6528, - "longitude": -40.065, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3523206, - "municipio": "Itararé", - "latitude": -24.1085, - "longitude": -49.3352, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2306553, - "municipio": "Itarema", - "latitude": -2.9248, - "longitude": -39.9167, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3523305, - "municipio": "Itariri", - "latitude": -24.2834, - "longitude": -47.1736, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5211305, - "municipio": "Itarumã", - "latitude": -18.7646, - "longitude": -51.3485, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4310652, - "municipio": "Itati", - "latitude": -29.4974, - "longitude": -50.1016, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3302254, - "municipio": "Itatiaia", - "latitude": -22.4897, - "longitude": -44.5675, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3133709, - "municipio": "Itatiaiuçu", - "latitude": -20.1983, - "longitude": -44.4211, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3523404, - "municipio": "Itatiba", - "latitude": -23.0035, - "longitude": -46.8464, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4310702, - "municipio": "Itatiba do Sul", - "latitude": -27.3846, - "longitude": -52.4538, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2916856, - "municipio": "Itatim", - "latitude": -12.7099, - "longitude": -39.6952, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3523503, - "municipio": "Itatinga", - "latitude": -23.1047, - "longitude": -48.6157, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2306603, - "municipio": "Itatira", - "latitude": -4.52608, - "longitude": -39.6202, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2507200, - "municipio": "Itatuba", - "latitude": -7.38115, - "longitude": -35.638, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2404903, - "municipio": "Itaú", - "latitude": -5.8363, - "longitude": -37.9912, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3133758, - "municipio": "Itaú de Minas", - "latitude": -20.7375, - "longitude": -46.7525, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5104559, - "municipio": "Itaúba", - "latitude": -11.0614, - "longitude": -55.2766, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1600253, - "municipio": "Itaubal", - "latitude": 0.602185, - "longitude": -50.6996, - "codigo_uf": 16, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5211404, - "municipio": "Itauçu", - "latitude": -16.2029, - "longitude": -49.6109, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2205102, - "municipio": "Itaueira", - "latitude": -7.59989, - "longitude": -43.0249, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3133808, - "municipio": "Itaúna", - "latitude": -20.0818, - "longitude": -44.5801, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4111308, - "municipio": "Itaúna do Sul", - "latitude": -22.7289, - "longitude": -52.8874, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3133907, - "municipio": "Itaverava", - "latitude": -20.6769, - "longitude": -43.6141, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3134004, - "municipio": "Itinga", - "latitude": -16.61, - "longitude": -41.7672, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2105427, - "municipio": "Itinga do Maranhão", - "latitude": -4.45293, - "longitude": -47.5235, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5104609, - "municipio": "Itiquira", - "latitude": -17.2147, - "longitude": -54.1422, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3523602, - "municipio": "Itirapina", - "latitude": -22.2562, - "longitude": -47.8166, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3523701, - "municipio": "Itirapuã", - "latitude": -20.6416, - "longitude": -47.2194, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2916906, - "municipio": "Itiruçu", - "latitude": -13.529, - "longitude": -40.1472, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2917003, - "municipio": "Itiúba", - "latitude": -10.6948, - "longitude": -39.8446, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3523800, - "municipio": "Itobi", - "latitude": -21.7309, - "longitude": -46.9743, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2917102, - "municipio": "Itororó", - "latitude": -15.11, - "longitude": -40.0684, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3523909, - "municipio": "Itu", - "latitude": -23.2544, - "longitude": -47.2927, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2917201, - "municipio": "Ituaçu", - "latitude": -13.8107, - "longitude": -41.3003, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2917300, - "municipio": "Ituberá", - "latitude": -13.7249, - "longitude": -39.1481, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3134103, - "municipio": "Itueta", - "latitude": -19.3999, - "longitude": -41.1746, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3134202, - "municipio": "Ituiutaba", - "latitude": -18.9772, - "longitude": -49.4639, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5211503, - "municipio": "Itumbiara", - "latitude": -18.4093, - "longitude": -49.2158, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3134301, - "municipio": "Itumirim", - "latitude": -21.3171, - "longitude": -44.8724, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3524006, - "municipio": "Itupeva", - "latitude": -23.1526, - "longitude": -47.0593, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1503705, - "municipio": "Itupiranga", - "latitude": -5.13272, - "longitude": -49.3358, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4208500, - "municipio": "Ituporanga", - "latitude": -27.4101, - "longitude": -49.5963, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3134400, - "municipio": "Iturama", - "latitude": -19.7276, - "longitude": -50.1966, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3134509, - "municipio": "Itutinga", - "latitude": -21.3, - "longitude": -44.6567, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3524105, - "municipio": "Ituverava", - "latitude": -20.3355, - "longitude": -47.7902, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2917334, - "municipio": "Iuiú", - "latitude": -14.4054, - "longitude": -43.5595, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3203007, - "municipio": "Iúna", - "latitude": -20.3531, - "longitude": -41.5334, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4111407, - "municipio": "Ivaí", - "latitude": -25.0067, - "longitude": -50.857, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4111506, - "municipio": "Ivaiporã", - "latitude": -24.2485, - "longitude": -51.6754, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4111555, - "municipio": "Ivaté", - "latitude": -23.4072, - "longitude": -53.3687, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4111605, - "municipio": "Ivatuba", - "latitude": -23.6187, - "longitude": -52.2203, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5004700, - "municipio": "Ivinhema", - "latitude": -22.3046, - "longitude": -53.8184, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5211602, - "municipio": "Ivolândia", - "latitude": -16.5995, - "longitude": -50.7921, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4310751, - "municipio": "Ivorá", - "latitude": -29.5232, - "longitude": -53.5842, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4310801, - "municipio": "Ivoti", - "latitude": -29.5995, - "longitude": -51.1533, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2607901, - "municipio": "Jaboatão dos Guararapes", - "latitude": -8.11298, - "longitude": -35.015, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4208609, - "municipio": "Jaborá", - "latitude": -27.1782, - "longitude": -51.7279, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2917359, - "municipio": "Jaborandi", - "latitude": -13.6071, - "longitude": -44.4255, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3524204, - "municipio": "Jaborandi", - "latitude": -20.6884, - "longitude": -48.4112, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4111704, - "municipio": "Jaboti", - "latitude": -23.7435, - "longitude": -50.0729, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4310850, - "municipio": "Jaboticaba", - "latitude": -27.6347, - "longitude": -53.2762, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3524303, - "municipio": "Jaboticabal", - "latitude": -21.252, - "longitude": -48.3252, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3134608, - "municipio": "Jaboticatubas", - "latitude": -19.5119, - "longitude": -43.7373, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2405009, - "municipio": "Jaçanã", - "latitude": -6.41856, - "longitude": -36.2031, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2917409, - "municipio": "Jacaraci", - "latitude": -14.8541, - "longitude": -42.4329, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2507309, - "municipio": "Jacaraú", - "latitude": -6.61453, - "longitude": -35.289, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2703403, - "municipio": "Jacaré dos Homens", - "latitude": -9.63545, - "longitude": -37.2076, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1503754, - "municipio": "Jacareacanga", - "latitude": -6.21469, - "longitude": -57.7544, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3524402, - "municipio": "Jacareí", - "latitude": -23.2983, - "longitude": -45.9658, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4111803, - "municipio": "Jacarezinho", - "latitude": -23.1591, - "longitude": -49.9739, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3524501, - "municipio": "Jaci", - "latitude": -20.8805, - "longitude": -49.5797, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5104807, - "municipio": "Jaciara", - "latitude": -15.9548, - "longitude": -54.9733, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3134707, - "municipio": "Jacinto", - "latitude": -16.1428, - "longitude": -40.295, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4208708, - "municipio": "Jacinto Machado", - "latitude": -28.9961, - "longitude": -49.7623, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2917508, - "municipio": "Jacobina", - "latitude": -11.1812, - "longitude": -40.5117, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2205151, - "municipio": "Jacobina do Piauí", - "latitude": -7.93063, - "longitude": -41.2075, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3134806, - "municipio": "Jacuí", - "latitude": -21.0137, - "longitude": -46.7359, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2703502, - "municipio": "Jacuípe", - "latitude": -8.83951, - "longitude": -35.4591, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4310876, - "municipio": "Jacuizinho", - "latitude": -29.0401, - "longitude": -53.0657, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1503804, - "municipio": "Jacundá", - "latitude": -4.44617, - "longitude": -49.1153, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3524600, - "municipio": "Jacupiranga", - "latitude": -24.6963, - "longitude": -48.0064, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4310900, - "municipio": "Jacutinga", - "latitude": -27.7291, - "longitude": -52.5372, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3134905, - "municipio": "Jacutinga", - "latitude": -22.286, - "longitude": -46.6166, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4111902, - "municipio": "Jaguapitã", - "latitude": -23.1104, - "longitude": -51.5342, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2917607, - "municipio": "Jaguaquara", - "latitude": -13.5248, - "longitude": -39.964, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3135001, - "municipio": "Jaguaraçu", - "latitude": -19.647, - "longitude": -42.7498, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4311007, - "municipio": "Jaguarão", - "latitude": -32.5604, - "longitude": -53.377, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2917706, - "municipio": "Jaguarari", - "latitude": -10.2569, - "longitude": -40.1999, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3203056, - "municipio": "Jaguaré", - "latitude": -18.907, - "longitude": -40.0759, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2306702, - "municipio": "Jaguaretama", - "latitude": -5.6051, - "longitude": -38.7639, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4311106, - "municipio": "Jaguari", - "latitude": -29.4936, - "longitude": -54.703, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4112009, - "municipio": "Jaguariaíva", - "latitude": -24.2439, - "longitude": -49.7066, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2306801, - "municipio": "Jaguaribara", - "latitude": -5.67765, - "longitude": -38.5359, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2306900, - "municipio": "Jaguaribe", - "latitude": -5.90213, - "longitude": -38.6227, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2917805, - "municipio": "Jaguaripe", - "latitude": -13.1109, - "longitude": -38.8939, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3524709, - "municipio": "Jaguariúna", - "latitude": -22.7037, - "longitude": -46.9851, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2307007, - "municipio": "Jaguaruana", - "latitude": -4.83151, - "longitude": -37.781, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4208807, - "municipio": "Jaguaruna", - "latitude": -28.6146, - "longitude": -49.0296, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3135050, - "municipio": "Jaíba", - "latitude": -15.3432, - "longitude": -43.6688, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2205201, - "municipio": "Jaicós", - "latitude": -7.36229, - "longitude": -41.1371, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3524808, - "municipio": "Jales", - "latitude": -20.2672, - "longitude": -50.5494, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3524907, - "municipio": "Jambeiro", - "latitude": -23.2522, - "longitude": -45.6942, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3135076, - "municipio": "Jampruca", - "latitude": -18.461, - "longitude": -41.809, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3135100, - "municipio": "Janaúba", - "latitude": -15.8022, - "longitude": -43.3132, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5211701, - "municipio": "Jandaia", - "latitude": -17.0481, - "longitude": -50.1453, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4112108, - "municipio": "Jandaia do Sul", - "latitude": -23.6011, - "longitude": -51.6448, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2405108, - "municipio": "Jandaíra", - "latitude": -5.35211, - "longitude": -36.1278, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2917904, - "municipio": "Jandaíra", - "latitude": -11.5616, - "longitude": -37.7853, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3525003, - "municipio": "Jandira", - "latitude": -23.5275, - "longitude": -46.9023, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2405207, - "municipio": "Janduís", - "latitude": -6.01474, - "longitude": -37.4048, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5104906, - "municipio": "Jangada", - "latitude": -15.235, - "longitude": -56.4917, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4112207, - "municipio": "Janiópolis", - "latitude": -24.1401, - "longitude": -52.7784, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3135209, - "municipio": "Januária", - "latitude": -15.4802, - "longitude": -44.3639, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2405306, - "municipio": "Januário Cicco (Boa Saúde)", - "latitude": -6.16566, - "longitude": -35.6219, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3135308, - "municipio": "Japaraíba", - "latitude": -20.1442, - "longitude": -45.5015, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2703601, - "municipio": "Japaratinga", - "latitude": -9.08746, - "longitude": -35.2634, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2803302, - "municipio": "Japaratuba", - "latitude": -10.5849, - "longitude": -36.9418, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3302270, - "municipio": "Japeri", - "latitude": -22.6435, - "longitude": -43.6602, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2405405, - "municipio": "Japi", - "latitude": -6.46544, - "longitude": -35.9346, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4112306, - "municipio": "Japira", - "latitude": -23.8142, - "longitude": -50.1422, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2803401, - "municipio": "Japoatã", - "latitude": -10.3477, - "longitude": -36.8045, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3135357, - "municipio": "Japonvar", - "latitude": -15.9891, - "longitude": -44.2758, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5004809, - "municipio": "Japorã", - "latitude": -23.8903, - "longitude": -54.4059, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4112405, - "municipio": "Japurá", - "latitude": -23.4693, - "longitude": -52.5557, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1302108, - "municipio": "Japurá", - "latitude": -1.88237, - "longitude": -66.9291, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2607950, - "municipio": "Jaqueira", - "latitude": -8.72618, - "longitude": -35.7942, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4311122, - "municipio": "Jaquirana", - "latitude": -28.8811, - "longitude": -50.3637, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5211800, - "municipio": "Jaraguá", - "latitude": -15.7529, - "longitude": -49.3344, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4208906, - "municipio": "Jaraguá do Sul", - "latitude": -26.4851, - "longitude": -49.0713, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5004908, - "municipio": "Jaraguari", - "latitude": -20.1386, - "longitude": -54.3996, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2703700, - "municipio": "Jaramataia", - "latitude": -9.66224, - "longitude": -37.0046, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2307106, - "municipio": "Jardim", - "latitude": -7.57599, - "longitude": -39.2826, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5005004, - "municipio": "Jardim", - "latitude": -21.4799, - "longitude": -56.1489, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4112504, - "municipio": "Jardim Alegre", - "latitude": -24.1809, - "longitude": -51.6902, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2405504, - "municipio": "Jardim de Angicos", - "latitude": -5.64999, - "longitude": -35.9713, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2405603, - "municipio": "Jardim de Piranhas", - "latitude": -6.37665, - "longitude": -37.3496, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2205250, - "municipio": "Jardim do Mulato", - "latitude": -6.099, - "longitude": -42.63, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2405702, - "municipio": "Jardim do Seridó", - "latitude": -6.58047, - "longitude": -36.7736, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4112603, - "municipio": "Jardim Olinda", - "latitude": -22.5523, - "longitude": -52.0503, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3525102, - "municipio": "Jardinópolis", - "latitude": -21.0176, - "longitude": -47.7606, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4208955, - "municipio": "Jardinópolis", - "latitude": -26.7191, - "longitude": -52.8625, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4311130, - "municipio": "Jari", - "latitude": -29.2922, - "longitude": -54.2237, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3525201, - "municipio": "Jarinu", - "latitude": -23.1039, - "longitude": -46.728, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100114, - "municipio": "Jaru", - "latitude": -10.4318, - "longitude": -62.4788, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5211909, - "municipio": "Jataí", - "latitude": -17.8784, - "longitude": -51.7204, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4112702, - "municipio": "Jataizinho", - "latitude": -23.2578, - "longitude": -50.9777, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2608008, - "municipio": "Jataúba", - "latitude": -7.97668, - "longitude": -36.4943, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5005103, - "municipio": "Jateí", - "latitude": -22.4806, - "longitude": -54.3079, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2307205, - "municipio": "Jati", - "latitude": -7.6797, - "longitude": -39.0029, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2105450, - "municipio": "Jatobá", - "latitude": -5.82282, - "longitude": -44.2153, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2608057, - "municipio": "Jatobá", - "latitude": -9.17476, - "longitude": -38.2607, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2205276, - "municipio": "Jatobá do Piauí", - "latitude": -4.77025, - "longitude": -41.817, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3525300, - "municipio": "Jaú", - "latitude": -22.2936, - "longitude": -48.5592, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1711506, - "municipio": "Jaú do Tocantins", - "latitude": -12.6509, - "longitude": -48.589, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5212006, - "municipio": "Jaupaci", - "latitude": -16.1773, - "longitude": -50.9508, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5105002, - "municipio": "Jauru", - "latitude": -15.3342, - "longitude": -58.8723, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3135407, - "municipio": "Jeceaba", - "latitude": -20.5339, - "longitude": -43.9894, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3135456, - "municipio": "Jenipapo de Minas", - "latitude": -17.0831, - "longitude": -42.2589, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2105476, - "municipio": "Jenipapo dos Vieiras", - "latitude": -5.36237, - "longitude": -45.6356, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3135506, - "municipio": "Jequeri", - "latitude": -20.4542, - "longitude": -42.6651, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2703759, - "municipio": "Jequiá da Praia", - "latitude": -10.0133, - "longitude": -36.0142, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2918001, - "municipio": "Jequié", - "latitude": -13.8509, - "longitude": -40.0877, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3135605, - "municipio": "Jequitaí", - "latitude": -17.229, - "longitude": -44.4376, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3135704, - "municipio": "Jequitibá", - "latitude": -19.2345, - "longitude": -44.0304, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3135803, - "municipio": "Jequitinhonha", - "latitude": -16.4375, - "longitude": -41.0117, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2918100, - "municipio": "Jeremoabo", - "latitude": -10.0685, - "longitude": -38.3471, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2507408, - "municipio": "Jericó", - "latitude": -6.54577, - "longitude": -37.8036, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3525409, - "municipio": "Jeriquara", - "latitude": -20.3116, - "longitude": -47.5918, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3203106, - "municipio": "Jerônimo Monteiro", - "latitude": -20.7994, - "longitude": -41.3948, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2205300, - "municipio": "Jerumenha", - "latitude": -7.09128, - "longitude": -43.5033, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3135902, - "municipio": "Jesuânia", - "latitude": -21.9887, - "longitude": -45.2911, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4112751, - "municipio": "Jesuítas", - "latitude": -24.3839, - "longitude": -53.3849, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5212055, - "municipio": "Jesúpolis", - "latitude": -15.9484, - "longitude": -49.3739, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100122, - "municipio": "Ji-Paraná", - "latitude": -10.8777, - "longitude": -61.9322, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2307254, - "municipio": "Jijoca de Jericoacoara", - "latitude": -2.79331, - "longitude": -40.5127, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2918209, - "municipio": "Jiquiriçá", - "latitude": -13.2621, - "longitude": -39.5737, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2918308, - "municipio": "Jitaúna", - "latitude": -14.0131, - "longitude": -39.8969, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4209003, - "municipio": "Joaçaba", - "latitude": -27.1721, - "longitude": -51.5108, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3136009, - "municipio": "Joaíma", - "latitude": -16.6522, - "longitude": -41.0229, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3136108, - "municipio": "Joanésia", - "latitude": -19.1729, - "longitude": -42.6775, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3525508, - "municipio": "Joanópolis", - "latitude": -22.927, - "longitude": -46.2741, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2608107, - "municipio": "João Alfredo", - "latitude": -7.86565, - "longitude": -35.5787, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2405801, - "municipio": "João Câmara", - "latitude": -5.54094, - "longitude": -35.8122, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2205359, - "municipio": "João Costa", - "latitude": -8.50736, - "longitude": -42.4264, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2405900, - "municipio": "João Dias", - "latitude": -6.27215, - "longitude": -37.7885, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2918357, - "municipio": "João Dourado", - "latitude": -11.3486, - "longitude": -41.6548, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2105500, - "municipio": "João Lisboa", - "latitude": -5.44363, - "longitude": -47.4064, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3136207, - "municipio": "João Monlevade", - "latitude": -19.8126, - "longitude": -43.1735, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3203130, - "municipio": "João Neiva", - "latitude": -19.7577, - "longitude": -40.386, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2507507, - "municipio": "João Pessoa", - "latitude": -7.11509, - "longitude": -34.8641, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3136306, - "municipio": "João Pinheiro", - "latitude": -17.7398, - "longitude": -46.1715, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3525607, - "municipio": "João Ramalho", - "latitude": -22.2473, - "longitude": -50.7694, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3136405, - "municipio": "Joaquim Felício", - "latitude": -17.758, - "longitude": -44.1643, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2703809, - "municipio": "Joaquim Gomes", - "latitude": -9.1328, - "longitude": -35.7474, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2608206, - "municipio": "Joaquim Nabuco", - "latitude": -8.62281, - "longitude": -35.5288, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2205409, - "municipio": "Joaquim Pires", - "latitude": -3.50164, - "longitude": -42.1865, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4112801, - "municipio": "Joaquim Távora", - "latitude": -23.4987, - "longitude": -49.909, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2513653, - "municipio": "Joca Claudino", - "latitude": -6.48362, - "longitude": -38.4764, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2205458, - "municipio": "Joca Marques", - "latitude": -3.4804, - "longitude": -42.4255, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4311155, - "municipio": "Jóia", - "latitude": -28.6435, - "longitude": -54.1141, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4209102, - "municipio": "Joinville", - "latitude": -26.3045, - "longitude": -48.8487, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3136504, - "municipio": "Jordânia", - "latitude": -15.9009, - "longitude": -40.1841, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1200328, - "municipio": "Jordão", - "latitude": -9.43091, - "longitude": -71.8974, - "codigo_uf": 12, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 4209151, - "municipio": "José Boiteux", - "latitude": -26.9566, - "longitude": -49.6286, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3525706, - "municipio": "José Bonifácio", - "latitude": -21.0551, - "longitude": -49.6892, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2406007, - "municipio": "José da Penha", - "latitude": -6.31095, - "longitude": -38.2823, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2205508, - "municipio": "José de Freitas", - "latitude": -4.75146, - "longitude": -42.5746, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3136520, - "municipio": "José Gonçalves de Minas", - "latitude": -16.9053, - "longitude": -42.6014, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3136553, - "municipio": "José Raydan", - "latitude": -18.2195, - "longitude": -42.4946, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2105609, - "municipio": "Joselândia", - "latitude": -4.98611, - "longitude": -44.6958, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3136579, - "municipio": "Josenópolis", - "latitude": -16.5417, - "longitude": -42.5151, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5212105, - "municipio": "Joviânia", - "latitude": -17.802, - "longitude": -49.6197, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5105101, - "municipio": "Juara", - "latitude": -11.2639, - "longitude": -57.5244, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2507606, - "municipio": "Juarez Távora", - "latitude": -7.1713, - "longitude": -35.5686, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1711803, - "municipio": "Juarina", - "latitude": -8.11951, - "longitude": -49.0643, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3136652, - "municipio": "Juatuba", - "latitude": -19.9448, - "longitude": -44.3451, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2507705, - "municipio": "Juazeirinho", - "latitude": -7.06092, - "longitude": -36.5793, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2918407, - "municipio": "Juazeiro", - "latitude": -9.41622, - "longitude": -40.5033, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2307304, - "municipio": "Juazeiro do Norte", - "latitude": -7.19621, - "longitude": -39.3076, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2205516, - "municipio": "Juazeiro do Piauí", - "latitude": -5.17459, - "longitude": -41.6976, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2307403, - "municipio": "Jucás", - "latitude": -6.51523, - "longitude": -39.5187, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2608255, - "municipio": "Jucati", - "latitude": -8.70195, - "longitude": -36.4871, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2918456, - "municipio": "Jucuruçu", - "latitude": -16.8488, - "longitude": -40.1641, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2406106, - "municipio": "Jucurutu", - "latitude": -6.0306, - "longitude": -37.009, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5105150, - "municipio": "Juína", - "latitude": -11.3728, - "longitude": -58.7483, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3136702, - "municipio": "Juiz de Fora", - "latitude": -21.7595, - "longitude": -43.3398, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2205524, - "municipio": "Júlio Borges", - "latitude": -10.3225, - "longitude": -44.2381, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4311205, - "municipio": "Júlio de Castilhos", - "latitude": -29.2299, - "longitude": -53.6772, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3525805, - "municipio": "Júlio Mesquita", - "latitude": -22.0112, - "longitude": -49.7873, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3525854, - "municipio": "Jumirim", - "latitude": -23.0884, - "longitude": -47.7868, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2105658, - "municipio": "Junco do Maranhão", - "latitude": -1.83888, - "longitude": -46.09, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2507804, - "municipio": "Junco do Seridó", - "latitude": -6.99269, - "longitude": -36.7166, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2406155, - "municipio": "Jundiá", - "latitude": -6.26866, - "longitude": -35.3495, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2703908, - "municipio": "Jundiá", - "latitude": -8.93297, - "longitude": -35.5669, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3525904, - "municipio": "Jundiaí", - "latitude": -23.1852, - "longitude": -46.8974, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4112900, - "municipio": "Jundiaí do Sul", - "latitude": -23.4357, - "longitude": -50.2496, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2704005, - "municipio": "Junqueiro", - "latitude": -9.90696, - "longitude": -36.4803, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3526001, - "municipio": "Junqueirópolis", - "latitude": -21.5103, - "longitude": -51.4342, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2608305, - "municipio": "Jupi", - "latitude": -8.70904, - "longitude": -36.4126, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4209177, - "municipio": "Jupiá", - "latitude": -26.395, - "longitude": -52.7298, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3526100, - "municipio": "Juquiá", - "latitude": -24.3101, - "longitude": -47.6426, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3526209, - "municipio": "Juquitiba", - "latitude": -23.9244, - "longitude": -47.0653, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3136801, - "municipio": "Juramento", - "latitude": -16.8473, - "longitude": -43.5865, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4112959, - "municipio": "Juranda", - "latitude": -24.4209, - "longitude": -52.8413, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2608404, - "municipio": "Jurema", - "latitude": -8.70714, - "longitude": -36.1347, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2205532, - "municipio": "Jurema", - "latitude": -9.21992, - "longitude": -43.1337, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2507903, - "municipio": "Juripiranga", - "latitude": -7.36176, - "longitude": -35.2321, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2508000, - "municipio": "Juru", - "latitude": -7.52983, - "longitude": -37.815, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1302207, - "municipio": "Juruá", - "latitude": -3.48438, - "longitude": -66.0718, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3136900, - "municipio": "Juruaia", - "latitude": -21.2493, - "longitude": -46.5735, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5105176, - "municipio": "Juruena", - "latitude": -10.3178, - "longitude": -58.3592, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1503903, - "municipio": "Juruti", - "latitude": -2.16347, - "longitude": -56.0889, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5105200, - "municipio": "Juscimeira", - "latitude": -16.0633, - "longitude": -54.8859, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2918506, - "municipio": "Jussara", - "latitude": -11.0431, - "longitude": -41.9702, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5212204, - "municipio": "Jussara", - "latitude": -15.8659, - "longitude": -50.8668, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4113007, - "municipio": "Jussara", - "latitude": -23.6219, - "longitude": -52.4693, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2918555, - "municipio": "Jussari", - "latitude": -15.192, - "longitude": -39.491, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2918605, - "municipio": "Jussiape", - "latitude": -13.5155, - "longitude": -41.5882, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1302306, - "municipio": "Jutaí", - "latitude": -2.75814, - "longitude": -66.7595, - "codigo_uf": 13, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 5005152, - "municipio": "Juti", - "latitude": -22.8596, - "longitude": -54.6061, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3136959, - "municipio": "Juvenília", - "latitude": -14.2662, - "longitude": -44.1597, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4113106, - "municipio": "Kaloré", - "latitude": -23.8188, - "longitude": -51.6687, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1302405, - "municipio": "Lábrea", - "latitude": -7.26413, - "longitude": -64.7948, - "codigo_uf": 13, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 4209201, - "municipio": "Lacerdópolis", - "latitude": -27.2579, - "longitude": -51.5577, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3137007, - "municipio": "Ladainha", - "latitude": -17.6279, - "longitude": -41.7488, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5005202, - "municipio": "Ladário", - "latitude": -19.0089, - "longitude": -57.5973, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2918704, - "municipio": "Lafaiete Coutinho", - "latitude": -13.6541, - "longitude": -40.2119, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3137106, - "municipio": "Lagamar", - "latitude": -18.1759, - "longitude": -46.8063, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2803500, - "municipio": "Lagarto", - "latitude": -10.9136, - "longitude": -37.6689, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4209300, - "municipio": "Lages", - "latitude": -27.815, - "longitude": -50.3259, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2105708, - "municipio": "Lago da Pedra", - "latitude": -4.56974, - "longitude": -45.1319, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2105807, - "municipio": "Lago do Junco", - "latitude": -4.609, - "longitude": -45.049, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2105948, - "municipio": "Lago dos Rodrigues", - "latitude": -4.61173, - "longitude": -44.9798, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2105906, - "municipio": "Lago Verde", - "latitude": -3.94661, - "longitude": -44.826, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2508109, - "municipio": "Lagoa", - "latitude": -6.58572, - "longitude": -37.9127, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2205557, - "municipio": "Lagoa Alegre", - "latitude": -4.51539, - "longitude": -42.6309, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4311239, - "municipio": "Lagoa Bonita do Sul", - "latitude": -29.4939, - "longitude": -53.017, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2406205, - "municipio": "Lagoa d'Anta", - "latitude": -6.39493, - "longitude": -35.5949, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2704104, - "municipio": "Lagoa da Canoa", - "latitude": -9.83291, - "longitude": -36.7413, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1711902, - "municipio": "Lagoa da Confusão", - "latitude": -10.7906, - "longitude": -49.6199, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3137205, - "municipio": "Lagoa da Prata", - "latitude": -20.0237, - "longitude": -45.5401, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2508208, - "municipio": "Lagoa de Dentro", - "latitude": -6.67213, - "longitude": -35.3706, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2608503, - "municipio": "Lagoa de Itaenga", - "latitude": -7.93005, - "longitude": -35.2874, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2406304, - "municipio": "Lagoa de Pedras", - "latitude": -6.15082, - "longitude": -35.4299, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2205573, - "municipio": "Lagoa de São Francisco", - "latitude": -4.38505, - "longitude": -41.5969, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2406403, - "municipio": "Lagoa de Velhos", - "latitude": -6.0119, - "longitude": -35.8729, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2205565, - "municipio": "Lagoa do Barro do Piauí", - "latitude": -8.47673, - "longitude": -41.5342, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2608453, - "municipio": "Lagoa do Carro", - "latitude": -7.84383, - "longitude": -35.3108, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2105922, - "municipio": "Lagoa do Mato", - "latitude": -6.05023, - "longitude": -43.5333, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2608602, - "municipio": "Lagoa do Ouro", - "latitude": -9.12567, - "longitude": -36.4584, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2205581, - "municipio": "Lagoa do Piauí", - "latitude": -5.41864, - "longitude": -42.6437, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2205599, - "municipio": "Lagoa do Sítio", - "latitude": -6.50766, - "longitude": -41.5653, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1711951, - "municipio": "Lagoa do Tocantins", - "latitude": -10.368, - "longitude": -47.538, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2608701, - "municipio": "Lagoa dos Gatos", - "latitude": -8.6602, - "longitude": -35.904, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3137304, - "municipio": "Lagoa dos Patos", - "latitude": -16.978, - "longitude": -44.5754, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4311270, - "municipio": "Lagoa dos Três Cantos", - "latitude": -28.5676, - "longitude": -52.8618, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3137403, - "municipio": "Lagoa Dourada", - "latitude": -20.9139, - "longitude": -44.0797, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3137502, - "municipio": "Lagoa Formosa", - "latitude": -18.7715, - "longitude": -46.4012, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3137536, - "municipio": "Lagoa Grande", - "latitude": -17.8323, - "longitude": -46.5165, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2608750, - "municipio": "Lagoa Grande", - "latitude": -8.99452, - "longitude": -40.2767, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2105963, - "municipio": "Lagoa Grande do Maranhão", - "latitude": -4.98893, - "longitude": -45.3816, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2406502, - "municipio": "Lagoa Nova", - "latitude": -6.09339, - "longitude": -36.4703, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2918753, - "municipio": "Lagoa Real", - "latitude": -14.0334, - "longitude": -42.1328, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2406601, - "municipio": "Lagoa Salgada", - "latitude": -6.12295, - "longitude": -35.4724, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5212253, - "municipio": "Lagoa Santa", - "latitude": -19.1832, - "longitude": -51.3998, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3137601, - "municipio": "Lagoa Santa", - "latitude": -19.6397, - "longitude": -43.8932, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2508307, - "municipio": "Lagoa Seca", - "latitude": -7.15535, - "longitude": -35.8491, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4311304, - "municipio": "Lagoa Vermelha", - "latitude": -28.2093, - "longitude": -51.5248, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4311254, - "municipio": "Lagoão", - "latitude": -29.2348, - "longitude": -52.7997, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3526308, - "municipio": "Lagoinha", - "latitude": -23.0846, - "longitude": -45.1944, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2205540, - "municipio": "Lagoinha do Piauí", - "latitude": -5.83074, - "longitude": -42.6223, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4209409, - "municipio": "Laguna", - "latitude": -28.4843, - "longitude": -48.7772, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5005251, - "municipio": "Laguna Carapã", - "latitude": -22.5448, - "longitude": -55.1502, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2918803, - "municipio": "Laje", - "latitude": -13.1673, - "longitude": -39.4213, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3302304, - "municipio": "Laje do Muriaé", - "latitude": -21.2091, - "longitude": -42.1271, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1712009, - "municipio": "Lajeado", - "latitude": -9.74996, - "longitude": -48.3565, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4311403, - "municipio": "Lajeado", - "latitude": -29.4591, - "longitude": -51.9644, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4311429, - "municipio": "Lajeado do Bugre", - "latitude": -27.6913, - "longitude": -53.1818, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4209458, - "municipio": "Lajeado Grande", - "latitude": -26.8576, - "longitude": -52.5648, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2105989, - "municipio": "Lajeado Novo", - "latitude": -6.18539, - "longitude": -47.0293, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2918902, - "municipio": "Lajedão", - "latitude": -17.6056, - "longitude": -40.3383, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2919009, - "municipio": "Lajedinho", - "latitude": -12.3529, - "longitude": -40.9048, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2608800, - "municipio": "Lajedo", - "latitude": -8.65791, - "longitude": -36.3293, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2919058, - "municipio": "Lajedo do Tabocal", - "latitude": -13.4663, - "longitude": -40.2204, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2406700, - "municipio": "Lajes", - "latitude": -5.69322, - "longitude": -36.247, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2406809, - "municipio": "Lajes Pintadas", - "latitude": -6.14943, - "longitude": -36.1171, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3137700, - "municipio": "Lajinha", - "latitude": -20.1539, - "longitude": -41.6228, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2919108, - "municipio": "Lamarão", - "latitude": -11.773, - "longitude": -38.887, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3137809, - "municipio": "Lambari", - "latitude": -21.9671, - "longitude": -45.3498, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5105234, - "municipio": "Lambari D'Oeste", - "latitude": -15.3188, - "longitude": -58.0046, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3137908, - "municipio": "Lamim", - "latitude": -20.79, - "longitude": -43.4706, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2205607, - "municipio": "Landri Sales", - "latitude": -7.25922, - "longitude": -43.9364, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4113205, - "municipio": "Lapa", - "latitude": -25.7671, - "longitude": -49.7168, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2919157, - "municipio": "Lapão", - "latitude": -11.3851, - "longitude": -41.8286, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3203163, - "municipio": "Laranja da Terra", - "latitude": -19.8994, - "longitude": -41.0621, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3138005, - "municipio": "Laranjal", - "latitude": -21.3715, - "longitude": -42.4732, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4113254, - "municipio": "Laranjal", - "latitude": -24.8862, - "longitude": -52.47, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1600279, - "municipio": "Laranjal do Jari", - "latitude": -0.804911, - "longitude": -52.453, - "codigo_uf": 16, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3526407, - "municipio": "Laranjal Paulista", - "latitude": -23.0506, - "longitude": -47.8375, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2803609, - "municipio": "Laranjeiras", - "latitude": -10.7981, - "longitude": -37.1731, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4113304, - "municipio": "Laranjeiras do Sul", - "latitude": -25.4077, - "longitude": -52.4109, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3138104, - "municipio": "Lassance", - "latitude": -17.887, - "longitude": -44.5735, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2508406, - "municipio": "Lastro", - "latitude": -6.50603, - "longitude": -38.1742, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4209508, - "municipio": "Laurentino", - "latitude": -27.2173, - "longitude": -49.7331, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2919207, - "municipio": "Lauro de Freitas", - "latitude": -12.8978, - "longitude": -38.321, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4209607, - "municipio": "Lauro Muller", - "latitude": -28.3859, - "longitude": -49.4035, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1712157, - "municipio": "Lavandeira", - "latitude": -12.7847, - "longitude": -46.5099, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3526506, - "municipio": "Lavínia", - "latitude": -21.1639, - "longitude": -51.0412, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3138203, - "municipio": "Lavras", - "latitude": -21.248, - "longitude": -45.0009, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2307502, - "municipio": "Lavras da Mangabeira", - "latitude": -6.7448, - "longitude": -38.9706, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4311502, - "municipio": "Lavras do Sul", - "latitude": -30.8071, - "longitude": -53.8931, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3526605, - "municipio": "Lavrinhas", - "latitude": -22.57, - "longitude": -44.9024, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3138302, - "municipio": "Leandro Ferreira", - "latitude": -19.7193, - "longitude": -45.0279, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4209706, - "municipio": "Lebon Régis", - "latitude": -26.928, - "longitude": -50.6921, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3526704, - "municipio": "Leme", - "latitude": -22.1809, - "longitude": -47.3841, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3138351, - "municipio": "Leme do Prado", - "latitude": -17.0793, - "longitude": -42.6936, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2919306, - "municipio": "Lençóis", - "latitude": -12.5616, - "longitude": -41.3928, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3526803, - "municipio": "Lençóis Paulista", - "latitude": -22.6027, - "longitude": -48.8037, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4209805, - "municipio": "Leoberto Leal", - "latitude": -27.5081, - "longitude": -49.2789, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3138401, - "municipio": "Leopoldina", - "latitude": -21.5296, - "longitude": -42.6421, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5212303, - "municipio": "Leopoldo de Bulhões", - "latitude": -16.619, - "longitude": -48.7428, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4113403, - "municipio": "Leópolis", - "latitude": -23.0818, - "longitude": -50.7511, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4311601, - "municipio": "Liberato Salzano", - "latitude": -27.601, - "longitude": -53.0753, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3138500, - "municipio": "Liberdade", - "latitude": -22.0275, - "longitude": -44.3208, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2919405, - "municipio": "Licínio de Almeida", - "latitude": -14.6842, - "longitude": -42.5095, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4113429, - "municipio": "Lidianópolis", - "latitude": -24.11, - "longitude": -51.6506, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2106003, - "municipio": "Lima Campos", - "latitude": -4.51837, - "longitude": -44.4646, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3138609, - "municipio": "Lima Duarte", - "latitude": -21.8386, - "longitude": -43.7934, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3526902, - "municipio": "Limeira", - "latitude": -22.566, - "longitude": -47.397, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3138625, - "municipio": "Limeira do Oeste", - "latitude": -19.5512, - "longitude": -50.5815, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2608909, - "municipio": "Limoeiro", - "latitude": -7.8726, - "longitude": -35.4402, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2704203, - "municipio": "Limoeiro de Anadia", - "latitude": -9.74098, - "longitude": -36.5121, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1504000, - "municipio": "Limoeiro do Ajuru", - "latitude": -1.8985, - "longitude": -49.3903, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2307601, - "municipio": "Limoeiro do Norte", - "latitude": -5.14392, - "longitude": -38.0847, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4113452, - "municipio": "Lindoeste", - "latitude": -25.2596, - "longitude": -53.5733, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3527009, - "municipio": "Lindóia", - "latitude": -22.5226, - "longitude": -46.65, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4209854, - "municipio": "Lindóia do Sul", - "latitude": -27.0545, - "longitude": -52.069, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4311627, - "municipio": "Lindolfo Collor", - "latitude": -29.5859, - "longitude": -51.2141, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4311643, - "municipio": "Linha Nova", - "latitude": -29.4679, - "longitude": -51.2003, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3203205, - "municipio": "Linhares", - "latitude": -19.3946, - "longitude": -40.0643, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3527108, - "municipio": "Lins", - "latitude": -21.6718, - "longitude": -49.7526, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2508505, - "municipio": "Livramento", - "latitude": -7.37113, - "longitude": -36.9491, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2919504, - "municipio": "Livramento de Nossa Senhora", - "latitude": -13.6369, - "longitude": -41.8432, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1712405, - "municipio": "Lizarda", - "latitude": -9.59002, - "longitude": -46.6738, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4113502, - "municipio": "Loanda", - "latitude": -22.9232, - "longitude": -53.1362, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4113601, - "municipio": "Lobato", - "latitude": -23.0058, - "longitude": -51.9524, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2508554, - "municipio": "Logradouro", - "latitude": -6.61191, - "longitude": -35.4384, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4113700, - "municipio": "Londrina", - "latitude": -23.304, - "longitude": -51.1691, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3138658, - "municipio": "Lontra", - "latitude": -15.9013, - "longitude": -44.306, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4209904, - "municipio": "Lontras", - "latitude": -27.1684, - "longitude": -49.535, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3527207, - "municipio": "Lorena", - "latitude": -22.7334, - "longitude": -45.1197, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2106102, - "municipio": "Loreto", - "latitude": -7.08111, - "longitude": -45.1451, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3527256, - "municipio": "Lourdes", - "latitude": -20.966, - "longitude": -50.2263, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3527306, - "municipio": "Louveira", - "latitude": -23.0856, - "longitude": -46.9484, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5105259, - "municipio": "Lucas do Rio Verde", - "latitude": -13.0588, - "longitude": -55.9042, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3527405, - "municipio": "Lucélia", - "latitude": -21.7182, - "longitude": -51.0215, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2508604, - "municipio": "Lucena", - "latitude": -6.90258, - "longitude": -34.8748, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3527504, - "municipio": "Lucianópolis", - "latitude": -22.4294, - "longitude": -49.522, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5105309, - "municipio": "Luciara", - "latitude": -11.2219, - "longitude": -50.6676, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2406908, - "municipio": "Lucrécia", - "latitude": -6.10525, - "longitude": -37.8134, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3527603, - "municipio": "Luís Antônio", - "latitude": -21.55, - "longitude": -47.7801, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2205706, - "municipio": "Luís Correia", - "latitude": -2.88438, - "longitude": -41.6641, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2106201, - "municipio": "Luís Domingues", - "latitude": -1.27492, - "longitude": -45.867, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2919553, - "municipio": "Luís Eduardo Magalhães", - "latitude": -12.0956, - "longitude": -45.7866, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2407005, - "municipio": "Luís Gomes", - "latitude": -6.40588, - "longitude": -38.3899, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3138674, - "municipio": "Luisburgo", - "latitude": -20.4468, - "longitude": -42.0976, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3138682, - "municipio": "Luislândia", - "latitude": -16.1095, - "longitude": -44.5886, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4210001, - "municipio": "Luiz Alves", - "latitude": -26.7151, - "longitude": -48.9322, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4113734, - "municipio": "Luiziana", - "latitude": -24.2853, - "longitude": -52.269, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3527702, - "municipio": "Luiziânia", - "latitude": -21.6737, - "longitude": -50.3294, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3138708, - "municipio": "Luminárias", - "latitude": -21.5145, - "longitude": -44.9034, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4113759, - "municipio": "Lunardelli", - "latitude": -24.0821, - "longitude": -51.7368, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3527801, - "municipio": "Lupércio", - "latitude": -22.4146, - "longitude": -49.818, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4113809, - "municipio": "Lupionópolis", - "latitude": -22.755, - "longitude": -51.6601, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3527900, - "municipio": "Lutécia", - "latitude": -22.3384, - "longitude": -50.394, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3138807, - "municipio": "Luz", - "latitude": -19.7911, - "longitude": -45.6794, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4210035, - "municipio": "Luzerna", - "latitude": -27.1304, - "longitude": -51.4682, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5212501, - "municipio": "Luziânia", - "latitude": -16.253, - "longitude": -47.95, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2205805, - "municipio": "Luzilândia", - "latitude": -3.4683, - "longitude": -42.3718, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1712454, - "municipio": "Luzinópolis", - "latitude": -6.17794, - "longitude": -47.8582, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3302403, - "municipio": "Macaé", - "latitude": -22.3768, - "longitude": -41.7848, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2407104, - "municipio": "Macaíba", - "latitude": -5.85229, - "longitude": -35.3552, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2919603, - "municipio": "Macajuba", - "latitude": -12.1326, - "longitude": -40.3571, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4311718, - "municipio": "Maçambará", - "latitude": -29.1445, - "longitude": -56.0674, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2803708, - "municipio": "Macambira", - "latitude": -10.6619, - "longitude": -37.5413, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1600303, - "municipio": "Macapá", - "latitude": 0.034934, - "longitude": -51.0694, - "codigo_uf": 16, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2609006, - "municipio": "Macaparana", - "latitude": -7.55564, - "longitude": -35.4425, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2919702, - "municipio": "Macarani", - "latitude": -15.5646, - "longitude": -40.4209, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3528007, - "municipio": "Macatuba", - "latitude": -22.5002, - "longitude": -48.7102, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2407203, - "municipio": "Macau", - "latitude": -5.10795, - "longitude": -36.6318, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3528106, - "municipio": "Macaubal", - "latitude": -20.8022, - "longitude": -49.9687, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2919801, - "municipio": "Macaúbas", - "latitude": -13.0186, - "longitude": -42.6945, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3528205, - "municipio": "Macedônia", - "latitude": -20.1444, - "longitude": -50.1973, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2704302, - "municipio": "Maceió", - "latitude": -9.66599, - "longitude": -35.735, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3138906, - "municipio": "Machacalis", - "latitude": -17.0723, - "longitude": -40.7245, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4311700, - "municipio": "Machadinho", - "latitude": -27.5667, - "longitude": -51.6668, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100130, - "municipio": "Machadinho D'Oeste", - "latitude": -9.44363, - "longitude": -61.9818, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3139003, - "municipio": "Machado", - "latitude": -21.6778, - "longitude": -45.9219, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2609105, - "municipio": "Machados", - "latitude": -7.68827, - "longitude": -35.5114, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4210050, - "municipio": "Macieira", - "latitude": -26.8552, - "longitude": -51.3705, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3302452, - "municipio": "Macuco", - "latitude": -21.9813, - "longitude": -42.2533, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2919900, - "municipio": "Macururé", - "latitude": -9.16226, - "longitude": -39.0518, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2307635, - "municipio": "Madalena", - "latitude": -4.84601, - "longitude": -39.5725, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2205854, - "municipio": "Madeiro", - "latitude": -3.48624, - "longitude": -42.4981, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2919926, - "municipio": "Madre de Deus", - "latitude": -12.7446, - "longitude": -38.6153, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3139102, - "municipio": "Madre de Deus de Minas", - "latitude": -21.483, - "longitude": -44.3287, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2508703, - "municipio": "Mãe d'Água", - "latitude": -7.25201, - "longitude": -37.4322, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1504059, - "municipio": "Mãe do Rio", - "latitude": -2.05683, - "longitude": -47.5601, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2919959, - "municipio": "Maetinga", - "latitude": -14.6623, - "longitude": -41.4915, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4210100, - "municipio": "Mafra", - "latitude": -26.1159, - "longitude": -49.8086, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1504109, - "municipio": "Magalhães Barata", - "latitude": -0.803391, - "longitude": -47.6014, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2106300, - "municipio": "Magalhães de Almeida", - "latitude": -3.39232, - "longitude": -42.2117, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3528304, - "municipio": "Magda", - "latitude": -20.6445, - "longitude": -50.2305, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3302502, - "municipio": "Magé", - "latitude": -22.6632, - "longitude": -43.0315, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2920007, - "municipio": "Maiquinique", - "latitude": -15.624, - "longitude": -40.2587, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2920106, - "municipio": "Mairi", - "latitude": -11.7107, - "longitude": -40.1437, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3528403, - "municipio": "Mairinque", - "latitude": -23.5398, - "longitude": -47.185, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3528502, - "municipio": "Mairiporã", - "latitude": -23.3171, - "longitude": -46.5897, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5212600, - "municipio": "Mairipotaba", - "latitude": -17.2975, - "longitude": -49.4898, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4210209, - "municipio": "Major Gercino", - "latitude": -27.4192, - "longitude": -48.9488, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2704401, - "municipio": "Major Isidoro", - "latitude": -9.53009, - "longitude": -36.992, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2407252, - "municipio": "Major Sales", - "latitude": -6.39949, - "longitude": -38.324, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4210308, - "municipio": "Major Vieira", - "latitude": -26.3709, - "longitude": -50.3266, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3139201, - "municipio": "Malacacheta", - "latitude": -17.8456, - "longitude": -42.0769, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2920205, - "municipio": "Malhada", - "latitude": -14.3371, - "longitude": -43.7686, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2920304, - "municipio": "Malhada de Pedras", - "latitude": -14.3847, - "longitude": -41.8842, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2803807, - "municipio": "Malhada dos Bois", - "latitude": -10.3418, - "longitude": -36.9252, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2803906, - "municipio": "Malhador", - "latitude": -10.6649, - "longitude": -37.3004, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4113908, - "municipio": "Mallet", - "latitude": -25.8806, - "longitude": -50.8173, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2508802, - "municipio": "Malta", - "latitude": -6.89719, - "longitude": -37.5221, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2508901, - "municipio": "Mamanguape", - "latitude": -6.8337, - "longitude": -35.1213, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5212709, - "municipio": "Mambaí", - "latitude": -14.4823, - "longitude": -46.1165, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4114005, - "municipio": "Mamborê", - "latitude": -24.317, - "longitude": -52.5271, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3139250, - "municipio": "Mamonas", - "latitude": -15.0479, - "longitude": -42.9469, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4311734, - "municipio": "Mampituba", - "latitude": -29.2136, - "longitude": -49.9311, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1302504, - "municipio": "Manacapuru", - "latitude": -3.29066, - "longitude": -60.6216, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2509008, - "municipio": "Manaíra", - "latitude": -7.70331, - "longitude": -38.1523, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1302553, - "municipio": "Manaquiri", - "latitude": -3.44078, - "longitude": -60.4612, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2609154, - "municipio": "Manari", - "latitude": -8.9649, - "longitude": -37.6313, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1302603, - "municipio": "Manaus", - "latitude": -3.11866, - "longitude": -60.0212, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1200336, - "municipio": "Mâncio Lima", - "latitude": -7.61657, - "longitude": -72.8997, - "codigo_uf": 12, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 4114104, - "municipio": "Mandaguaçu", - "latitude": -23.3458, - "longitude": -52.0944, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4114203, - "municipio": "Mandaguari", - "latitude": -23.5446, - "longitude": -51.671, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4114302, - "municipio": "Mandirituba", - "latitude": -25.777, - "longitude": -49.3282, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3528601, - "municipio": "Manduri", - "latitude": -23.0056, - "longitude": -49.3202, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4114351, - "municipio": "Manfrinópolis", - "latitude": -26.1441, - "longitude": -53.3113, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3139300, - "municipio": "Manga", - "latitude": -14.7529, - "longitude": -43.9391, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3302601, - "municipio": "Mangaratiba", - "latitude": -22.9594, - "longitude": -44.0409, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4114401, - "municipio": "Mangueirinha", - "latitude": -25.9421, - "longitude": -52.1743, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3139409, - "municipio": "Manhuaçu", - "latitude": -20.2572, - "longitude": -42.028, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3139508, - "municipio": "Manhumirim", - "latitude": -20.3591, - "longitude": -41.9589, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1302702, - "municipio": "Manicoré", - "latitude": -5.80462, - "longitude": -61.2895, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2205904, - "municipio": "Manoel Emídio", - "latitude": -8.01234, - "longitude": -43.8755, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4114500, - "municipio": "Manoel Ribas", - "latitude": -24.5144, - "longitude": -51.6658, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1200344, - "municipio": "Manoel Urbano", - "latitude": -8.83291, - "longitude": -69.2679, - "codigo_uf": 12, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 4311759, - "municipio": "Manoel Viana", - "latitude": -29.5859, - "longitude": -55.4841, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2920403, - "municipio": "Manoel Vitorino", - "latitude": -14.1476, - "longitude": -40.2399, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2920452, - "municipio": "Mansidão", - "latitude": -10.7227, - "longitude": -44.0428, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3139607, - "municipio": "Mantena", - "latitude": -18.7761, - "longitude": -40.9874, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3203304, - "municipio": "Mantenópolis", - "latitude": -18.8594, - "longitude": -41.124, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4311775, - "municipio": "Maquiné", - "latitude": -29.6798, - "longitude": -50.2079, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3139805, - "municipio": "Mar de Espanha", - "latitude": -21.8707, - "longitude": -43.0062, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2704906, - "municipio": "Mar Vermelho", - "latitude": -9.44739, - "longitude": -36.3881, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5212808, - "municipio": "Mara Rosa", - "latitude": -14.0148, - "longitude": -49.1777, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1302801, - "municipio": "Maraã", - "latitude": -1.85313, - "longitude": -65.573, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1504208, - "municipio": "Marabá", - "latitude": -5.38075, - "longitude": -49.1327, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3528700, - "municipio": "Marabá Paulista", - "latitude": -22.1068, - "longitude": -51.9617, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2106326, - "municipio": "Maracaçumé", - "latitude": -2.04918, - "longitude": -45.9587, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3528809, - "municipio": "Maracaí", - "latitude": -22.6149, - "longitude": -50.6713, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4210407, - "municipio": "Maracajá", - "latitude": -28.8463, - "longitude": -49.4605, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5005400, - "municipio": "Maracaju", - "latitude": -21.6105, - "longitude": -55.1678, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1504307, - "municipio": "Maracanã", - "latitude": -0.778899, - "longitude": -47.452, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2307650, - "municipio": "Maracanaú", - "latitude": -3.86699, - "longitude": -38.6259, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2920502, - "municipio": "Maracás", - "latitude": -13.4355, - "longitude": -40.4323, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2704500, - "municipio": "Maragogi", - "latitude": -9.00744, - "longitude": -35.2267, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2920601, - "municipio": "Maragogipe", - "latitude": -12.776, - "longitude": -38.9175, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2609204, - "municipio": "Maraial", - "latitude": -8.79062, - "longitude": -35.8266, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2106359, - "municipio": "Marajá do Sena", - "latitude": -4.62806, - "longitude": -45.4531, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2307700, - "municipio": "Maranguape", - "latitude": -3.89143, - "longitude": -38.6829, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2106375, - "municipio": "Maranhãozinho", - "latitude": -2.24078, - "longitude": -45.8507, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1504406, - "municipio": "Marapanim", - "latitude": -0.714702, - "longitude": -47.7034, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3528858, - "municipio": "Marapoama", - "latitude": -21.2587, - "longitude": -49.13, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4311791, - "municipio": "Maratá", - "latitude": -29.5457, - "longitude": -51.5573, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3203320, - "municipio": "Marataízes", - "latitude": -21.0398, - "longitude": -40.8384, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4311809, - "municipio": "Marau", - "latitude": -28.4498, - "longitude": -52.1986, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2920700, - "municipio": "Maraú", - "latitude": -14.1035, - "longitude": -39.0137, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2704609, - "municipio": "Maravilha", - "latitude": -9.23045, - "longitude": -37.3524, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4210506, - "municipio": "Maravilha", - "latitude": -26.7665, - "longitude": -53.1737, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3139706, - "municipio": "Maravilhas", - "latitude": -19.5076, - "longitude": -44.6779, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2509057, - "municipio": "Marcação", - "latitude": -6.76535, - "longitude": -35.0087, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5105580, - "municipio": "Marcelândia", - "latitude": -11.0463, - "longitude": -54.4377, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4311908, - "municipio": "Marcelino Ramos", - "latitude": -27.4676, - "longitude": -51.9095, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2407302, - "municipio": "Marcelino Vieira", - "latitude": -6.2846, - "longitude": -38.1642, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2920809, - "municipio": "Marcionílio Souza", - "latitude": -13.0064, - "longitude": -40.5295, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2307809, - "municipio": "Marco", - "latitude": -3.1285, - "longitude": -40.1582, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2205953, - "municipio": "Marcolândia", - "latitude": -7.44169, - "longitude": -40.6602, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2206001, - "municipio": "Marcos Parente", - "latitude": -7.11565, - "longitude": -43.8926, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4114609, - "municipio": "Marechal Cândido Rondon", - "latitude": -24.557, - "longitude": -54.0571, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2704708, - "municipio": "Marechal Deodoro", - "latitude": -9.70971, - "longitude": -35.8967, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3203346, - "municipio": "Marechal Floriano", - "latitude": -20.4159, - "longitude": -40.67, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1200351, - "municipio": "Marechal Thaumaturgo", - "latitude": -8.93898, - "longitude": -72.7997, - "codigo_uf": 12, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 4210555, - "municipio": "Marema", - "latitude": -26.8024, - "longitude": -52.6264, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2509107, - "municipio": "Mari", - "latitude": -7.05942, - "longitude": -35.318, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3139904, - "municipio": "Maria da Fé", - "latitude": -22.3044, - "longitude": -45.3773, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4114708, - "municipio": "Maria Helena", - "latitude": -23.6158, - "longitude": -53.2053, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4114807, - "municipio": "Marialva", - "latitude": -23.4843, - "longitude": -51.7928, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3140001, - "municipio": "Mariana", - "latitude": -20.3765, - "longitude": -43.414, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4311981, - "municipio": "Mariana Pimentel", - "latitude": -30.353, - "longitude": -51.5803, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4312005, - "municipio": "Mariano Moro", - "latitude": -27.3568, - "longitude": -52.1467, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1712504, - "municipio": "Marianópolis do Tocantins", - "latitude": -9.79377, - "longitude": -49.6553, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3528908, - "municipio": "Mariápolis", - "latitude": -21.7959, - "longitude": -51.1824, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2704807, - "municipio": "Maribondo", - "latitude": -9.58353, - "longitude": -36.3045, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3302700, - "municipio": "Maricá", - "latitude": -22.9354, - "longitude": -42.8246, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3140100, - "municipio": "Marilac", - "latitude": -18.5079, - "longitude": -42.0822, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3203353, - "municipio": "Marilândia", - "latitude": -19.4114, - "longitude": -40.5456, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4114906, - "municipio": "Marilândia do Sul", - "latitude": -23.7425, - "longitude": -51.3137, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4115002, - "municipio": "Marilena", - "latitude": -22.7336, - "longitude": -53.0402, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3529005, - "municipio": "Marília", - "latitude": -22.2171, - "longitude": -49.9501, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4115101, - "municipio": "Mariluz", - "latitude": -24.0089, - "longitude": -53.1432, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4115200, - "municipio": "Maringá", - "latitude": -23.4205, - "longitude": -51.9333, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3529104, - "municipio": "Marinópolis", - "latitude": -20.4389, - "longitude": -50.8254, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3140159, - "municipio": "Mário Campos", - "latitude": -20.0582, - "longitude": -44.1883, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4115309, - "municipio": "Mariópolis", - "latitude": -26.355, - "longitude": -52.5532, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4115358, - "municipio": "Maripá", - "latitude": -24.42, - "longitude": -53.8286, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3140209, - "municipio": "Maripá de Minas", - "latitude": -21.6979, - "longitude": -42.9546, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1504422, - "municipio": "Marituba", - "latitude": -1.36002, - "longitude": -48.3421, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2509156, - "municipio": "Marizópolis", - "latitude": -6.82748, - "longitude": -38.3528, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3140308, - "municipio": "Marliéria", - "latitude": -19.7096, - "longitude": -42.7327, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4115408, - "municipio": "Marmeleiro", - "latitude": -26.1472, - "longitude": -53.0267, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3140407, - "municipio": "Marmelópolis", - "latitude": -22.447, - "longitude": -45.1645, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4312054, - "municipio": "Marques de Souza", - "latitude": -29.3311, - "longitude": -52.0973, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4115457, - "municipio": "Marquinho", - "latitude": -25.112, - "longitude": -52.2497, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3140506, - "municipio": "Martinho Campos", - "latitude": -19.3306, - "longitude": -45.2434, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2307908, - "municipio": "Martinópole", - "latitude": -3.2252, - "longitude": -40.6896, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3529203, - "municipio": "Martinópolis", - "latitude": -22.1462, - "longitude": -51.1709, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2407401, - "municipio": "Martins", - "latitude": -6.08279, - "longitude": -37.908, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3140530, - "municipio": "Martins Soares", - "latitude": -20.2546, - "longitude": -41.8786, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2804003, - "municipio": "Maruim", - "latitude": -10.7308, - "longitude": -37.0856, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4115507, - "municipio": "Marumbi", - "latitude": -23.7058, - "longitude": -51.6404, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5212907, - "municipio": "Marzagão", - "latitude": -17.983, - "longitude": -48.6415, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2920908, - "municipio": "Mascote", - "latitude": -15.5542, - "longitude": -39.3016, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2308005, - "municipio": "Massapê", - "latitude": -3.52364, - "longitude": -40.3423, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2206050, - "municipio": "Massapê do Piauí", - "latitude": -7.47469, - "longitude": -41.1103, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2509206, - "municipio": "Massaranduba", - "latitude": -7.18995, - "longitude": -35.7848, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4210605, - "municipio": "Massaranduba", - "latitude": -26.6109, - "longitude": -49.0054, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4312104, - "municipio": "Mata", - "latitude": -29.5649, - "longitude": -54.4641, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2921005, - "municipio": "Mata de São João", - "latitude": -12.5307, - "longitude": -38.3009, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2705002, - "municipio": "Mata Grande", - "latitude": -9.11824, - "longitude": -37.7323, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2106409, - "municipio": "Mata Roma", - "latitude": -3.62035, - "longitude": -43.1112, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3140555, - "municipio": "Mata Verde", - "latitude": -15.6869, - "longitude": -40.7366, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3529302, - "municipio": "Matão", - "latitude": -21.6025, - "longitude": -48.364, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2509305, - "municipio": "Mataraca", - "latitude": -6.59673, - "longitude": -35.0531, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1712702, - "municipio": "Mateiros", - "latitude": -10.5464, - "longitude": -46.4168, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4115606, - "municipio": "Matelândia", - "latitude": -25.2496, - "longitude": -53.9935, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3140605, - "municipio": "Materlândia", - "latitude": -18.4699, - "longitude": -43.0579, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3140704, - "municipio": "Mateus Leme", - "latitude": -19.9794, - "longitude": -44.4318, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3171501, - "municipio": "Mathias Lobato", - "latitude": -18.59, - "longitude": -41.9166, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3140803, - "municipio": "Matias Barbosa", - "latitude": -21.869, - "longitude": -43.3135, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3140852, - "municipio": "Matias Cardoso", - "latitude": -14.8563, - "longitude": -43.9146, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2206100, - "municipio": "Matias Olímpio", - "latitude": -3.71492, - "longitude": -42.5507, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2921054, - "municipio": "Matina", - "latitude": -13.9109, - "longitude": -42.8439, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2106508, - "municipio": "Matinha", - "latitude": -3.09849, - "longitude": -45.035, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2509339, - "municipio": "Matinhas", - "latitude": -7.12486, - "longitude": -35.7669, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4115705, - "municipio": "Matinhos", - "latitude": -25.8237, - "longitude": -48.549, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3140902, - "municipio": "Matipó", - "latitude": -20.2873, - "longitude": -42.3401, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4312138, - "municipio": "Mato Castelhano", - "latitude": -28.28, - "longitude": -52.1932, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2509370, - "municipio": "Mato Grosso", - "latitude": -6.54018, - "longitude": -37.7279, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4312153, - "municipio": "Mato Leitão", - "latitude": -29.5285, - "longitude": -52.1278, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4312179, - "municipio": "Mato Queimado", - "latitude": -28.252, - "longitude": -54.6159, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4115739, - "municipio": "Mato Rico", - "latitude": -24.6995, - "longitude": -52.1454, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3141009, - "municipio": "Mato Verde", - "latitude": -15.3944, - "longitude": -42.86, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2106607, - "municipio": "Matões", - "latitude": -5.51359, - "longitude": -43.2018, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2106631, - "municipio": "Matões do Norte", - "latitude": -3.6244, - "longitude": -44.5468, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4210704, - "municipio": "Matos Costa", - "latitude": -26.4709, - "longitude": -51.1501, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3141108, - "municipio": "Matozinhos", - "latitude": -19.5543, - "longitude": -44.0868, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5212956, - "municipio": "Matrinchã", - "latitude": -15.4342, - "longitude": -50.7456, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2705101, - "municipio": "Matriz de Camaragibe", - "latitude": -9.15437, - "longitude": -35.5243, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5105606, - "municipio": "Matupá", - "latitude": -10.1821, - "longitude": -54.9467, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2509396, - "municipio": "Maturéia", - "latitude": -7.26188, - "longitude": -37.351, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3141207, - "municipio": "Matutina", - "latitude": -19.2179, - "longitude": -45.9664, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3529401, - "municipio": "Mauá", - "latitude": -23.6677, - "longitude": -46.4613, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4115754, - "municipio": "Mauá da Serra", - "latitude": -23.8988, - "longitude": -51.2277, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1302900, - "municipio": "Maués", - "latitude": -3.39289, - "longitude": -57.7067, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5213004, - "municipio": "Maurilândia", - "latitude": -17.9719, - "longitude": -50.3388, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1712801, - "municipio": "Maurilândia do Tocantins", - "latitude": -5.95169, - "longitude": -47.5125, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2308104, - "municipio": "Mauriti", - "latitude": -7.38597, - "longitude": -38.7708, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2407500, - "municipio": "Maxaranguape", - "latitude": -5.52181, - "longitude": -35.2631, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4312203, - "municipio": "Maximiliano de Almeida", - "latitude": -27.6325, - "longitude": -51.802, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1600402, - "municipio": "Mazagão", - "latitude": -0.11336, - "longitude": -51.2891, - "codigo_uf": 16, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3141306, - "municipio": "Medeiros", - "latitude": -19.9865, - "longitude": -46.2181, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2921104, - "municipio": "Medeiros Neto", - "latitude": -17.3707, - "longitude": -40.2238, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4115804, - "municipio": "Medianeira", - "latitude": -25.2977, - "longitude": -54.0943, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1504455, - "municipio": "Medicilândia", - "latitude": -3.44637, - "longitude": -52.8875, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3141405, - "municipio": "Medina", - "latitude": -16.2245, - "longitude": -41.4728, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4210803, - "municipio": "Meleiro", - "latitude": -28.8244, - "longitude": -49.6378, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1504505, - "municipio": "Melgaço", - "latitude": -1.8032, - "longitude": -50.7149, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3302809, - "municipio": "Mendes", - "latitude": -22.5245, - "longitude": -43.7312, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3141504, - "municipio": "Mendes Pimentel", - "latitude": -18.6631, - "longitude": -41.4052, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3529500, - "municipio": "Mendonça", - "latitude": -21.1757, - "longitude": -49.5791, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4115853, - "municipio": "Mercedes", - "latitude": -24.4538, - "longitude": -54.1618, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3141603, - "municipio": "Mercês", - "latitude": -21.1976, - "longitude": -43.3337, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3529609, - "municipio": "Meridiano", - "latitude": -20.3579, - "longitude": -50.1811, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2308203, - "municipio": "Meruoca", - "latitude": -3.53974, - "longitude": -40.4531, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3529658, - "municipio": "Mesópolis", - "latitude": -19.9684, - "longitude": -50.6326, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3302858, - "municipio": "Mesquita", - "latitude": -22.8028, - "longitude": -43.4601, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3141702, - "municipio": "Mesquita", - "latitude": -19.224, - "longitude": -42.6079, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2705200, - "municipio": "Messias", - "latitude": -9.39384, - "longitude": -35.8392, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2407609, - "municipio": "Messias Targino", - "latitude": -6.07194, - "longitude": -37.5158, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2206209, - "municipio": "Miguel Alves", - "latitude": -4.16857, - "longitude": -42.8963, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2921203, - "municipio": "Miguel Calmon", - "latitude": -11.4299, - "longitude": -40.6031, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2206308, - "municipio": "Miguel Leão", - "latitude": -5.68077, - "longitude": -42.7436, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3302908, - "municipio": "Miguel Pereira", - "latitude": -22.4572, - "longitude": -43.4803, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3529708, - "municipio": "Miguelópolis", - "latitude": -20.1796, - "longitude": -48.031, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2308302, - "municipio": "Milagres", - "latitude": -7.29749, - "longitude": -38.9378, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2921302, - "municipio": "Milagres", - "latitude": -12.8646, - "longitude": -39.8611, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2106672, - "municipio": "Milagres do Maranhão", - "latitude": -3.57443, - "longitude": -42.6131, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2308351, - "municipio": "Milhã", - "latitude": -5.67252, - "longitude": -39.1875, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2206357, - "municipio": "Milton Brandão", - "latitude": -4.68295, - "longitude": -41.4173, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5213053, - "municipio": "Mimoso de Goiás", - "latitude": -15.0515, - "longitude": -48.1611, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3203403, - "municipio": "Mimoso do Sul", - "latitude": -21.0628, - "longitude": -41.3615, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5213087, - "municipio": "Minaçu", - "latitude": -13.5304, - "longitude": -48.2206, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2705309, - "municipio": "Minador do Negrão", - "latitude": -9.31236, - "longitude": -36.8696, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4312252, - "municipio": "Minas do Leão", - "latitude": -30.1346, - "longitude": -52.0423, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3141801, - "municipio": "Minas Novas", - "latitude": -17.2156, - "longitude": -42.5884, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3141900, - "municipio": "Minduri", - "latitude": -21.6797, - "longitude": -44.6051, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5213103, - "municipio": "Mineiros", - "latitude": -17.5654, - "longitude": -52.5537, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3529807, - "municipio": "Mineiros do Tietê", - "latitude": -22.412, - "longitude": -48.451, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1101203, - "municipio": "Ministro Andreazza", - "latitude": -11.196, - "longitude": -61.5174, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3530003, - "municipio": "Mira Estrela", - "latitude": -19.9789, - "longitude": -50.139, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3142007, - "municipio": "Mirabela", - "latitude": -16.256, - "longitude": -44.1602, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3529906, - "municipio": "Miracatu", - "latitude": -24.2766, - "longitude": -47.4625, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3303005, - "municipio": "Miracema", - "latitude": -21.4148, - "longitude": -42.1938, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1713205, - "municipio": "Miracema do Tocantins", - "latitude": -9.56556, - "longitude": -48.393, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2106706, - "municipio": "Mirador", - "latitude": -6.37454, - "longitude": -44.3683, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4115903, - "municipio": "Mirador", - "latitude": -23.255, - "longitude": -52.7761, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3142106, - "municipio": "Miradouro", - "latitude": -20.8899, - "longitude": -42.3458, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4312302, - "municipio": "Miraguaí", - "latitude": -27.497, - "longitude": -53.6891, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3142205, - "municipio": "Miraí", - "latitude": -21.2021, - "longitude": -42.6122, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2308377, - "municipio": "Miraíma", - "latitude": -3.56867, - "longitude": -39.9663, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5005608, - "municipio": "Miranda", - "latitude": -20.2355, - "longitude": -56.3746, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2106755, - "municipio": "Miranda do Norte", - "latitude": -3.56313, - "longitude": -44.5814, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2609303, - "municipio": "Mirandiba", - "latitude": -8.12113, - "longitude": -38.7388, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3530102, - "municipio": "Mirandópolis", - "latitude": -21.1313, - "longitude": -51.1035, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2921401, - "municipio": "Mirangaba", - "latitude": -10.961, - "longitude": -40.574, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1713304, - "municipio": "Miranorte", - "latitude": -9.52907, - "longitude": -48.5922, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2921450, - "municipio": "Mirante", - "latitude": -14.2385, - "longitude": -40.7718, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1101302, - "municipio": "Mirante da Serra", - "latitude": -11.029, - "longitude": -62.6696, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3530201, - "municipio": "Mirante do Paranapanema", - "latitude": -22.2904, - "longitude": -51.9084, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4116000, - "municipio": "Miraselva", - "latitude": -22.9657, - "longitude": -51.4846, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3530300, - "municipio": "Mirassol", - "latitude": -20.8169, - "longitude": -49.5206, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5105622, - "municipio": "Mirassol d'Oeste", - "latitude": -15.6759, - "longitude": -58.0951, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3530409, - "municipio": "Mirassolândia", - "latitude": -20.6179, - "longitude": -49.4617, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3142254, - "municipio": "Miravânia", - "latitude": -14.7348, - "longitude": -44.4092, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4210852, - "municipio": "Mirim Doce", - "latitude": -27.197, - "longitude": -50.0786, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2106805, - "municipio": "Mirinzal", - "latitude": -2.07094, - "longitude": -44.7787, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4116059, - "municipio": "Missal", - "latitude": -25.0919, - "longitude": -54.2477, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2308401, - "municipio": "Missão Velha", - "latitude": -7.23522, - "longitude": -39.143, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1504604, - "municipio": "Mocajuba", - "latitude": -2.5831, - "longitude": -49.5042, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3530508, - "municipio": "Mococa", - "latitude": -21.4647, - "longitude": -47.0024, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4210902, - "municipio": "Modelo", - "latitude": -26.7729, - "longitude": -53.04, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3142304, - "municipio": "Moeda", - "latitude": -20.3399, - "longitude": -44.0509, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3142403, - "municipio": "Moema", - "latitude": -19.8387, - "longitude": -45.4127, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2509404, - "municipio": "Mogeiro", - "latitude": -7.28517, - "longitude": -35.4832, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3530607, - "municipio": "Mogi das Cruzes", - "latitude": -23.5208, - "longitude": -46.1854, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3530706, - "municipio": "Mogi Guaçu", - "latitude": -22.3675, - "longitude": -46.9428, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3530805, - "municipio": "Mogi Mirim", - "latitude": -22.4332, - "longitude": -46.9532, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5213400, - "municipio": "Moiporá", - "latitude": -16.5434, - "longitude": -50.739, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2804102, - "municipio": "Moita Bonita", - "latitude": -10.5769, - "longitude": -37.3512, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1504703, - "municipio": "Moju", - "latitude": -1.88993, - "longitude": -48.7668, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1504752, - "municipio": "Mojuí dos Campos", - "latitude": -2.6822, - "longitude": -54.6425, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2308500, - "municipio": "Mombaça", - "latitude": -5.73844, - "longitude": -39.63, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3530904, - "municipio": "Mombuca", - "latitude": -22.9285, - "longitude": -47.559, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2106904, - "municipio": "Monção", - "latitude": -3.48125, - "longitude": -45.2496, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3531001, - "municipio": "Monções", - "latitude": -20.8509, - "longitude": -50.0975, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4211009, - "municipio": "Mondaí", - "latitude": -27.1008, - "longitude": -53.4032, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3531100, - "municipio": "Mongaguá", - "latitude": -24.0809, - "longitude": -46.6265, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3142502, - "municipio": "Monjolos", - "latitude": -18.3245, - "longitude": -44.118, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2206407, - "municipio": "Monsenhor Gil", - "latitude": -5.562, - "longitude": -42.6075, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2206506, - "municipio": "Monsenhor Hipólito", - "latitude": -6.99275, - "longitude": -41.026, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3142601, - "municipio": "Monsenhor Paulo", - "latitude": -21.7579, - "longitude": -45.5391, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2308609, - "municipio": "Monsenhor Tabosa", - "latitude": -4.79102, - "longitude": -40.0646, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2509503, - "municipio": "Montadas", - "latitude": -7.08848, - "longitude": -35.9592, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3142700, - "municipio": "Montalvânia", - "latitude": -14.4197, - "longitude": -44.3719, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3203502, - "municipio": "Montanha", - "latitude": -18.1303, - "longitude": -40.3668, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2407708, - "municipio": "Montanhas", - "latitude": -6.48522, - "longitude": -35.2842, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4312351, - "municipio": "Montauri", - "latitude": -28.6462, - "longitude": -52.0767, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1504802, - "municipio": "Monte Alegre", - "latitude": -1.99768, - "longitude": -54.0724, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2407807, - "municipio": "Monte Alegre", - "latitude": -6.07063, - "longitude": -35.3253, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5213509, - "municipio": "Monte Alegre de Goiás", - "latitude": -13.2552, - "longitude": -46.8928, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3142809, - "municipio": "Monte Alegre de Minas", - "latitude": -18.869, - "longitude": -48.881, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2804201, - "municipio": "Monte Alegre de Sergipe", - "latitude": -10.0256, - "longitude": -37.5616, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2206605, - "municipio": "Monte Alegre do Piauí", - "latitude": -9.75364, - "longitude": -45.3037, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3531209, - "municipio": "Monte Alegre do Sul", - "latitude": -22.6817, - "longitude": -46.681, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4312377, - "municipio": "Monte Alegre dos Campos", - "latitude": -28.6805, - "longitude": -50.7834, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3531308, - "municipio": "Monte Alto", - "latitude": -21.2655, - "longitude": -48.4971, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3531407, - "municipio": "Monte Aprazível", - "latitude": -20.768, - "longitude": -49.7184, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3142908, - "municipio": "Monte Azul", - "latitude": -15.1514, - "longitude": -42.8718, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3531506, - "municipio": "Monte Azul Paulista", - "latitude": -20.9065, - "longitude": -48.6387, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3143005, - "municipio": "Monte Belo", - "latitude": -21.3271, - "longitude": -46.3635, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4312385, - "municipio": "Monte Belo do Sul", - "latitude": -29.1607, - "longitude": -51.6333, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4211058, - "municipio": "Monte Carlo", - "latitude": -27.2239, - "longitude": -50.9808, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3143104, - "municipio": "Monte Carmelo", - "latitude": -18.7302, - "longitude": -47.4912, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4211108, - "municipio": "Monte Castelo", - "latitude": -26.461, - "longitude": -50.2327, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3531605, - "municipio": "Monte Castelo", - "latitude": -21.2981, - "longitude": -51.5679, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2407906, - "municipio": "Monte das Gameleiras", - "latitude": -6.43698, - "longitude": -35.7831, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1713601, - "municipio": "Monte do Carmo", - "latitude": -10.7611, - "longitude": -48.1114, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3143153, - "municipio": "Monte Formoso", - "latitude": -16.8691, - "longitude": -41.2473, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2509602, - "municipio": "Monte Horebe", - "latitude": -7.20402, - "longitude": -38.5838, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3531803, - "municipio": "Monte Mor", - "latitude": -22.945, - "longitude": -47.3122, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1101401, - "municipio": "Monte Negro", - "latitude": -10.2458, - "longitude": -63.29, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2921500, - "municipio": "Monte Santo", - "latitude": -10.4374, - "longitude": -39.3321, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3143203, - "municipio": "Monte Santo de Minas", - "latitude": -21.1873, - "longitude": -46.9753, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1713700, - "municipio": "Monte Santo do Tocantins", - "latitude": -10.0075, - "longitude": -48.9941, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3143401, - "municipio": "Monte Sião", - "latitude": -22.4335, - "longitude": -46.573, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2509701, - "municipio": "Monteiro", - "latitude": -7.88363, - "longitude": -37.1184, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3531704, - "municipio": "Monteiro Lobato", - "latitude": -22.9544, - "longitude": -45.8407, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2705408, - "municipio": "Monteirópolis", - "latitude": -9.60357, - "longitude": -37.2505, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4312401, - "municipio": "Montenegro", - "latitude": -29.6824, - "longitude": -51.4679, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2107001, - "municipio": "Montes Altos", - "latitude": -5.83067, - "longitude": -47.0673, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3143302, - "municipio": "Montes Claros", - "latitude": -16.7282, - "longitude": -43.8578, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5213707, - "municipio": "Montes Claros de Goiás", - "latitude": -16.0059, - "longitude": -51.3979, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3143450, - "municipio": "Montezuma", - "latitude": -15.1702, - "longitude": -42.4941, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5213756, - "municipio": "Montividiu", - "latitude": -17.4439, - "longitude": -51.1728, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5213772, - "municipio": "Montividiu do Norte", - "latitude": -13.3485, - "longitude": -48.6853, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2308708, - "municipio": "Morada Nova", - "latitude": -5.09736, - "longitude": -38.3702, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3143500, - "municipio": "Morada Nova de Minas", - "latitude": -18.5998, - "longitude": -45.3584, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2308807, - "municipio": "Moraújo", - "latitude": -3.46311, - "longitude": -40.6776, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2614303, - "municipio": "Moreilândia", - "latitude": -7.61931, - "longitude": -39.546, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4116109, - "municipio": "Moreira Sales", - "latitude": -24.0509, - "longitude": -53.0102, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2609402, - "municipio": "Moreno", - "latitude": -8.10871, - "longitude": -35.0835, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4312427, - "municipio": "Mormaço", - "latitude": -28.6968, - "longitude": -52.6999, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2921609, - "municipio": "Morpará", - "latitude": -11.5569, - "longitude": -43.2766, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4116208, - "municipio": "Morretes", - "latitude": -25.4744, - "longitude": -48.8345, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5213806, - "municipio": "Morrinhos", - "latitude": -17.7334, - "longitude": -49.1059, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2308906, - "municipio": "Morrinhos", - "latitude": -3.23426, - "longitude": -40.1233, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4312443, - "municipio": "Morrinhos do Sul", - "latitude": -29.3578, - "longitude": -49.9328, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3531902, - "municipio": "Morro Agudo", - "latitude": -20.7288, - "longitude": -48.0581, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5213855, - "municipio": "Morro Agudo de Goiás", - "latitude": -15.3184, - "longitude": -50.0553, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2206654, - "municipio": "Morro Cabeça no Tempo", - "latitude": -9.71891, - "longitude": -43.9072, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4211207, - "municipio": "Morro da Fumaça", - "latitude": -28.6511, - "longitude": -49.2169, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3143609, - "municipio": "Morro da Garça", - "latitude": -18.5356, - "longitude": -44.601, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2921708, - "municipio": "Morro do Chapéu", - "latitude": -11.5488, - "longitude": -41.1565, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2206670, - "municipio": "Morro do Chapéu do Piauí", - "latitude": -3.73337, - "longitude": -42.3024, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3143708, - "municipio": "Morro do Pilar", - "latitude": -19.2236, - "longitude": -43.3795, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4211256, - "municipio": "Morro Grande", - "latitude": -28.8006, - "longitude": -49.7214, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4312450, - "municipio": "Morro Redondo", - "latitude": -31.5887, - "longitude": -52.6261, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4312476, - "municipio": "Morro Reuter", - "latitude": -29.5379, - "longitude": -51.0811, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2107100, - "municipio": "Morros", - "latitude": -2.85379, - "longitude": -44.0357, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2921807, - "municipio": "Mortugaba", - "latitude": -15.0225, - "longitude": -42.3727, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3532009, - "municipio": "Morungaba", - "latitude": -22.8811, - "longitude": -46.7896, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5213905, - "municipio": "Mossâmedes", - "latitude": -16.124, - "longitude": -50.2136, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2408003, - "municipio": "Mossoró", - "latitude": -5.18374, - "longitude": -37.3474, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4312500, - "municipio": "Mostardas", - "latitude": -31.1054, - "longitude": -50.9167, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3532058, - "municipio": "Motuca", - "latitude": -21.5103, - "longitude": -48.1538, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5214002, - "municipio": "Mozarlândia", - "latitude": -14.7457, - "longitude": -50.5713, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1504901, - "municipio": "Muaná", - "latitude": -1.53936, - "longitude": -49.2224, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1400308, - "municipio": "Mucajaí", - "latitude": 2.43998, - "longitude": -60.9096, - "codigo_uf": 14, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2309003, - "municipio": "Mucambo", - "latitude": -3.90271, - "longitude": -40.7452, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2921906, - "municipio": "Mucugê", - "latitude": -13.0053, - "longitude": -41.3703, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4312609, - "municipio": "Muçum", - "latitude": -29.163, - "longitude": -51.8714, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2922003, - "municipio": "Mucuri", - "latitude": -18.0754, - "longitude": -39.5565, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3203601, - "municipio": "Mucurici", - "latitude": -18.0965, - "longitude": -40.52, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4312617, - "municipio": "Muitos Capões", - "latitude": -28.3132, - "longitude": -51.1836, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4312625, - "municipio": "Muliterno", - "latitude": -28.3253, - "longitude": -51.7697, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2509800, - "municipio": "Mulungu", - "latitude": -7.02525, - "longitude": -35.46, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2309102, - "municipio": "Mulungu", - "latitude": -4.30294, - "longitude": -38.9951, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2922052, - "municipio": "Mulungu do Morro", - "latitude": -11.9648, - "longitude": -41.6374, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2922102, - "municipio": "Mundo Novo", - "latitude": -11.8541, - "longitude": -40.4714, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5005681, - "municipio": "Mundo Novo", - "latitude": -23.9355, - "longitude": -54.281, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5214051, - "municipio": "Mundo Novo", - "latitude": -13.7729, - "longitude": -50.2814, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3143807, - "municipio": "Munhoz", - "latitude": -22.6092, - "longitude": -46.362, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4116307, - "municipio": "Munhoz de Melo", - "latitude": -23.1487, - "longitude": -51.7737, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2922201, - "municipio": "Muniz Ferreira", - "latitude": -13.0092, - "longitude": -39.1092, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3203700, - "municipio": "Muniz Freire", - "latitude": -20.4652, - "longitude": -41.4156, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2922250, - "municipio": "Muquém de São Francisco", - "latitude": -12.065, - "longitude": -43.5497, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3203809, - "municipio": "Muqui", - "latitude": -20.9509, - "longitude": -41.346, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3143906, - "municipio": "Muriaé", - "latitude": -21.13, - "longitude": -42.3693, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2804300, - "municipio": "Muribeca", - "latitude": -10.4271, - "longitude": -36.9588, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2705507, - "municipio": "Murici", - "latitude": -9.30682, - "longitude": -35.9428, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2206696, - "municipio": "Murici dos Portelas", - "latitude": -3.319, - "longitude": -42.094, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1713957, - "municipio": "Muricilândia", - "latitude": -7.14669, - "longitude": -48.6091, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2922300, - "municipio": "Muritiba", - "latitude": -12.6329, - "longitude": -38.9921, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3532108, - "municipio": "Murutinga do Sul", - "latitude": -20.9908, - "longitude": -51.2774, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2922409, - "municipio": "Mutuípe", - "latitude": -13.2284, - "longitude": -39.5044, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3144003, - "municipio": "Mutum", - "latitude": -19.8121, - "longitude": -41.4407, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5214101, - "municipio": "Mutunópolis", - "latitude": -13.7303, - "longitude": -49.2745, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3144102, - "municipio": "Muzambinho", - "latitude": -21.3692, - "longitude": -46.5213, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3144201, - "municipio": "Nacip Raydan", - "latitude": -18.4544, - "longitude": -42.2481, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3532157, - "municipio": "Nantes", - "latitude": -22.6156, - "longitude": -51.24, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3144300, - "municipio": "Nanuque", - "latitude": -17.8481, - "longitude": -40.3533, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4312658, - "municipio": "Não-Me-Toque", - "latitude": -28.4548, - "longitude": -52.8182, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3144359, - "municipio": "Naque", - "latitude": -19.2291, - "longitude": -42.3312, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3532207, - "municipio": "Narandiba", - "latitude": -22.4057, - "longitude": -51.5274, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2408102, - "municipio": "Natal", - "latitude": -5.79357, - "longitude": -35.1986, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3144375, - "municipio": "Natalândia", - "latitude": -16.5021, - "longitude": -46.4874, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3144409, - "municipio": "Natércia", - "latitude": -22.1158, - "longitude": -45.5123, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1714203, - "municipio": "Natividade", - "latitude": -11.7034, - "longitude": -47.7223, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3303104, - "municipio": "Natividade", - "latitude": -21.039, - "longitude": -41.9697, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3532306, - "municipio": "Natividade da Serra", - "latitude": -23.3707, - "longitude": -45.4468, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2509909, - "municipio": "Natuba", - "latitude": -7.63514, - "longitude": -35.5586, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4211306, - "municipio": "Navegantes", - "latitude": -26.8943, - "longitude": -48.6546, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5005707, - "municipio": "Naviraí", - "latitude": -23.0618, - "longitude": -54.1995, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2922508, - "municipio": "Nazaré", - "latitude": -13.0235, - "longitude": -39.0108, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1714302, - "municipio": "Nazaré", - "latitude": -6.37496, - "longitude": -47.6643, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2609501, - "municipio": "Nazaré da Mata", - "latitude": -7.74149, - "longitude": -35.2193, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2206704, - "municipio": "Nazaré do Piauí", - "latitude": -6.97023, - "longitude": -42.6773, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3532405, - "municipio": "Nazaré Paulista", - "latitude": -23.1747, - "longitude": -46.3983, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3144508, - "municipio": "Nazareno", - "latitude": -21.2168, - "longitude": -44.6138, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2510006, - "municipio": "Nazarezinho", - "latitude": -6.9114, - "longitude": -38.322, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2206720, - "municipio": "Nazária", - "latitude": -5.35128, - "longitude": -42.8153, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5214408, - "municipio": "Nazário", - "latitude": -16.5808, - "longitude": -49.8817, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2804409, - "municipio": "Neópolis", - "latitude": -10.3215, - "longitude": -36.585, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3144607, - "municipio": "Nepomuceno", - "latitude": -21.2324, - "longitude": -45.235, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5214507, - "municipio": "Nerópolis", - "latitude": -16.4047, - "longitude": -49.2227, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3532504, - "municipio": "Neves Paulista", - "latitude": -20.843, - "longitude": -49.6358, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1303007, - "municipio": "Nhamundá", - "latitude": -2.20793, - "longitude": -56.7112, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3532603, - "municipio": "Nhandeara", - "latitude": -20.6945, - "longitude": -50.0436, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4312674, - "municipio": "Nicolau Vergueiro", - "latitude": -28.5298, - "longitude": -52.4676, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2922607, - "municipio": "Nilo Peçanha", - "latitude": -13.604, - "longitude": -39.1091, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3303203, - "municipio": "Nilópolis", - "latitude": -22.8057, - "longitude": -43.4233, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2107209, - "municipio": "Nina Rodrigues", - "latitude": -3.46788, - "longitude": -43.9134, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3144656, - "municipio": "Ninheira", - "latitude": -15.3148, - "longitude": -41.7564, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5005806, - "municipio": "Nioaque", - "latitude": -21.1419, - "longitude": -55.8296, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3532702, - "municipio": "Nipoã", - "latitude": -20.9114, - "longitude": -49.7833, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5214606, - "municipio": "Niquelândia", - "latitude": -14.4662, - "longitude": -48.4599, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2408201, - "municipio": "Nísia Floresta", - "latitude": -6.09329, - "longitude": -35.1991, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3303302, - "municipio": "Niterói", - "latitude": -22.8832, - "longitude": -43.1034, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5105903, - "municipio": "Nobres", - "latitude": -14.7192, - "longitude": -56.3284, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4312708, - "municipio": "Nonoai", - "latitude": -27.3689, - "longitude": -52.7756, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2922656, - "municipio": "Nordestina", - "latitude": -10.8192, - "longitude": -39.4297, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1400407, - "municipio": "Normandia", - "latitude": 3.8853, - "longitude": -59.6204, - "codigo_uf": 14, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5106000, - "municipio": "Nortelândia", - "latitude": -14.454, - "longitude": -56.7945, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2804458, - "municipio": "Nossa Senhora Aparecida", - "latitude": -10.3944, - "longitude": -37.4517, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2804508, - "municipio": "Nossa Senhora da Glória", - "latitude": -10.2158, - "longitude": -37.4211, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2804607, - "municipio": "Nossa Senhora das Dores", - "latitude": -10.4854, - "longitude": -37.1963, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4116406, - "municipio": "Nossa Senhora das Graças", - "latitude": -22.9129, - "longitude": -51.7978, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2804706, - "municipio": "Nossa Senhora de Lourdes", - "latitude": -10.0772, - "longitude": -37.0615, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2206753, - "municipio": "Nossa Senhora de Nazaré", - "latitude": -4.63019, - "longitude": -42.173, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5106109, - "municipio": "Nossa Senhora do Livramento", - "latitude": -15.772, - "longitude": -56.3432, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2804805, - "municipio": "Nossa Senhora do Socorro", - "latitude": -10.8468, - "longitude": -37.1231, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2206803, - "municipio": "Nossa Senhora dos Remédios", - "latitude": -3.97574, - "longitude": -42.6184, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3532801, - "municipio": "Nova Aliança", - "latitude": -21.0156, - "longitude": -49.4986, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4116505, - "municipio": "Nova Aliança do Ivaí", - "latitude": -23.1763, - "longitude": -52.6032, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4312757, - "municipio": "Nova Alvorada", - "latitude": -28.6822, - "longitude": -52.1631, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5006002, - "municipio": "Nova Alvorada do Sul", - "latitude": -21.4657, - "longitude": -54.3825, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5214705, - "municipio": "Nova América", - "latitude": -15.0206, - "longitude": -49.8953, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4116604, - "municipio": "Nova América da Colina", - "latitude": -23.3308, - "longitude": -50.7168, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5006200, - "municipio": "Nova Andradina", - "latitude": -22.238, - "longitude": -53.3437, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4312807, - "municipio": "Nova Araçá", - "latitude": -28.6537, - "longitude": -51.7458, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4116703, - "municipio": "Nova Aurora", - "latitude": -24.5289, - "longitude": -53.2575, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5214804, - "municipio": "Nova Aurora", - "latitude": -18.0597, - "longitude": -48.2552, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5106158, - "municipio": "Nova Bandeirantes", - "latitude": -9.84977, - "longitude": -57.8139, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4312906, - "municipio": "Nova Bassano", - "latitude": -28.7291, - "longitude": -51.7072, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3144672, - "municipio": "Nova Belém", - "latitude": -18.4925, - "longitude": -41.1107, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4312955, - "municipio": "Nova Boa Vista", - "latitude": -27.9926, - "longitude": -52.9784, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5106208, - "municipio": "Nova Brasilândia", - "latitude": -14.9612, - "longitude": -54.9685, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1100148, - "municipio": "Nova Brasilândia D'Oeste", - "latitude": -11.7247, - "longitude": -62.3127, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4313003, - "municipio": "Nova Bréscia", - "latitude": -29.2182, - "longitude": -52.0319, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3532827, - "municipio": "Nova Campina", - "latitude": -24.1224, - "longitude": -48.9022, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2922706, - "municipio": "Nova Canaã", - "latitude": -14.7912, - "longitude": -40.1458, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5106216, - "municipio": "Nova Canaã do Norte", - "latitude": -10.558, - "longitude": -55.953, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3532843, - "municipio": "Nova Canaã Paulista", - "latitude": -20.3836, - "longitude": -50.9483, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4313011, - "municipio": "Nova Candelária", - "latitude": -27.6137, - "longitude": -54.1074, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4116802, - "municipio": "Nova Cantu", - "latitude": -24.6723, - "longitude": -52.5661, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3532868, - "municipio": "Nova Castilho", - "latitude": -20.7615, - "longitude": -50.3477, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2107258, - "municipio": "Nova Colinas", - "latitude": -7.12263, - "longitude": -46.2607, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5214838, - "municipio": "Nova Crixás", - "latitude": -14.0957, - "longitude": -50.33, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2408300, - "municipio": "Nova Cruz", - "latitude": -6.47511, - "longitude": -35.4286, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3144706, - "municipio": "Nova Era", - "latitude": -19.7577, - "longitude": -43.0333, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4211405, - "municipio": "Nova Erechim", - "latitude": -26.8982, - "longitude": -52.9066, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4116901, - "municipio": "Nova Esperança", - "latitude": -23.182, - "longitude": -52.2031, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1504950, - "municipio": "Nova Esperança do Piriá", - "latitude": -2.26693, - "longitude": -46.9731, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4116950, - "municipio": "Nova Esperança do Sudoeste", - "latitude": -25.9004, - "longitude": -53.2618, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4313037, - "municipio": "Nova Esperança do Sul", - "latitude": -29.4066, - "longitude": -54.8293, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3532900, - "municipio": "Nova Europa", - "latitude": -21.7765, - "longitude": -48.5705, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4117008, - "municipio": "Nova Fátima", - "latitude": -23.4324, - "longitude": -50.5665, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2922730, - "municipio": "Nova Fátima", - "latitude": -11.6031, - "longitude": -39.6302, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2510105, - "municipio": "Nova Floresta", - "latitude": -6.45056, - "longitude": -36.2057, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3303401, - "municipio": "Nova Friburgo", - "latitude": -22.2932, - "longitude": -42.5377, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5214861, - "municipio": "Nova Glória", - "latitude": -15.145, - "longitude": -49.5737, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3533007, - "municipio": "Nova Granada", - "latitude": -20.5321, - "longitude": -49.3123, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5108808, - "municipio": "Nova Guarita", - "latitude": -10.312, - "longitude": -55.4061, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3533106, - "municipio": "Nova Guataporanga", - "latitude": -21.332, - "longitude": -51.6447, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4313060, - "municipio": "Nova Hartz", - "latitude": -29.5808, - "longitude": -50.9051, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2922755, - "municipio": "Nova Ibiá", - "latitude": -13.812, - "longitude": -39.6182, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3303500, - "municipio": "Nova Iguaçu", - "latitude": -22.7556, - "longitude": -43.4603, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5214879, - "municipio": "Nova Iguaçu de Goiás", - "latitude": -14.2868, - "longitude": -49.3872, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3533205, - "municipio": "Nova Independência", - "latitude": -21.1026, - "longitude": -51.4905, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2107308, - "municipio": "Nova Iorque", - "latitude": -6.73047, - "longitude": -44.0471, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1504976, - "municipio": "Nova Ipixuna", - "latitude": -4.91622, - "longitude": -49.0822, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4211454, - "municipio": "Nova Itaberaba", - "latitude": -26.9428, - "longitude": -52.8141, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2922805, - "municipio": "Nova Itarana", - "latitude": -13.0241, - "longitude": -40.0653, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5106182, - "municipio": "Nova Lacerda", - "latitude": -14.4727, - "longitude": -59.6001, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4117057, - "municipio": "Nova Laranjeiras", - "latitude": -25.3054, - "longitude": -52.5447, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3144805, - "municipio": "Nova Lima", - "latitude": -19.9758, - "longitude": -43.8509, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4117107, - "municipio": "Nova Londrina", - "latitude": -22.7639, - "longitude": -52.9868, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3533304, - "municipio": "Nova Luzitânia", - "latitude": -20.856, - "longitude": -50.2617, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100338, - "municipio": "Nova Mamoré", - "latitude": -10.4077, - "longitude": -65.3346, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5108857, - "municipio": "Nova Marilândia", - "latitude": -14.3568, - "longitude": -56.9696, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5108907, - "municipio": "Nova Maringá", - "latitude": -13.0136, - "longitude": -57.0908, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3144904, - "municipio": "Nova Módica", - "latitude": -18.4417, - "longitude": -41.4984, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5108956, - "municipio": "Nova Monte Verde", - "latitude": -9.99998, - "longitude": -57.5261, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5106224, - "municipio": "Nova Mutum", - "latitude": -13.8374, - "longitude": -56.0743, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5106174, - "municipio": "Nova Nazaré", - "latitude": -13.9486, - "longitude": -51.8002, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3533403, - "municipio": "Nova Odessa", - "latitude": -22.7832, - "longitude": -47.2941, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4117206, - "municipio": "Nova Olímpia", - "latitude": -23.4703, - "longitude": -53.0898, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5106232, - "municipio": "Nova Olímpia", - "latitude": -14.7889, - "longitude": -57.2886, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1714880, - "municipio": "Nova Olinda", - "latitude": -7.63171, - "longitude": -48.4252, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2309201, - "municipio": "Nova Olinda", - "latitude": -7.08415, - "longitude": -39.6713, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2510204, - "municipio": "Nova Olinda", - "latitude": -7.47232, - "longitude": -38.0382, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2107357, - "municipio": "Nova Olinda do Maranhão", - "latitude": -2.84227, - "longitude": -45.6953, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1303106, - "municipio": "Nova Olinda do Norte", - "latitude": -3.90037, - "longitude": -59.094, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4313086, - "municipio": "Nova Pádua", - "latitude": -29.0275, - "longitude": -51.3098, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4313102, - "municipio": "Nova Palma", - "latitude": -29.471, - "longitude": -53.4689, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2510303, - "municipio": "Nova Palmeira", - "latitude": -6.67122, - "longitude": -36.422, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4313201, - "municipio": "Nova Petrópolis", - "latitude": -29.3741, - "longitude": -51.1136, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3145000, - "municipio": "Nova Ponte", - "latitude": -19.1461, - "longitude": -47.6779, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3145059, - "municipio": "Nova Porteirinha", - "latitude": -15.7993, - "longitude": -43.2941, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4313300, - "municipio": "Nova Prata", - "latitude": -28.7799, - "longitude": -51.6113, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4117255, - "municipio": "Nova Prata do Iguaçu", - "latitude": -25.6309, - "longitude": -53.3469, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4313334, - "municipio": "Nova Ramada", - "latitude": -28.0667, - "longitude": -53.6992, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2922854, - "municipio": "Nova Redenção", - "latitude": -12.815, - "longitude": -41.0748, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3145109, - "municipio": "Nova Resende", - "latitude": -21.1286, - "longitude": -46.4157, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5214903, - "municipio": "Nova Roma", - "latitude": -13.7388, - "longitude": -46.8734, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4313359, - "municipio": "Nova Roma do Sul", - "latitude": -28.9882, - "longitude": -51.4095, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1715002, - "municipio": "Nova Rosalândia", - "latitude": -10.5651, - "longitude": -48.9125, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2309300, - "municipio": "Nova Russas", - "latitude": -4.70581, - "longitude": -40.5621, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4117214, - "municipio": "Nova Santa Bárbara", - "latitude": -23.5865, - "longitude": -50.7598, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5106190, - "municipio": "Nova Santa Helena", - "latitude": -10.8651, - "longitude": -55.1872, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4313375, - "municipio": "Nova Santa Rita", - "latitude": -29.8525, - "longitude": -51.2837, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2207959, - "municipio": "Nova Santa Rita", - "latitude": -8.09707, - "longitude": -42.0471, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4117222, - "municipio": "Nova Santa Rosa", - "latitude": -24.4693, - "longitude": -53.9552, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3145208, - "municipio": "Nova Serrana", - "latitude": -19.8713, - "longitude": -44.9847, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2922904, - "municipio": "Nova Soure", - "latitude": -11.2329, - "longitude": -38.4871, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4117271, - "municipio": "Nova Tebas", - "latitude": -24.438, - "longitude": -51.9454, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1505007, - "municipio": "Nova Timboteua", - "latitude": -1.20874, - "longitude": -47.3921, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4211504, - "municipio": "Nova Trento", - "latitude": -27.278, - "longitude": -48.9298, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5106240, - "municipio": "Nova Ubiratã", - "latitude": -12.9834, - "longitude": -55.2556, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3136603, - "municipio": "Nova União", - "latitude": -19.6876, - "longitude": -43.583, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1101435, - "municipio": "Nova União", - "latitude": -10.9068, - "longitude": -62.5564, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3203908, - "municipio": "Nova Venécia", - "latitude": -18.715, - "longitude": -40.4053, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4211603, - "municipio": "Nova Veneza", - "latitude": -28.6338, - "longitude": -49.5055, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5215009, - "municipio": "Nova Veneza", - "latitude": -16.3695, - "longitude": -49.3168, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2923001, - "municipio": "Nova Viçosa", - "latitude": -17.8926, - "longitude": -39.3743, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5106257, - "municipio": "Nova Xavantina", - "latitude": -14.6771, - "longitude": -52.3502, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3533254, - "municipio": "Novais", - "latitude": -20.9893, - "longitude": -48.9141, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1715101, - "municipio": "Novo Acordo", - "latitude": -9.97063, - "longitude": -47.6785, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1303205, - "municipio": "Novo Airão", - "latitude": -2.63637, - "longitude": -60.9434, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1715150, - "municipio": "Novo Alegre", - "latitude": -12.9217, - "longitude": -46.5713, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1303304, - "municipio": "Novo Aripuanã", - "latitude": -5.12593, - "longitude": -60.3732, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4313490, - "municipio": "Novo Barreiro", - "latitude": -27.9077, - "longitude": -53.1103, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5215207, - "municipio": "Novo Brasil", - "latitude": -16.0313, - "longitude": -50.7113, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4313391, - "municipio": "Novo Cabrais", - "latitude": -29.7338, - "longitude": -52.9489, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3145307, - "municipio": "Novo Cruzeiro", - "latitude": -17.4654, - "longitude": -41.8826, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5215231, - "municipio": "Novo Gama", - "latitude": -16.0592, - "longitude": -48.0417, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4313409, - "municipio": "Novo Hamburgo", - "latitude": -29.6875, - "longitude": -51.1328, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4211652, - "municipio": "Novo Horizonte", - "latitude": -26.4442, - "longitude": -52.8281, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3533502, - "municipio": "Novo Horizonte", - "latitude": -21.4651, - "longitude": -49.2234, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2923035, - "municipio": "Novo Horizonte", - "latitude": -12.8083, - "longitude": -42.1682, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5106273, - "municipio": "Novo Horizonte do Norte", - "latitude": -11.4089, - "longitude": -57.3488, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1100502, - "municipio": "Novo Horizonte do Oeste", - "latitude": -11.6961, - "longitude": -61.9951, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5006259, - "municipio": "Novo Horizonte do Sul", - "latitude": -22.6693, - "longitude": -53.8601, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4117297, - "municipio": "Novo Itacolomi", - "latitude": -23.7631, - "longitude": -51.5079, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1715259, - "municipio": "Novo Jardim", - "latitude": -11.826, - "longitude": -46.6325, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2705606, - "municipio": "Novo Lino", - "latitude": -8.94191, - "longitude": -35.664, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4313425, - "municipio": "Novo Machado", - "latitude": -27.5765, - "longitude": -54.5036, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5106265, - "municipio": "Novo Mundo", - "latitude": -9.95616, - "longitude": -55.2029, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2309409, - "municipio": "Novo Oriente", - "latitude": -5.52552, - "longitude": -40.7713, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3145356, - "municipio": "Novo Oriente de Minas", - "latitude": -17.4089, - "longitude": -41.2194, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2206902, - "municipio": "Novo Oriente do Piauí", - "latitude": -6.44901, - "longitude": -41.9261, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5215256, - "municipio": "Novo Planalto", - "latitude": -13.2424, - "longitude": -49.506, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1505031, - "municipio": "Novo Progresso", - "latitude": -7.14347, - "longitude": -55.3786, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1505064, - "municipio": "Novo Repartimento", - "latitude": -4.24749, - "longitude": -49.9499, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2206951, - "municipio": "Novo Santo Antônio", - "latitude": -5.28749, - "longitude": -41.9325, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5106315, - "municipio": "Novo Santo Antônio", - "latitude": -12.2875, - "longitude": -50.9686, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5106281, - "municipio": "Novo São Joaquim", - "latitude": -14.9054, - "longitude": -53.0194, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4313441, - "municipio": "Novo Tiradentes", - "latitude": -27.5649, - "longitude": -53.1837, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2923050, - "municipio": "Novo Triunfo", - "latitude": -10.3182, - "longitude": -38.4014, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4313466, - "municipio": "Novo Xingu", - "latitude": -27.749, - "longitude": -53.0639, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3145372, - "municipio": "Novorizonte", - "latitude": -16.0162, - "longitude": -42.4044, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3533601, - "municipio": "Nuporanga", - "latitude": -20.7296, - "longitude": -47.7429, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1505106, - "municipio": "Óbidos", - "latitude": -1.90107, - "longitude": -55.5208, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2309458, - "municipio": "Ocara", - "latitude": -4.48523, - "longitude": -38.5933, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3533700, - "municipio": "Ocauçu", - "latitude": -22.438, - "longitude": -49.922, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2207009, - "municipio": "Oeiras", - "latitude": -7.01915, - "longitude": -42.1283, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1505205, - "municipio": "Oeiras do Pará", - "latitude": -2.00358, - "longitude": -49.8628, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1600501, - "municipio": "Oiapoque", - "latitude": 3.84074, - "longitude": -51.8331, - "codigo_uf": 16, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3145406, - "municipio": "Olaria", - "latitude": -21.8598, - "longitude": -43.9356, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3533809, - "municipio": "Óleo", - "latitude": -22.9435, - "longitude": -49.3419, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2510402, - "municipio": "Olho d'Água", - "latitude": -7.22118, - "longitude": -37.7406, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2107407, - "municipio": "Olho d'Água das Cunhãs", - "latitude": -4.13417, - "longitude": -45.1163, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2705705, - "municipio": "Olho d'Água das Flores", - "latitude": -9.53686, - "longitude": -37.2971, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2705804, - "municipio": "Olho d'Água do Casado", - "latitude": -9.50357, - "longitude": -37.8301, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2207108, - "municipio": "Olho D'Água do Piauí", - "latitude": -5.84125, - "longitude": -42.5594, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2705903, - "municipio": "Olho d'Água Grande", - "latitude": -10.0572, - "longitude": -36.8101, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2408409, - "municipio": "Olho-d'Água do Borges", - "latitude": -5.9486, - "longitude": -37.7047, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3145455, - "municipio": "Olhos d'Água", - "latitude": -17.3982, - "longitude": -43.5719, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3533908, - "municipio": "Olímpia", - "latitude": -20.7366, - "longitude": -48.9106, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3145505, - "municipio": "Olímpio Noronha", - "latitude": -22.0685, - "longitude": -45.2657, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2609600, - "municipio": "Olinda", - "latitude": -8.01017, - "longitude": -34.8545, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2107456, - "municipio": "Olinda Nova do Maranhão", - "latitude": -2.99295, - "longitude": -44.9897, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2923100, - "municipio": "Olindina", - "latitude": -11.3497, - "longitude": -38.3379, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2510501, - "municipio": "Olivedos", - "latitude": -6.98434, - "longitude": -36.241, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3145604, - "municipio": "Oliveira", - "latitude": -20.6982, - "longitude": -44.829, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1715507, - "municipio": "Oliveira de Fátima", - "latitude": -10.707, - "longitude": -48.9086, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2923209, - "municipio": "Oliveira dos Brejinhos", - "latitude": -12.3132, - "longitude": -42.8969, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3145703, - "municipio": "Oliveira Fortes", - "latitude": -21.3401, - "longitude": -43.4499, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2706000, - "municipio": "Olivença", - "latitude": -9.51954, - "longitude": -37.1954, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3145802, - "municipio": "Onça de Pitangui", - "latitude": -19.7276, - "longitude": -44.8058, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3534005, - "municipio": "Onda Verde", - "latitude": -20.6042, - "longitude": -49.2929, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3145851, - "municipio": "Oratórios", - "latitude": -20.4298, - "longitude": -42.7977, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3534104, - "municipio": "Oriente", - "latitude": -22.1549, - "longitude": -50.0971, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3534203, - "municipio": "Orindiúva", - "latitude": -20.1861, - "longitude": -49.3464, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1505304, - "municipio": "Oriximiná", - "latitude": -1.75989, - "longitude": -55.8579, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3145877, - "municipio": "Orizânia", - "latitude": -20.5142, - "longitude": -42.1991, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5215306, - "municipio": "Orizona", - "latitude": -17.0334, - "longitude": -48.2964, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3534302, - "municipio": "Orlândia", - "latitude": -20.7169, - "longitude": -47.8852, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4211702, - "municipio": "Orleans", - "latitude": -28.3487, - "longitude": -49.2986, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2609709, - "municipio": "Orobó", - "latitude": -7.74553, - "longitude": -35.5956, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2609808, - "municipio": "Orocó", - "latitude": -8.61026, - "longitude": -39.6026, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2309508, - "municipio": "Orós", - "latitude": -6.25182, - "longitude": -38.9053, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4117305, - "municipio": "Ortigueira", - "latitude": -24.2058, - "longitude": -50.9185, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3534401, - "municipio": "Osasco", - "latitude": -23.5324, - "longitude": -46.7916, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3534500, - "municipio": "Oscar Bressane", - "latitude": -22.3149, - "longitude": -50.2811, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4313508, - "municipio": "Osório", - "latitude": -29.8881, - "longitude": -50.2667, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3534609, - "municipio": "Osvaldo Cruz", - "latitude": -21.7968, - "longitude": -50.8793, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4211751, - "municipio": "Otacílio Costa", - "latitude": -27.4789, - "longitude": -50.1231, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1505403, - "municipio": "Ourém", - "latitude": -1.54168, - "longitude": -47.1126, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2923308, - "municipio": "Ouriçangas", - "latitude": -12.0175, - "longitude": -38.6166, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2609907, - "municipio": "Ouricuri", - "latitude": -7.87918, - "longitude": -40.08, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1505437, - "municipio": "Ourilândia do Norte", - "latitude": -6.7529, - "longitude": -51.0858, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3534708, - "municipio": "Ourinhos", - "latitude": -22.9797, - "longitude": -49.8697, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4117404, - "municipio": "Ourizona", - "latitude": -23.4053, - "longitude": -52.1964, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4211801, - "municipio": "Ouro", - "latitude": -27.3379, - "longitude": -51.6194, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3145901, - "municipio": "Ouro Branco", - "latitude": -20.5263, - "longitude": -43.6962, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2408508, - "municipio": "Ouro Branco", - "latitude": -6.6958, - "longitude": -36.9428, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2706109, - "municipio": "Ouro Branco", - "latitude": -9.15884, - "longitude": -37.3556, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3146008, - "municipio": "Ouro Fino", - "latitude": -22.2779, - "longitude": -46.3716, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3146107, - "municipio": "Ouro Preto", - "latitude": -20.3796, - "longitude": -43.512, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100155, - "municipio": "Ouro Preto do Oeste", - "latitude": -10.7167, - "longitude": -62.2565, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2510600, - "municipio": "Ouro Velho", - "latitude": -7.61604, - "longitude": -37.1519, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4211850, - "municipio": "Ouro Verde", - "latitude": -26.692, - "longitude": -52.3108, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3534807, - "municipio": "Ouro Verde", - "latitude": -21.4872, - "longitude": -51.7024, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5215405, - "municipio": "Ouro Verde de Goiás", - "latitude": -16.2181, - "longitude": -49.1942, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3146206, - "municipio": "Ouro Verde de Minas", - "latitude": -18.0719, - "longitude": -41.2734, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4117453, - "municipio": "Ouro Verde do Oeste", - "latitude": -24.7933, - "longitude": -53.9043, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3534757, - "municipio": "Ouroeste", - "latitude": -20.0061, - "longitude": -50.3768, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2923357, - "municipio": "Ourolândia", - "latitude": -10.9578, - "longitude": -41.0756, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5215504, - "municipio": "Ouvidor", - "latitude": -18.2277, - "longitude": -47.8355, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3534906, - "municipio": "Pacaembu", - "latitude": -21.5627, - "longitude": -51.2654, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1505486, - "municipio": "Pacajá", - "latitude": -3.83542, - "longitude": -50.6399, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2309607, - "municipio": "Pacajus", - "latitude": -4.17107, - "longitude": -38.465, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1400456, - "municipio": "Pacaraima", - "latitude": 4.4799, - "longitude": -61.1477, - "codigo_uf": 14, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2309706, - "municipio": "Pacatuba", - "latitude": -3.9784, - "longitude": -38.6183, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2804904, - "municipio": "Pacatuba", - "latitude": -10.4538, - "longitude": -36.6531, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2107506, - "municipio": "Paço do Lumiar", - "latitude": -2.51657, - "longitude": -44.1019, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2309805, - "municipio": "Pacoti", - "latitude": -4.22492, - "longitude": -38.922, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2309904, - "municipio": "Pacujá", - "latitude": -3.98327, - "longitude": -40.6989, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5215603, - "municipio": "Padre Bernardo", - "latitude": -15.1605, - "longitude": -48.2833, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3146255, - "municipio": "Padre Carvalho", - "latitude": -16.3646, - "longitude": -42.5088, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2207207, - "municipio": "Padre Marcos", - "latitude": -7.35101, - "longitude": -40.8997, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3146305, - "municipio": "Padre Paraíso", - "latitude": -17.0758, - "longitude": -41.4821, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2207306, - "municipio": "Paes Landim", - "latitude": -7.77375, - "longitude": -42.2474, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3146552, - "municipio": "Pai Pedro", - "latitude": -15.5271, - "longitude": -43.07, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4211876, - "municipio": "Paial", - "latitude": -27.2541, - "longitude": -52.4975, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4117503, - "municipio": "Paiçandu", - "latitude": -23.4555, - "longitude": -52.046, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4313607, - "municipio": "Paim Filho", - "latitude": -27.7075, - "longitude": -51.763, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3146404, - "municipio": "Paineiras", - "latitude": -18.8993, - "longitude": -45.5321, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4211892, - "municipio": "Painel", - "latitude": -27.9234, - "longitude": -50.0972, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3146503, - "municipio": "Pains", - "latitude": -20.3705, - "longitude": -45.6627, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3146602, - "municipio": "Paiva", - "latitude": -21.2913, - "longitude": -43.4088, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2207355, - "municipio": "Pajeú do Piauí", - "latitude": -7.85508, - "longitude": -42.8248, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2706208, - "municipio": "Palestina", - "latitude": -9.67493, - "longitude": -37.339, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3535002, - "municipio": "Palestina", - "latitude": -20.39, - "longitude": -49.4309, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5215652, - "municipio": "Palestina de Goiás", - "latitude": -16.7392, - "longitude": -51.5309, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1505494, - "municipio": "Palestina do Pará", - "latitude": -5.74027, - "longitude": -48.3181, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2310001, - "municipio": "Palhano", - "latitude": -4.73672, - "longitude": -37.9655, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4211900, - "municipio": "Palhoça", - "latitude": -27.6455, - "longitude": -48.6697, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3146701, - "municipio": "Palma", - "latitude": -21.3748, - "longitude": -42.3123, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4212007, - "municipio": "Palma Sola", - "latitude": -26.3471, - "longitude": -53.2771, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2310100, - "municipio": "Palmácia", - "latitude": -4.13831, - "longitude": -38.8446, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2610004, - "municipio": "Palmares", - "latitude": -8.68423, - "longitude": -35.589, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4313656, - "municipio": "Palmares do Sul", - "latitude": -30.2535, - "longitude": -50.5103, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3535101, - "municipio": "Palmares Paulista", - "latitude": -21.0854, - "longitude": -48.8037, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4117602, - "municipio": "Palmas", - "latitude": -26.4839, - "longitude": -51.9888, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1721000, - "municipio": "Palmas", - "latitude": -10.24, - "longitude": -48.3558, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2923407, - "municipio": "Palmas de Monte Alto", - "latitude": -14.2676, - "longitude": -43.1609, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4117701, - "municipio": "Palmeira", - "latitude": -25.4257, - "longitude": -50.007, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4212056, - "municipio": "Palmeira", - "latitude": -27.583, - "longitude": -50.1577, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3535200, - "municipio": "Palmeira d'Oeste", - "latitude": -20.4148, - "longitude": -50.7632, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4313706, - "municipio": "Palmeira das Missões", - "latitude": -27.9007, - "longitude": -53.3134, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2207405, - "municipio": "Palmeira do Piauí", - "latitude": -8.73076, - "longitude": -44.2466, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2706307, - "municipio": "Palmeira dos Índios", - "latitude": -9.40568, - "longitude": -36.6328, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2207504, - "municipio": "Palmeirais", - "latitude": -5.97086, - "longitude": -43.056, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2107605, - "municipio": "Palmeirândia", - "latitude": -2.64433, - "longitude": -44.8933, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1715705, - "municipio": "Palmeirante", - "latitude": -7.84786, - "longitude": -47.9242, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2923506, - "municipio": "Palmeiras", - "latitude": -12.5059, - "longitude": -41.5809, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5215702, - "municipio": "Palmeiras de Goiás", - "latitude": -16.8044, - "longitude": -49.924, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1713809, - "municipio": "Palmeiras do Tocantins", - "latitude": -6.61658, - "longitude": -47.5464, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2610103, - "municipio": "Palmeirina", - "latitude": -9.0109, - "longitude": -36.3242, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1715754, - "municipio": "Palmeirópolis", - "latitude": -13.0447, - "longitude": -48.4026, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5215801, - "municipio": "Palmelo", - "latitude": -17.3258, - "longitude": -48.426, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5215900, - "municipio": "Palminópolis", - "latitude": -16.7924, - "longitude": -50.1652, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3535309, - "municipio": "Palmital", - "latitude": -22.7858, - "longitude": -50.218, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4117800, - "municipio": "Palmital", - "latitude": -24.8853, - "longitude": -52.2029, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4313805, - "municipio": "Palmitinho", - "latitude": -27.3596, - "longitude": -53.558, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4212106, - "municipio": "Palmitos", - "latitude": -27.0702, - "longitude": -53.1586, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3146750, - "municipio": "Palmópolis", - "latitude": -16.7364, - "longitude": -40.4296, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4117909, - "municipio": "Palotina", - "latitude": -24.2868, - "longitude": -53.8404, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5216007, - "municipio": "Panamá", - "latitude": -18.1783, - "longitude": -49.355, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4313904, - "municipio": "Panambi", - "latitude": -28.2833, - "longitude": -53.5023, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3204005, - "municipio": "Pancas", - "latitude": -19.2229, - "longitude": -40.8534, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2610202, - "municipio": "Panelas", - "latitude": -8.66121, - "longitude": -36.0125, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3535408, - "municipio": "Panorama", - "latitude": -21.354, - "longitude": -51.8562, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4313953, - "municipio": "Pantano Grande", - "latitude": -30.1902, - "longitude": -52.3729, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2706406, - "municipio": "Pão de Açúcar", - "latitude": -9.74032, - "longitude": -37.4403, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3146909, - "municipio": "Papagaios", - "latitude": -19.4419, - "longitude": -44.7468, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4212205, - "municipio": "Papanduva", - "latitude": -26.3777, - "longitude": -50.1419, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2207553, - "municipio": "Paquetá", - "latitude": -7.10303, - "longitude": -41.7, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3147105, - "municipio": "Pará de Minas", - "latitude": -19.8534, - "longitude": -44.6114, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3303609, - "municipio": "Paracambi", - "latitude": -22.6078, - "longitude": -43.7108, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3147006, - "municipio": "Paracatu", - "latitude": -17.2252, - "longitude": -46.8711, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2310209, - "municipio": "Paracuru", - "latitude": -3.41436, - "longitude": -39.03, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1505502, - "municipio": "Paragominas", - "latitude": -3.00212, - "longitude": -47.3527, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3147204, - "municipio": "Paraguaçu", - "latitude": -21.5465, - "longitude": -45.7374, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3535507, - "municipio": "Paraguaçu Paulista", - "latitude": -22.4114, - "longitude": -50.5732, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4314001, - "municipio": "Paraí", - "latitude": -28.5964, - "longitude": -51.7896, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3303708, - "municipio": "Paraíba do Sul", - "latitude": -22.1585, - "longitude": -43.304, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2107704, - "municipio": "Paraibano", - "latitude": -6.4264, - "longitude": -43.9792, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3535606, - "municipio": "Paraibuna", - "latitude": -23.3872, - "longitude": -45.6639, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2310258, - "municipio": "Paraipaba", - "latitude": -3.43799, - "longitude": -39.1479, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3535705, - "municipio": "Paraíso", - "latitude": -21.0159, - "longitude": -48.7761, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4212239, - "municipio": "Paraíso", - "latitude": -26.62, - "longitude": -53.6716, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5006275, - "municipio": "Paraíso das Águas", - "latitude": -19.0216, - "longitude": -53.0116, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4118006, - "municipio": "Paraíso do Norte", - "latitude": -23.2824, - "longitude": -52.6054, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4314027, - "municipio": "Paraíso do Sul", - "latitude": -29.6717, - "longitude": -53.144, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1716109, - "municipio": "Paraíso do Tocantins", - "latitude": -10.175, - "longitude": -48.8823, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3147303, - "municipio": "Paraisópolis", - "latitude": -22.5539, - "longitude": -45.7803, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2310308, - "municipio": "Parambu", - "latitude": -6.20768, - "longitude": -40.6905, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2923605, - "municipio": "Paramirim", - "latitude": -13.4388, - "longitude": -42.2395, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2310407, - "municipio": "Paramoti", - "latitude": -4.08815, - "longitude": -39.2417, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1716208, - "municipio": "Paranã", - "latitude": -12.6167, - "longitude": -47.8734, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2408607, - "municipio": "Paraná", - "latitude": -6.47565, - "longitude": -38.3057, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4118105, - "municipio": "Paranacity", - "latitude": -22.9297, - "longitude": -52.1549, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4118204, - "municipio": "Paranaguá", - "latitude": -25.5161, - "longitude": -48.5225, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5006309, - "municipio": "Paranaíba", - "latitude": -19.6746, - "longitude": -51.1909, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5216304, - "municipio": "Paranaiguara", - "latitude": -18.9141, - "longitude": -50.6539, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5106299, - "municipio": "Paranaíta", - "latitude": -9.65835, - "longitude": -56.4786, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3535804, - "municipio": "Paranapanema", - "latitude": -23.3862, - "longitude": -48.7214, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4118303, - "municipio": "Paranapoema", - "latitude": -22.6412, - "longitude": -52.0905, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3535903, - "municipio": "Paranapuã", - "latitude": -20.1048, - "longitude": -50.5886, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2610301, - "municipio": "Paranatama", - "latitude": -8.91875, - "longitude": -36.6549, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5106307, - "municipio": "Paranatinga", - "latitude": -14.4265, - "longitude": -54.0524, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4118402, - "municipio": "Paranavaí", - "latitude": -23.0816, - "longitude": -52.4617, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5006358, - "municipio": "Paranhos", - "latitude": -23.8911, - "longitude": -55.429, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3147402, - "municipio": "Paraopeba", - "latitude": -19.2732, - "longitude": -44.4044, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3536000, - "municipio": "Parapuã", - "latitude": -21.7792, - "longitude": -50.7949, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2510659, - "municipio": "Parari", - "latitude": -7.30975, - "longitude": -36.6522, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2923704, - "municipio": "Paratinga", - "latitude": -12.687, - "longitude": -43.1798, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3303807, - "municipio": "Paraty", - "latitude": -23.2221, - "longitude": -44.7175, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2408706, - "municipio": "Paraú", - "latitude": -5.76893, - "longitude": -37.1032, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1505536, - "municipio": "Parauapebas", - "latitude": -6.06781, - "longitude": -49.9037, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5216403, - "municipio": "Paraúna", - "latitude": -16.9463, - "longitude": -50.4484, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2408805, - "municipio": "Parazinho", - "latitude": -5.22276, - "longitude": -35.8398, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3536109, - "municipio": "Pardinho", - "latitude": -23.0841, - "longitude": -48.3679, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4314035, - "municipio": "Pareci Novo", - "latitude": -29.6365, - "longitude": -51.3974, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1101450, - "municipio": "Parecis", - "latitude": -12.1754, - "longitude": -61.6032, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2408904, - "municipio": "Parelhas", - "latitude": -6.68491, - "longitude": -36.6566, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2706422, - "municipio": "Pariconha", - "latitude": -9.25634, - "longitude": -37.9988, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1303403, - "municipio": "Parintins", - "latitude": -2.63741, - "longitude": -56.729, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2923803, - "municipio": "Paripiranga", - "latitude": -10.6859, - "longitude": -37.8626, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2706448, - "municipio": "Paripueira", - "latitude": -9.46313, - "longitude": -35.552, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3536208, - "municipio": "Pariquera-Açu", - "latitude": -24.7147, - "longitude": -47.8742, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3536257, - "municipio": "Parisi", - "latitude": -20.3034, - "longitude": -50.0163, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2207603, - "municipio": "Parnaguá", - "latitude": -10.2166, - "longitude": -44.63, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2207702, - "municipio": "Parnaíba", - "latitude": -2.90585, - "longitude": -41.7754, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2403251, - "municipio": "Parnamirim", - "latitude": -5.91116, - "longitude": -35.271, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2610400, - "municipio": "Parnamirim", - "latitude": -8.08729, - "longitude": -39.5795, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2107803, - "municipio": "Parnarama", - "latitude": -5.67365, - "longitude": -43.1011, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4314050, - "municipio": "Parobé", - "latitude": -29.6243, - "longitude": -50.8312, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2409100, - "municipio": "Passa e Fica", - "latitude": -6.43018, - "longitude": -35.6442, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3147600, - "municipio": "Passa Quatro", - "latitude": -22.3871, - "longitude": -44.9709, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4314068, - "municipio": "Passa Sete", - "latitude": -29.4577, - "longitude": -52.9599, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3147709, - "municipio": "Passa Tempo", - "latitude": -20.6539, - "longitude": -44.4926, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3147808, - "municipio": "Passa-Vinte", - "latitude": -22.2097, - "longitude": -44.2344, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3147501, - "municipio": "Passabém", - "latitude": -19.3509, - "longitude": -43.1383, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2409209, - "municipio": "Passagem", - "latitude": -6.27268, - "longitude": -35.37, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2510709, - "municipio": "Passagem", - "latitude": -7.13467, - "longitude": -37.0433, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2107902, - "municipio": "Passagem Franca", - "latitude": -6.17745, - "longitude": -43.7755, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2207751, - "municipio": "Passagem Franca do Piauí", - "latitude": -5.86036, - "longitude": -42.4436, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2610509, - "municipio": "Passira", - "latitude": -7.9971, - "longitude": -35.5813, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2706505, - "municipio": "Passo de Camaragibe", - "latitude": -9.24511, - "longitude": -35.4745, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4212254, - "municipio": "Passo de Torres", - "latitude": -29.3099, - "longitude": -49.722, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4314076, - "municipio": "Passo do Sobrado", - "latitude": -29.748, - "longitude": -52.2748, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4314100, - "municipio": "Passo Fundo", - "latitude": -28.2576, - "longitude": -52.4091, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3147907, - "municipio": "Passos", - "latitude": -20.7193, - "longitude": -46.609, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4212270, - "municipio": "Passos Maia", - "latitude": -26.7829, - "longitude": -52.0568, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2108009, - "municipio": "Pastos Bons", - "latitude": -6.60296, - "longitude": -44.0745, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3147956, - "municipio": "Patis", - "latitude": -16.0773, - "longitude": -44.0787, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4118451, - "municipio": "Pato Bragado", - "latitude": -24.6271, - "longitude": -54.2265, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4118501, - "municipio": "Pato Branco", - "latitude": -26.2292, - "longitude": -52.6706, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2510808, - "municipio": "Patos", - "latitude": -7.01743, - "longitude": -37.2747, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3148004, - "municipio": "Patos de Minas", - "latitude": -18.5699, - "longitude": -46.5013, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2207777, - "municipio": "Patos do Piauí", - "latitude": -7.67231, - "longitude": -41.2408, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3148103, - "municipio": "Patrocínio", - "latitude": -18.9379, - "longitude": -46.9934, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3148202, - "municipio": "Patrocínio do Muriaé", - "latitude": -21.1544, - "longitude": -42.2125, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3536307, - "municipio": "Patrocínio Paulista", - "latitude": -20.6384, - "longitude": -47.2801, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2409308, - "municipio": "Patu", - "latitude": -6.10656, - "longitude": -37.6356, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3303856, - "municipio": "Paty do Alferes", - "latitude": -22.4309, - "longitude": -43.4285, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2923902, - "municipio": "Pau Brasil", - "latitude": -15.4572, - "longitude": -39.6458, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1505551, - "municipio": "Pau d'Arco", - "latitude": -1.59772, - "longitude": -46.9268, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1716307, - "municipio": "Pau D'Arco", - "latitude": -7.53919, - "longitude": -49.367, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2207793, - "municipio": "Pau D'Arco do Piauí", - "latitude": -5.26072, - "longitude": -42.3908, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2409407, - "municipio": "Pau dos Ferros", - "latitude": -6.10498, - "longitude": -38.2077, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2610608, - "municipio": "Paudalho", - "latitude": -7.90287, - "longitude": -35.1716, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1303502, - "municipio": "Pauini", - "latitude": -7.71311, - "longitude": -66.992, - "codigo_uf": 13, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 3148301, - "municipio": "Paula Cândido", - "latitude": -20.8754, - "longitude": -42.9752, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4118600, - "municipio": "Paula Freitas", - "latitude": -26.2105, - "longitude": -50.931, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3536406, - "municipio": "Paulicéia", - "latitude": -21.3153, - "longitude": -51.8321, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3536505, - "municipio": "Paulínia", - "latitude": -22.7542, - "longitude": -47.1488, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2108058, - "municipio": "Paulino Neves", - "latitude": -2.72094, - "longitude": -42.5258, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2510907, - "municipio": "Paulista", - "latitude": -6.59138, - "longitude": -37.6185, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2610707, - "municipio": "Paulista", - "latitude": -7.93401, - "longitude": -34.8684, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2207801, - "municipio": "Paulistana", - "latitude": -8.13436, - "longitude": -41.1431, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3536570, - "municipio": "Paulistânia", - "latitude": -22.5768, - "longitude": -49.4008, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3148400, - "municipio": "Paulistas", - "latitude": -18.4276, - "longitude": -42.8628, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2924009, - "municipio": "Paulo Afonso", - "latitude": -9.3983, - "longitude": -38.2216, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4314134, - "municipio": "Paulo Bento", - "latitude": -27.7051, - "longitude": -52.4169, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3536604, - "municipio": "Paulo de Faria", - "latitude": -20.0296, - "longitude": -49.4, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4118709, - "municipio": "Paulo Frontin", - "latitude": -26.0466, - "longitude": -50.8304, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2706604, - "municipio": "Paulo Jacinto", - "latitude": -9.36792, - "longitude": -36.3672, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4212304, - "municipio": "Paulo Lopes", - "latitude": -27.9607, - "longitude": -48.6864, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2108108, - "municipio": "Paulo Ramos", - "latitude": -4.44485, - "longitude": -45.2398, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3148509, - "municipio": "Pavão", - "latitude": -17.4267, - "longitude": -41.0035, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4314159, - "municipio": "Paverama", - "latitude": -29.5486, - "longitude": -51.7339, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2207850, - "municipio": "Pavussu", - "latitude": -7.96059, - "longitude": -43.2284, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2924058, - "municipio": "Pé de Serra", - "latitude": -11.8313, - "longitude": -39.611, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4118808, - "municipio": "Peabiru", - "latitude": -23.914, - "longitude": -52.3431, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3148608, - "municipio": "Peçanha", - "latitude": -18.5441, - "longitude": -42.5583, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3536703, - "municipio": "Pederneiras", - "latitude": -22.3511, - "longitude": -48.7781, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2610806, - "municipio": "Pedra", - "latitude": -8.49641, - "longitude": -36.94, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3148707, - "municipio": "Pedra Azul", - "latitude": -16.0086, - "longitude": -41.2909, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3536802, - "municipio": "Pedra Bela", - "latitude": -22.7902, - "longitude": -46.4455, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3148756, - "municipio": "Pedra Bonita", - "latitude": -20.5219, - "longitude": -42.3304, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2511004, - "municipio": "Pedra Branca", - "latitude": -7.42169, - "longitude": -38.0689, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2310506, - "municipio": "Pedra Branca", - "latitude": -5.45341, - "longitude": -39.7078, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1600154, - "municipio": "Pedra Branca do Amapari", - "latitude": 0.777424, - "longitude": -51.9503, - "codigo_uf": 16, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3148806, - "municipio": "Pedra do Anta", - "latitude": -20.5968, - "longitude": -42.7123, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3148905, - "municipio": "Pedra do Indaiá", - "latitude": -20.2563, - "longitude": -45.2107, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3149002, - "municipio": "Pedra Dourada", - "latitude": -20.8266, - "longitude": -42.1515, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2409506, - "municipio": "Pedra Grande", - "latitude": -5.14988, - "longitude": -35.876, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2511103, - "municipio": "Pedra Lavrada", - "latitude": -6.74997, - "longitude": -36.4758, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2805000, - "municipio": "Pedra Mole", - "latitude": -10.6134, - "longitude": -37.6922, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2409605, - "municipio": "Pedra Preta", - "latitude": -5.57352, - "longitude": -36.1084, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5106372, - "municipio": "Pedra Preta", - "latitude": -16.6245, - "longitude": -54.4722, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3149101, - "municipio": "Pedralva", - "latitude": -22.2386, - "longitude": -45.4654, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3536901, - "municipio": "Pedranópolis", - "latitude": -20.2474, - "longitude": -50.1129, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2924108, - "municipio": "Pedrão", - "latitude": -12.1491, - "longitude": -38.6487, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4314175, - "municipio": "Pedras Altas", - "latitude": -31.7365, - "longitude": -53.5814, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2511202, - "municipio": "Pedras de Fogo", - "latitude": -7.39107, - "longitude": -35.1065, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3149150, - "municipio": "Pedras de Maria da Cruz", - "latitude": -15.6032, - "longitude": -44.391, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4212403, - "municipio": "Pedras Grandes", - "latitude": -28.4339, - "longitude": -49.1949, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3537008, - "municipio": "Pedregulho", - "latitude": -20.2535, - "longitude": -47.4775, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3537107, - "municipio": "Pedreira", - "latitude": -22.7413, - "longitude": -46.8948, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2108207, - "municipio": "Pedreiras", - "latitude": -4.56482, - "longitude": -44.6006, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2805109, - "municipio": "Pedrinhas", - "latitude": -11.1902, - "longitude": -37.6775, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3537156, - "municipio": "Pedrinhas Paulista", - "latitude": -22.8174, - "longitude": -50.7933, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3149200, - "municipio": "Pedrinópolis", - "latitude": -19.2241, - "longitude": -47.4579, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1716505, - "municipio": "Pedro Afonso", - "latitude": -8.97034, - "longitude": -48.1729, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2924207, - "municipio": "Pedro Alexandre", - "latitude": -10.012, - "longitude": -37.8932, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2409704, - "municipio": "Pedro Avelino", - "latitude": -5.5161, - "longitude": -36.3867, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3204054, - "municipio": "Pedro Canário", - "latitude": -18.3004, - "longitude": -39.9574, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3537206, - "municipio": "Pedro de Toledo", - "latitude": -24.2764, - "longitude": -47.2354, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2108256, - "municipio": "Pedro do Rosário", - "latitude": -2.97272, - "longitude": -45.3493, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5006408, - "municipio": "Pedro Gomes", - "latitude": -18.0996, - "longitude": -54.5507, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2207900, - "municipio": "Pedro II", - "latitude": -4.42585, - "longitude": -41.4482, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2207934, - "municipio": "Pedro Laurentino", - "latitude": -8.06807, - "longitude": -42.2847, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3149309, - "municipio": "Pedro Leopoldo", - "latitude": -19.6308, - "longitude": -44.0383, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4314209, - "municipio": "Pedro Osório", - "latitude": -31.8642, - "longitude": -52.8184, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2512721, - "municipio": "Pedro Régis", - "latitude": -6.63323, - "longitude": -35.2966, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3149408, - "municipio": "Pedro Teixeira", - "latitude": -21.7076, - "longitude": -43.743, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2409803, - "municipio": "Pedro Velho", - "latitude": -6.4356, - "longitude": -35.2195, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1716604, - "municipio": "Peixe", - "latitude": -12.0254, - "longitude": -48.5395, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1505601, - "municipio": "Peixe-Boi", - "latitude": -1.19382, - "longitude": -47.324, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5106422, - "municipio": "Peixoto de Azevedo", - "latitude": -10.2262, - "longitude": -54.9794, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4314308, - "municipio": "Pejuçara", - "latitude": -28.4283, - "longitude": -53.6579, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4314407, - "municipio": "Pelotas", - "latitude": -31.7649, - "longitude": -52.3371, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2310605, - "municipio": "Penaforte", - "latitude": -7.82163, - "longitude": -39.0707, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2108306, - "municipio": "Penalva", - "latitude": -3.27674, - "longitude": -45.1768, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3537305, - "municipio": "Penápolis", - "latitude": -21.4148, - "longitude": -50.0769, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2409902, - "municipio": "Pendências", - "latitude": -5.2564, - "longitude": -36.7095, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2706703, - "municipio": "Penedo", - "latitude": -10.2874, - "longitude": -36.5819, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4212502, - "municipio": "Penha", - "latitude": -26.7754, - "longitude": -48.6465, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2310704, - "municipio": "Pentecoste", - "latitude": -3.79274, - "longitude": -39.2692, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3149507, - "municipio": "Pequeri", - "latitude": -21.8341, - "longitude": -43.1145, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3149606, - "municipio": "Pequi", - "latitude": -19.6284, - "longitude": -44.6604, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1716653, - "municipio": "Pequizeiro", - "latitude": -8.5932, - "longitude": -48.9327, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3149705, - "municipio": "Perdigão", - "latitude": -19.9411, - "longitude": -45.078, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3149804, - "municipio": "Perdizes", - "latitude": -19.3434, - "longitude": -47.2963, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3149903, - "municipio": "Perdões", - "latitude": -21.0932, - "longitude": -45.0896, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3537404, - "municipio": "Pereira Barreto", - "latitude": -20.6368, - "longitude": -51.1123, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3537503, - "municipio": "Pereiras", - "latitude": -23.0804, - "longitude": -47.972, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2310803, - "municipio": "Pereiro", - "latitude": -6.03576, - "longitude": -38.4624, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2108405, - "municipio": "Peri Mirim", - "latitude": -2.57676, - "longitude": -44.8504, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3149952, - "municipio": "Periquito", - "latitude": -19.1573, - "longitude": -42.2333, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4212601, - "municipio": "Peritiba", - "latitude": -27.3754, - "longitude": -51.9018, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2108454, - "municipio": "Peritoró", - "latitude": -4.37459, - "longitude": -44.3369, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4118857, - "municipio": "Perobal", - "latitude": -23.8949, - "longitude": -53.4098, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4118907, - "municipio": "Pérola", - "latitude": -23.8039, - "longitude": -53.6834, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4119004, - "municipio": "Pérola d'Oeste", - "latitude": -25.8278, - "longitude": -53.7433, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5216452, - "municipio": "Perolândia", - "latitude": -17.5258, - "longitude": -52.065, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3537602, - "municipio": "Peruíbe", - "latitude": -24.312, - "longitude": -47.0012, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3150000, - "municipio": "Pescador", - "latitude": -18.357, - "longitude": -41.6006, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4212650, - "municipio": "Pescaria Brava", - "latitude": -28.3966, - "longitude": -48.8864, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2610905, - "municipio": "Pesqueira", - "latitude": -8.35797, - "longitude": -36.6978, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2611002, - "municipio": "Petrolândia", - "latitude": -9.06863, - "longitude": -38.3027, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4212700, - "municipio": "Petrolândia", - "latitude": -27.5346, - "longitude": -49.6937, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2611101, - "municipio": "Petrolina", - "latitude": -9.38866, - "longitude": -40.5027, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5216809, - "municipio": "Petrolina de Goiás", - "latitude": -16.0968, - "longitude": -49.3364, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3303906, - "municipio": "Petrópolis", - "latitude": -22.52, - "longitude": -43.1926, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2706802, - "municipio": "Piaçabuçu", - "latitude": -10.406, - "longitude": -36.434, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3537701, - "municipio": "Piacatu", - "latitude": -21.5921, - "longitude": -50.6003, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2511301, - "municipio": "Piancó", - "latitude": -7.19282, - "longitude": -37.9289, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2924306, - "municipio": "Piatã", - "latitude": -13.1465, - "longitude": -41.7702, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3150109, - "municipio": "Piau", - "latitude": -21.5096, - "longitude": -43.313, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4314423, - "municipio": "Picada Café", - "latitude": -29.4464, - "longitude": -51.1367, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1505635, - "municipio": "Piçarra", - "latitude": -6.43778, - "longitude": -48.8716, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2208007, - "municipio": "Picos", - "latitude": -7.07721, - "longitude": -41.467, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2511400, - "municipio": "Picuí", - "latitude": -6.50845, - "longitude": -36.3497, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3537800, - "municipio": "Piedade", - "latitude": -23.7139, - "longitude": -47.4256, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3150158, - "municipio": "Piedade de Caratinga", - "latitude": -19.7593, - "longitude": -42.0756, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3150208, - "municipio": "Piedade de Ponte Nova", - "latitude": -20.2438, - "longitude": -42.7379, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3150307, - "municipio": "Piedade do Rio Grande", - "latitude": -21.469, - "longitude": -44.1938, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3150406, - "municipio": "Piedade dos Gerais", - "latitude": -20.4715, - "longitude": -44.2243, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4119103, - "municipio": "Piên", - "latitude": -26.0965, - "longitude": -49.4336, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2924405, - "municipio": "Pilão Arcado", - "latitude": -10.0051, - "longitude": -42.4936, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2511509, - "municipio": "Pilar", - "latitude": -7.26403, - "longitude": -35.2523, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2706901, - "municipio": "Pilar", - "latitude": -9.60135, - "longitude": -35.9543, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5216908, - "municipio": "Pilar de Goiás", - "latitude": -14.7608, - "longitude": -49.5784, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3537909, - "municipio": "Pilar do Sul", - "latitude": -23.8077, - "longitude": -47.7222, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2410009, - "municipio": "Pilões", - "latitude": -6.26364, - "longitude": -38.0461, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2511608, - "municipio": "Pilões", - "latitude": -6.86827, - "longitude": -35.613, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2511707, - "municipio": "Pilõezinhos", - "latitude": -6.84277, - "longitude": -35.531, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3150505, - "municipio": "Pimenta", - "latitude": -20.4827, - "longitude": -45.8049, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100189, - "municipio": "Pimenta Bueno", - "latitude": -11.672, - "longitude": -61.198, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2208106, - "municipio": "Pimenteiras", - "latitude": -6.23839, - "longitude": -41.4113, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1101468, - "municipio": "Pimenteiras do Oeste", - "latitude": -13.4823, - "longitude": -61.0471, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2924504, - "municipio": "Pindaí", - "latitude": -14.4921, - "longitude": -42.686, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3538006, - "municipio": "Pindamonhangaba", - "latitude": -22.9246, - "longitude": -45.4613, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2108504, - "municipio": "Pindaré-Mirim", - "latitude": -3.60985, - "longitude": -45.342, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2707008, - "municipio": "Pindoba", - "latitude": -9.47382, - "longitude": -36.2918, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2924603, - "municipio": "Pindobaçu", - "latitude": -10.7433, - "longitude": -40.3675, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3538105, - "municipio": "Pindorama", - "latitude": -21.1853, - "longitude": -48.9086, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1717008, - "municipio": "Pindorama do Tocantins", - "latitude": -11.1311, - "longitude": -47.5726, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2310852, - "municipio": "Pindoretama", - "latitude": -4.01584, - "longitude": -38.3061, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3150539, - "municipio": "Pingo-d'Água", - "latitude": -19.7287, - "longitude": -42.4095, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4119152, - "municipio": "Pinhais", - "latitude": -25.4429, - "longitude": -49.1927, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4314456, - "municipio": "Pinhal", - "latitude": -27.508, - "longitude": -53.2082, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4314464, - "municipio": "Pinhal da Serra", - "latitude": -27.8751, - "longitude": -51.1673, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4119251, - "municipio": "Pinhal de São Bento", - "latitude": -26.0324, - "longitude": -53.482, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4314472, - "municipio": "Pinhal Grande", - "latitude": -29.345, - "longitude": -53.3206, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4119202, - "municipio": "Pinhalão", - "latitude": -23.7982, - "longitude": -50.0536, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3538204, - "municipio": "Pinhalzinho", - "latitude": -22.7811, - "longitude": -46.5897, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4212908, - "municipio": "Pinhalzinho", - "latitude": -26.8495, - "longitude": -52.9913, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2805208, - "municipio": "Pinhão", - "latitude": -10.5677, - "longitude": -37.7242, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4119301, - "municipio": "Pinhão", - "latitude": -25.6944, - "longitude": -51.6536, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3303955, - "municipio": "Pinheiral", - "latitude": -22.5172, - "longitude": -44.0022, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4314498, - "municipio": "Pinheirinho do Vale", - "latitude": -27.2109, - "longitude": -53.608, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2108603, - "municipio": "Pinheiro", - "latitude": -2.52224, - "longitude": -45.0788, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4314506, - "municipio": "Pinheiro Machado", - "latitude": -31.5794, - "longitude": -53.3798, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4213005, - "municipio": "Pinheiro Preto", - "latitude": -27.0483, - "longitude": -51.2243, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3204104, - "municipio": "Pinheiros", - "latitude": -18.4141, - "longitude": -40.2171, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2924652, - "municipio": "Pintadas", - "latitude": -11.8117, - "longitude": -39.9009, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4314548, - "municipio": "Pinto Bandeira", - "latitude": -29.0975, - "longitude": -51.4503, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3150570, - "municipio": "Pintópolis", - "latitude": -16.0572, - "longitude": -45.1402, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2208205, - "municipio": "Pio IX", - "latitude": -6.83002, - "longitude": -40.6083, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2108702, - "municipio": "Pio XII", - "latitude": -3.89315, - "longitude": -45.1759, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3538303, - "municipio": "Piquerobi", - "latitude": -21.8747, - "longitude": -51.7282, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2310902, - "municipio": "Piquet Carneiro", - "latitude": -5.80025, - "longitude": -39.417, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3538501, - "municipio": "Piquete", - "latitude": -22.6069, - "longitude": -45.1869, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3538600, - "municipio": "Piracaia", - "latitude": -23.0525, - "longitude": -46.3594, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5217104, - "municipio": "Piracanjuba", - "latitude": -17.302, - "longitude": -49.017, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3150604, - "municipio": "Piracema", - "latitude": -20.5089, - "longitude": -44.4783, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3538709, - "municipio": "Piracicaba", - "latitude": -22.7338, - "longitude": -47.6476, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2208304, - "municipio": "Piracuruca", - "latitude": -3.93335, - "longitude": -41.7088, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3304003, - "municipio": "Piraí", - "latitude": -22.6215, - "longitude": -43.9081, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2924678, - "municipio": "Piraí do Norte", - "latitude": -13.759, - "longitude": -39.3836, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4119400, - "municipio": "Piraí do Sul", - "latitude": -24.5306, - "longitude": -49.9433, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3538808, - "municipio": "Piraju", - "latitude": -23.1981, - "longitude": -49.3803, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3150703, - "municipio": "Pirajuba", - "latitude": -19.9092, - "longitude": -48.7027, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3538907, - "municipio": "Pirajuí", - "latitude": -21.999, - "longitude": -49.4608, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2805307, - "municipio": "Pirambu", - "latitude": -10.7215, - "longitude": -36.8544, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3150802, - "municipio": "Piranga", - "latitude": -20.6834, - "longitude": -43.2967, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3539004, - "municipio": "Pirangi", - "latitude": -21.0886, - "longitude": -48.6607, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3150901, - "municipio": "Piranguçu", - "latitude": -22.5249, - "longitude": -45.4945, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3151008, - "municipio": "Piranguinho", - "latitude": -22.395, - "longitude": -45.5324, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2707107, - "municipio": "Piranhas", - "latitude": -9.624, - "longitude": -37.757, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5217203, - "municipio": "Piranhas", - "latitude": -16.4258, - "longitude": -51.8235, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2108801, - "municipio": "Pirapemas", - "latitude": -3.72041, - "longitude": -44.2216, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3151107, - "municipio": "Pirapetinga", - "latitude": -21.6554, - "longitude": -42.3434, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4314555, - "municipio": "Pirapó", - "latitude": -28.0439, - "longitude": -55.2001, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3151206, - "municipio": "Pirapora", - "latitude": -17.3392, - "longitude": -44.934, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3539103, - "municipio": "Pirapora do Bom Jesus", - "latitude": -23.3965, - "longitude": -46.9991, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3539202, - "municipio": "Pirapozinho", - "latitude": -22.2711, - "longitude": -51.4976, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4119509, - "municipio": "Piraquara", - "latitude": -25.4422, - "longitude": -49.0624, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1717206, - "municipio": "Piraquê", - "latitude": -6.77302, - "longitude": -48.2958, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3539301, - "municipio": "Pirassununga", - "latitude": -21.996, - "longitude": -47.4257, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4314605, - "municipio": "Piratini", - "latitude": -31.4473, - "longitude": -53.0973, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3539400, - "municipio": "Piratininga", - "latitude": -22.4142, - "longitude": -49.1339, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4213104, - "municipio": "Piratuba", - "latitude": -27.4242, - "longitude": -51.7668, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3151305, - "municipio": "Piraúba", - "latitude": -21.2825, - "longitude": -43.0172, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5217302, - "municipio": "Pirenópolis", - "latitude": -15.8507, - "longitude": -48.9584, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5217401, - "municipio": "Pires do Rio", - "latitude": -17.3019, - "longitude": -48.2768, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2310951, - "municipio": "Pires Ferreira", - "latitude": -4.23922, - "longitude": -40.6442, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2924702, - "municipio": "Piripá", - "latitude": -14.9444, - "longitude": -41.7168, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2208403, - "municipio": "Piripiri", - "latitude": -4.27157, - "longitude": -41.7716, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2924801, - "municipio": "Piritiba", - "latitude": -11.73, - "longitude": -40.5587, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2511806, - "municipio": "Pirpirituba", - "latitude": -6.77922, - "longitude": -35.4906, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4119608, - "municipio": "Pitanga", - "latitude": -24.7588, - "longitude": -51.7596, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3539509, - "municipio": "Pitangueiras", - "latitude": -21.0132, - "longitude": -48.221, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4119657, - "municipio": "Pitangueiras", - "latitude": -23.2281, - "longitude": -51.5873, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3151404, - "municipio": "Pitangui", - "latitude": -19.6741, - "longitude": -44.8964, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2511905, - "municipio": "Pitimbu", - "latitude": -7.4664, - "longitude": -34.8151, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1717503, - "municipio": "Pium", - "latitude": -10.442, - "longitude": -49.1876, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3204203, - "municipio": "Piúma", - "latitude": -20.8334, - "longitude": -40.7268, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3151503, - "municipio": "Piumhi", - "latitude": -20.4762, - "longitude": -45.9589, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1505650, - "municipio": "Placas", - "latitude": -3.86813, - "longitude": -54.2124, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1200385, - "municipio": "Plácido de Castro", - "latitude": -10.2806, - "longitude": -67.1371, - "codigo_uf": 12, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 5217609, - "municipio": "Planaltina", - "latitude": -15.452, - "longitude": -47.6089, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4119707, - "municipio": "Planaltina do Paraná", - "latitude": -23.0101, - "longitude": -52.9162, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2924900, - "municipio": "Planaltino", - "latitude": -13.2618, - "longitude": -40.3695, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2925006, - "municipio": "Planalto", - "latitude": -14.6654, - "longitude": -40.4718, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4314704, - "municipio": "Planalto", - "latitude": -27.3297, - "longitude": -53.0575, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3539608, - "municipio": "Planalto", - "latitude": -21.0342, - "longitude": -49.933, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4119806, - "municipio": "Planalto", - "latitude": -25.7211, - "longitude": -53.7642, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4213153, - "municipio": "Planalto Alegre", - "latitude": -27.0704, - "longitude": -52.867, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5106455, - "municipio": "Planalto da Serra", - "latitude": -14.6518, - "longitude": -54.7819, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3151602, - "municipio": "Planura", - "latitude": -20.1376, - "longitude": -48.7, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3539707, - "municipio": "Platina", - "latitude": -22.6371, - "longitude": -50.2104, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3539806, - "municipio": "Poá", - "latitude": -23.5333, - "longitude": -46.3473, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2611200, - "municipio": "Poção", - "latitude": -8.18726, - "longitude": -36.7111, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2108900, - "municipio": "Poção de Pedras", - "latitude": -4.74626, - "longitude": -44.9432, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2512002, - "municipio": "Pocinhos", - "latitude": -7.06658, - "longitude": -36.0668, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2410108, - "municipio": "Poço Branco", - "latitude": -5.62233, - "longitude": -35.6635, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2512036, - "municipio": "Poço Dantas", - "latitude": -6.39876, - "longitude": -38.4909, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4314753, - "municipio": "Poço das Antas", - "latitude": -29.4481, - "longitude": -51.6719, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2707206, - "municipio": "Poço das Trincheiras", - "latitude": -9.30742, - "longitude": -37.2889, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2512077, - "municipio": "Poço de José de Moura", - "latitude": -6.56401, - "longitude": -38.5111, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3151701, - "municipio": "Poço Fundo", - "latitude": -21.78, - "longitude": -45.9658, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2805406, - "municipio": "Poço Redondo", - "latitude": -9.80616, - "longitude": -37.6833, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2805505, - "municipio": "Poço Verde", - "latitude": -10.7151, - "longitude": -38.1813, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2925105, - "municipio": "Poções", - "latitude": -14.5234, - "longitude": -40.3634, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5106505, - "municipio": "Poconé", - "latitude": -16.266, - "longitude": -56.6261, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3151800, - "municipio": "Poços de Caldas", - "latitude": -21.78, - "longitude": -46.5692, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3151909, - "municipio": "Pocrane", - "latitude": -19.6208, - "longitude": -41.6334, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2925204, - "municipio": "Pojuca", - "latitude": -12.4303, - "longitude": -38.3374, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3539905, - "municipio": "Poloni", - "latitude": -20.7829, - "longitude": -49.8258, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2512101, - "municipio": "Pombal", - "latitude": -6.76606, - "longitude": -37.8003, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2611309, - "municipio": "Pombos", - "latitude": -8.13982, - "longitude": -35.3967, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4213203, - "municipio": "Pomerode", - "latitude": -26.7384, - "longitude": -49.1785, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3540002, - "municipio": "Pompéia", - "latitude": -22.107, - "longitude": -50.176, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3152006, - "municipio": "Pompéu", - "latitude": -19.2257, - "longitude": -45.0141, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3540101, - "municipio": "Pongaí", - "latitude": -21.7396, - "longitude": -49.3604, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1505700, - "municipio": "Ponta de Pedras", - "latitude": -1.39587, - "longitude": -48.8661, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4119905, - "municipio": "Ponta Grossa", - "latitude": -25.0916, - "longitude": -50.1668, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5006606, - "municipio": "Ponta Porã", - "latitude": -22.5296, - "longitude": -55.7203, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3540200, - "municipio": "Pontal", - "latitude": -21.0216, - "longitude": -48.0423, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5106653, - "municipio": "Pontal do Araguaia", - "latitude": -15.9274, - "longitude": -52.3273, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4119954, - "municipio": "Pontal do Paraná", - "latitude": -25.6735, - "longitude": -48.5111, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5217708, - "municipio": "Pontalina", - "latitude": -17.5225, - "longitude": -49.4489, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3540259, - "municipio": "Pontalinda", - "latitude": -20.4396, - "longitude": -50.5258, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4314779, - "municipio": "Pontão", - "latitude": -28.0585, - "longitude": -52.6791, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4213302, - "municipio": "Ponte Alta", - "latitude": -27.4835, - "longitude": -50.3764, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1717800, - "municipio": "Ponte Alta do Bom Jesus", - "latitude": -12.0853, - "longitude": -46.4825, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4213351, - "municipio": "Ponte Alta do Norte", - "latitude": -27.1591, - "longitude": -50.4659, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1717909, - "municipio": "Ponte Alta do Tocantins", - "latitude": -10.7481, - "longitude": -47.5276, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5106703, - "municipio": "Ponte Branca", - "latitude": -16.7584, - "longitude": -52.8369, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3152105, - "municipio": "Ponte Nova", - "latitude": -20.4111, - "longitude": -42.8978, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4314787, - "municipio": "Ponte Preta", - "latitude": -27.6587, - "longitude": -52.4848, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4213401, - "municipio": "Ponte Serrada", - "latitude": -26.8733, - "longitude": -52.0112, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5106752, - "municipio": "Pontes e Lacerda", - "latitude": -15.2219, - "longitude": -59.3435, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3540309, - "municipio": "Pontes Gestal", - "latitude": -20.1727, - "longitude": -49.7064, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3204252, - "municipio": "Ponto Belo", - "latitude": -18.1253, - "longitude": -40.5458, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3152131, - "municipio": "Ponto Chique", - "latitude": -16.6282, - "longitude": -45.0588, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3152170, - "municipio": "Ponto dos Volantes", - "latitude": -16.7473, - "longitude": -41.5025, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2925253, - "municipio": "Ponto Novo", - "latitude": -10.8653, - "longitude": -40.1311, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3540408, - "municipio": "Populina", - "latitude": -19.9453, - "longitude": -50.538, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2311009, - "municipio": "Poranga", - "latitude": -4.74672, - "longitude": -40.9205, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3540507, - "municipio": "Porangaba", - "latitude": -23.1761, - "longitude": -48.1195, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5218003, - "municipio": "Porangatu", - "latitude": -13.4391, - "longitude": -49.1503, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3304102, - "municipio": "Porciúncula", - "latitude": -20.9632, - "longitude": -42.0465, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4120002, - "municipio": "Porecatu", - "latitude": -22.7537, - "longitude": -51.3795, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2410207, - "municipio": "Portalegre", - "latitude": -6.02064, - "longitude": -37.9865, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4314803, - "municipio": "Portão", - "latitude": -29.7015, - "longitude": -51.2429, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5218052, - "municipio": "Porteirão", - "latitude": -17.8143, - "longitude": -50.1653, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2311108, - "municipio": "Porteiras", - "latitude": -7.52265, - "longitude": -39.114, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3152204, - "municipio": "Porteirinha", - "latitude": -15.7404, - "longitude": -43.0281, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1505809, - "municipio": "Portel", - "latitude": -1.93639, - "longitude": -50.8194, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5218102, - "municipio": "Portelândia", - "latitude": -17.3554, - "longitude": -52.6799, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2208502, - "municipio": "Porto", - "latitude": -3.88815, - "longitude": -42.6998, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1200807, - "municipio": "Porto Acre", - "latitude": -9.58138, - "longitude": -67.5478, - "codigo_uf": 12, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 4314902, - "municipio": "Porto Alegre", - "latitude": -30.0318, - "longitude": -51.2065, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5106778, - "municipio": "Porto Alegre do Norte", - "latitude": -10.8761, - "longitude": -51.6357, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2208551, - "municipio": "Porto Alegre do Piauí", - "latitude": -6.96423, - "longitude": -44.1837, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1718006, - "municipio": "Porto Alegre do Tocantins", - "latitude": -11.618, - "longitude": -47.0621, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4120101, - "municipio": "Porto Amazonas", - "latitude": -25.54, - "longitude": -49.8946, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4120150, - "municipio": "Porto Barreiro", - "latitude": -25.5477, - "longitude": -52.4067, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4213500, - "municipio": "Porto Belo", - "latitude": -27.1586, - "longitude": -48.5469, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2707305, - "municipio": "Porto Calvo", - "latitude": -9.05195, - "longitude": -35.3987, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2805604, - "municipio": "Porto da Folha", - "latitude": -9.91626, - "longitude": -37.2842, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1505908, - "municipio": "Porto de Moz", - "latitude": -1.74691, - "longitude": -52.2361, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2707404, - "municipio": "Porto de Pedras", - "latitude": -9.16006, - "longitude": -35.3049, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2410256, - "municipio": "Porto do Mangue", - "latitude": -5.05441, - "longitude": -36.7887, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5106802, - "municipio": "Porto dos Gaúchos", - "latitude": -11.533, - "longitude": -57.4132, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5106828, - "municipio": "Porto Esperidião", - "latitude": -15.857, - "longitude": -58.4619, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5106851, - "municipio": "Porto Estrela", - "latitude": -15.3235, - "longitude": -57.2204, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3540606, - "municipio": "Porto Feliz", - "latitude": -23.2093, - "longitude": -47.5251, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3540705, - "municipio": "Porto Ferreira", - "latitude": -21.8498, - "longitude": -47.487, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3152303, - "municipio": "Porto Firme", - "latitude": -20.6642, - "longitude": -43.0834, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2109007, - "municipio": "Porto Franco", - "latitude": -6.34149, - "longitude": -47.3962, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1600535, - "municipio": "Porto Grande", - "latitude": 0.71243, - "longitude": -51.4155, - "codigo_uf": 16, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4315008, - "municipio": "Porto Lucena", - "latitude": -27.8569, - "longitude": -55.01, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4315057, - "municipio": "Porto Mauá", - "latitude": -27.5796, - "longitude": -54.6657, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5006903, - "municipio": "Porto Murtinho", - "latitude": -21.6981, - "longitude": -57.8836, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1718204, - "municipio": "Porto Nacional", - "latitude": -10.7027, - "longitude": -48.408, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3304110, - "municipio": "Porto Real", - "latitude": -22.4175, - "longitude": -44.2952, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2707503, - "municipio": "Porto Real do Colégio", - "latitude": -10.1849, - "longitude": -36.8376, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4120200, - "municipio": "Porto Rico", - "latitude": -22.7747, - "longitude": -53.2677, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2109056, - "municipio": "Porto Rico do Maranhão", - "latitude": -1.85925, - "longitude": -44.5842, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2925303, - "municipio": "Porto Seguro", - "latitude": -16.4435, - "longitude": -39.0643, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4213609, - "municipio": "Porto União", - "latitude": -26.2451, - "longitude": -51.0759, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100205, - "municipio": "Porto Velho", - "latitude": -8.76077, - "longitude": -63.8999, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4315073, - "municipio": "Porto Vera Cruz", - "latitude": -27.7405, - "longitude": -54.8994, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4120309, - "municipio": "Porto Vitória", - "latitude": -26.1674, - "longitude": -51.231, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1200393, - "municipio": "Porto Walter", - "latitude": -8.26323, - "longitude": -72.7537, - "codigo_uf": 12, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 4315107, - "municipio": "Porto Xavier", - "latitude": -27.9082, - "longitude": -55.1379, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5218300, - "municipio": "Posse", - "latitude": -14.0859, - "longitude": -46.3704, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3152402, - "municipio": "Poté", - "latitude": -17.8077, - "longitude": -41.786, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2311207, - "municipio": "Potengi", - "latitude": -7.09154, - "longitude": -40.0233, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3540754, - "municipio": "Potim", - "latitude": -22.8343, - "longitude": -45.2552, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2925402, - "municipio": "Potiraguá", - "latitude": -15.5943, - "longitude": -39.8638, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3540804, - "municipio": "Potirendaba", - "latitude": -21.0428, - "longitude": -49.3815, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2311231, - "municipio": "Potiretama", - "latitude": -5.71287, - "longitude": -38.1578, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3152501, - "municipio": "Pouso Alegre", - "latitude": -22.2266, - "longitude": -45.9389, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3152600, - "municipio": "Pouso Alto", - "latitude": -22.1964, - "longitude": -44.9748, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4315131, - "municipio": "Pouso Novo", - "latitude": -29.1738, - "longitude": -52.2136, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4213708, - "municipio": "Pouso Redondo", - "latitude": -27.2567, - "longitude": -49.9301, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107008, - "municipio": "Poxoréu", - "latitude": -15.8299, - "longitude": -54.4208, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3540853, - "municipio": "Pracinha", - "latitude": -21.8496, - "longitude": -51.0868, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1600550, - "municipio": "Pracuúba", - "latitude": 1.74543, - "longitude": -50.7892, - "codigo_uf": 16, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2925501, - "municipio": "Prado", - "latitude": -17.3364, - "longitude": -39.2227, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4120333, - "municipio": "Prado Ferreira", - "latitude": -23.0357, - "longitude": -51.4429, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3540903, - "municipio": "Pradópolis", - "latitude": -21.3626, - "longitude": -48.0679, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3152709, - "municipio": "Prados", - "latitude": -21.0597, - "longitude": -44.0778, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3541000, - "municipio": "Praia Grande", - "latitude": -24.0084, - "longitude": -46.4121, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4213807, - "municipio": "Praia Grande", - "latitude": -29.1918, - "longitude": -49.9525, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1718303, - "municipio": "Praia Norte", - "latitude": -5.39281, - "longitude": -47.8111, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1506005, - "municipio": "Prainha", - "latitude": -1.798, - "longitude": -53.4779, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4120358, - "municipio": "Pranchita", - "latitude": -26.0209, - "longitude": -53.7397, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3152808, - "municipio": "Prata", - "latitude": -19.3086, - "longitude": -48.9276, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2512200, - "municipio": "Prata", - "latitude": -7.68826, - "longitude": -37.0801, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2208601, - "municipio": "Prata do Piauí", - "latitude": -5.67265, - "longitude": -42.2046, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3541059, - "municipio": "Pratânia", - "latitude": -22.8112, - "longitude": -48.6636, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3152907, - "municipio": "Pratápolis", - "latitude": -20.7411, - "longitude": -46.8624, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3153004, - "municipio": "Pratinha", - "latitude": -19.739, - "longitude": -46.3755, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3541109, - "municipio": "Presidente Alves", - "latitude": -22.0999, - "longitude": -49.4381, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3541208, - "municipio": "Presidente Bernardes", - "latitude": -22.0082, - "longitude": -51.5565, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3153103, - "municipio": "Presidente Bernardes", - "latitude": -20.7656, - "longitude": -43.1895, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4213906, - "municipio": "Presidente Castello Branco", - "latitude": -27.2218, - "longitude": -51.8089, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4120408, - "municipio": "Presidente Castelo Branco", - "latitude": -23.2782, - "longitude": -52.1536, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2925600, - "municipio": "Presidente Dutra", - "latitude": -11.2923, - "longitude": -41.9843, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2109106, - "municipio": "Presidente Dutra", - "latitude": -5.2898, - "longitude": -44.495, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3541307, - "municipio": "Presidente Epitácio", - "latitude": -21.7651, - "longitude": -52.1111, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1303536, - "municipio": "Presidente Figueiredo", - "latitude": -2.02981, - "longitude": -60.0234, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4214003, - "municipio": "Presidente Getúlio", - "latitude": -27.0474, - "longitude": -49.6246, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2925709, - "municipio": "Presidente Jânio Quadros", - "latitude": -14.6885, - "longitude": -41.6798, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3153202, - "municipio": "Presidente Juscelino", - "latitude": -18.6401, - "longitude": -44.06, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2109205, - "municipio": "Presidente Juscelino", - "latitude": -2.91872, - "longitude": -44.0715, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1718402, - "municipio": "Presidente Kennedy", - "latitude": -8.5406, - "longitude": -48.5062, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3204302, - "municipio": "Presidente Kennedy", - "latitude": -21.0964, - "longitude": -41.0468, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3153301, - "municipio": "Presidente Kubitschek", - "latitude": -18.6193, - "longitude": -43.5628, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4315149, - "municipio": "Presidente Lucena", - "latitude": -29.5175, - "longitude": -51.1798, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100254, - "municipio": "Presidente Médici", - "latitude": -11.169, - "longitude": -61.8986, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2109239, - "municipio": "Presidente Médici", - "latitude": -2.38991, - "longitude": -45.82, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4214102, - "municipio": "Presidente Nereu", - "latitude": -27.2768, - "longitude": -49.3889, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3153400, - "municipio": "Presidente Olegário", - "latitude": -18.4096, - "longitude": -46.4165, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3541406, - "municipio": "Presidente Prudente", - "latitude": -22.1207, - "longitude": -51.3925, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2109270, - "municipio": "Presidente Sarney", - "latitude": -2.58799, - "longitude": -45.3595, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2925758, - "municipio": "Presidente Tancredo Neves", - "latitude": -13.4471, - "longitude": -39.4203, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2109304, - "municipio": "Presidente Vargas", - "latitude": -3.40787, - "longitude": -44.0234, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3541505, - "municipio": "Presidente Venceslau", - "latitude": -21.8732, - "longitude": -51.8447, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2611408, - "municipio": "Primavera", - "latitude": -8.32999, - "longitude": -35.3544, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1506104, - "municipio": "Primavera", - "latitude": -0.945439, - "longitude": -47.1253, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1101476, - "municipio": "Primavera de Rondônia", - "latitude": -11.8295, - "longitude": -61.3153, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5107040, - "municipio": "Primavera do Leste", - "latitude": -15.544, - "longitude": -54.2811, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2109403, - "municipio": "Primeira Cruz", - "latitude": -2.50568, - "longitude": -43.4232, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4120507, - "municipio": "Primeiro de Maio", - "latitude": -22.8517, - "longitude": -51.0293, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4214151, - "municipio": "Princesa", - "latitude": -26.4441, - "longitude": -53.5994, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2512309, - "municipio": "Princesa Isabel", - "latitude": -7.73175, - "longitude": -37.9886, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5218391, - "municipio": "Professor Jamil", - "latitude": -17.2497, - "longitude": -49.244, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4315156, - "municipio": "Progresso", - "latitude": -29.2441, - "longitude": -52.3197, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3541604, - "municipio": "Promissão", - "latitude": -21.5356, - "longitude": -49.8599, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2805703, - "municipio": "Propriá", - "latitude": -10.2138, - "longitude": -36.8442, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4315172, - "municipio": "Protásio Alves", - "latitude": -28.7572, - "longitude": -51.4757, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3153608, - "municipio": "Prudente de Morais", - "latitude": -19.4742, - "longitude": -44.1591, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4120606, - "municipio": "Prudentópolis", - "latitude": -25.2111, - "longitude": -50.9754, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1718451, - "municipio": "Pugmil", - "latitude": -10.424, - "longitude": -48.8957, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2410405, - "municipio": "Pureza", - "latitude": -5.46393, - "longitude": -35.5554, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4315206, - "municipio": "Putinga", - "latitude": -29.0045, - "longitude": -52.1569, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2512408, - "municipio": "Puxinanã", - "latitude": -7.15479, - "longitude": -35.9543, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3541653, - "municipio": "Quadra", - "latitude": -23.2993, - "longitude": -48.0547, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4315305, - "municipio": "Quaraí", - "latitude": -30.384, - "longitude": -56.4483, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3153707, - "municipio": "Quartel Geral", - "latitude": -19.2703, - "longitude": -45.5569, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4120655, - "municipio": "Quarto Centenário", - "latitude": -24.2775, - "longitude": -53.0759, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3541703, - "municipio": "Quatá", - "latitude": -22.2456, - "longitude": -50.6966, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4120705, - "municipio": "Quatiguá", - "latitude": -23.5671, - "longitude": -49.916, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1506112, - "municipio": "Quatipuru", - "latitude": -0.899604, - "longitude": -47.0134, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3304128, - "municipio": "Quatis", - "latitude": -22.4045, - "longitude": -44.2597, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4120804, - "municipio": "Quatro Barras", - "latitude": -25.3673, - "longitude": -49.0763, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4315313, - "municipio": "Quatro Irmãos", - "latitude": -27.8257, - "longitude": -52.4424, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4120853, - "municipio": "Quatro Pontes", - "latitude": -24.5752, - "longitude": -53.9759, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2707602, - "municipio": "Quebrangulo", - "latitude": -9.32001, - "longitude": -36.4692, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4120903, - "municipio": "Quedas do Iguaçu", - "latitude": -25.4492, - "longitude": -52.9102, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2208650, - "municipio": "Queimada Nova", - "latitude": -8.57064, - "longitude": -41.4106, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2512507, - "municipio": "Queimadas", - "latitude": -7.35029, - "longitude": -35.9031, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2925808, - "municipio": "Queimadas", - "latitude": -10.9736, - "longitude": -39.6293, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3304144, - "municipio": "Queimados", - "latitude": -22.7102, - "longitude": -43.5518, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3541802, - "municipio": "Queiroz", - "latitude": -21.7969, - "longitude": -50.2415, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3541901, - "municipio": "Queluz", - "latitude": -22.5312, - "longitude": -44.7781, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3153806, - "municipio": "Queluzito", - "latitude": -20.7416, - "longitude": -43.8851, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107065, - "municipio": "Querência", - "latitude": -12.6093, - "longitude": -52.1821, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4121000, - "municipio": "Querência do Norte", - "latitude": -23.0838, - "longitude": -53.483, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4315321, - "municipio": "Quevedos", - "latitude": -29.3504, - "longitude": -54.0789, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2925907, - "municipio": "Quijingue", - "latitude": -10.7505, - "longitude": -39.2137, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4214201, - "municipio": "Quilombo", - "latitude": -26.7264, - "longitude": -52.724, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4121109, - "municipio": "Quinta do Sol", - "latitude": -23.8533, - "longitude": -52.1309, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3542008, - "municipio": "Quintana", - "latitude": -22.0692, - "longitude": -50.307, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4315354, - "municipio": "Quinze de Novembro", - "latitude": -28.7466, - "longitude": -53.1011, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2611507, - "municipio": "Quipapá", - "latitude": -8.81175, - "longitude": -36.0137, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5218508, - "municipio": "Quirinópolis", - "latitude": -18.4472, - "longitude": -50.4547, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3304151, - "municipio": "Quissamã", - "latitude": -22.1031, - "longitude": -41.4693, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4121208, - "municipio": "Quitandinha", - "latitude": -25.8734, - "longitude": -49.4973, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2311264, - "municipio": "Quiterianópolis", - "latitude": -5.8425, - "longitude": -40.7002, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2512606, - "municipio": "Quixabá", - "latitude": -7.0224, - "longitude": -37.1458, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2611533, - "municipio": "Quixaba", - "latitude": -7.70734, - "longitude": -37.8446, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2925931, - "municipio": "Quixabeira", - "latitude": -11.4031, - "longitude": -40.12, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2311306, - "municipio": "Quixadá", - "latitude": -4.9663, - "longitude": -39.0155, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2311355, - "municipio": "Quixelô", - "latitude": -6.24637, - "longitude": -39.2011, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2311405, - "municipio": "Quixeramobim", - "latitude": -5.19067, - "longitude": -39.2889, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2311504, - "municipio": "Quixeré", - "latitude": -5.07148, - "longitude": -37.9802, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2410504, - "municipio": "Rafael Fernandes", - "latitude": -6.18987, - "longitude": -38.2211, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2410603, - "municipio": "Rafael Godeiro", - "latitude": -6.07244, - "longitude": -37.716, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2925956, - "municipio": "Rafael Jambeiro", - "latitude": -12.4053, - "longitude": -39.5007, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3542107, - "municipio": "Rafard", - "latitude": -23.0105, - "longitude": -47.5318, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4121257, - "municipio": "Ramilândia", - "latitude": -25.1195, - "longitude": -54.023, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3542206, - "municipio": "Rancharia", - "latitude": -22.2269, - "longitude": -50.893, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4121307, - "municipio": "Rancho Alegre", - "latitude": -23.0676, - "longitude": -50.9145, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4121356, - "municipio": "Rancho Alegre D'Oeste", - "latitude": -24.3065, - "longitude": -52.9552, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4214300, - "municipio": "Rancho Queimado", - "latitude": -27.6727, - "longitude": -49.0191, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2109452, - "municipio": "Raposa", - "latitude": -2.4254, - "longitude": -44.0973, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3153905, - "municipio": "Raposos", - "latitude": -19.9636, - "longitude": -43.8079, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3154002, - "municipio": "Raul Soares", - "latitude": -20.1061, - "longitude": -42.4502, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4121406, - "municipio": "Realeza", - "latitude": -25.7711, - "longitude": -53.526, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4121505, - "municipio": "Rebouças", - "latitude": -25.6232, - "longitude": -50.6877, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2611606, - "municipio": "Recife", - "latitude": -8.04666, - "longitude": -34.8771, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3154101, - "municipio": "Recreio", - "latitude": -21.5289, - "longitude": -42.4676, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1718501, - "municipio": "Recursolândia", - "latitude": -8.7227, - "longitude": -47.2421, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1506138, - "municipio": "Redenção", - "latitude": -8.02529, - "longitude": -50.0317, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2311603, - "municipio": "Redenção", - "latitude": -4.21587, - "longitude": -38.7277, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3542305, - "municipio": "Redenção da Serra", - "latitude": -23.2638, - "longitude": -45.5422, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2208700, - "municipio": "Redenção do Gurguéia", - "latitude": -9.47937, - "longitude": -44.5811, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4315404, - "municipio": "Redentora", - "latitude": -27.664, - "longitude": -53.6407, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3154150, - "municipio": "Reduto", - "latitude": -20.2401, - "longitude": -41.9848, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2208809, - "municipio": "Regeneração", - "latitude": -6.23115, - "longitude": -42.6842, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3542404, - "municipio": "Regente Feijó", - "latitude": -22.2181, - "longitude": -51.3055, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3542503, - "municipio": "Reginópolis", - "latitude": -21.8914, - "longitude": -49.2268, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3542602, - "municipio": "Registro", - "latitude": -24.4979, - "longitude": -47.8449, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4315453, - "municipio": "Relvado", - "latitude": -29.1164, - "longitude": -52.0778, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2926004, - "municipio": "Remanso", - "latitude": -9.61944, - "longitude": -42.0848, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2512705, - "municipio": "Remígio", - "latitude": -6.94992, - "longitude": -35.8011, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4121604, - "municipio": "Renascença", - "latitude": -26.1588, - "longitude": -52.9703, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2311702, - "municipio": "Reriutaba", - "latitude": -4.14191, - "longitude": -40.5759, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3304201, - "municipio": "Resende", - "latitude": -22.4705, - "longitude": -44.4509, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3154200, - "municipio": "Resende Costa", - "latitude": -20.9171, - "longitude": -44.2407, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4121703, - "municipio": "Reserva", - "latitude": -24.6492, - "longitude": -50.8466, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107156, - "municipio": "Reserva do Cabaçal", - "latitude": -15.0743, - "longitude": -58.4585, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4121752, - "municipio": "Reserva do Iguaçu", - "latitude": -25.8319, - "longitude": -52.0272, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3154309, - "municipio": "Resplendor", - "latitude": -19.3194, - "longitude": -41.2462, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3154408, - "municipio": "Ressaquinha", - "latitude": -21.0642, - "longitude": -43.7598, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3542701, - "municipio": "Restinga", - "latitude": -20.6056, - "longitude": -47.4833, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4315503, - "municipio": "Restinga Sêca", - "latitude": -29.8188, - "longitude": -53.3807, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2926103, - "municipio": "Retirolândia", - "latitude": -11.4832, - "longitude": -39.4234, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2512747, - "municipio": "Riachão", - "latitude": -6.54269, - "longitude": -35.661, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2109502, - "municipio": "Riachão", - "latitude": -7.35819, - "longitude": -46.6225, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2926202, - "municipio": "Riachão das Neves", - "latitude": -11.7508, - "longitude": -44.9143, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2512754, - "municipio": "Riachão do Bacamarte", - "latitude": -7.25347, - "longitude": -35.6693, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2805802, - "municipio": "Riachão do Dantas", - "latitude": -11.0729, - "longitude": -37.731, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2926301, - "municipio": "Riachão do Jacuípe", - "latitude": -11.8067, - "longitude": -39.3818, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2512762, - "municipio": "Riachão do Poço", - "latitude": -7.14173, - "longitude": -35.2914, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1718550, - "municipio": "Riachinho", - "latitude": -6.44005, - "longitude": -48.1371, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3154457, - "municipio": "Riachinho", - "latitude": -16.2258, - "longitude": -45.9888, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2410702, - "municipio": "Riacho da Cruz", - "latitude": -5.92654, - "longitude": -37.949, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2611705, - "municipio": "Riacho das Almas", - "latitude": -8.13742, - "longitude": -35.8648, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2410801, - "municipio": "Riacho de Santana", - "latitude": -6.25139, - "longitude": -38.3116, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2926400, - "municipio": "Riacho de Santana", - "latitude": -13.6059, - "longitude": -42.9397, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2512788, - "municipio": "Riacho de Santo Antônio", - "latitude": -7.68023, - "longitude": -36.157, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2512804, - "municipio": "Riacho dos Cavalos", - "latitude": -6.44067, - "longitude": -37.6483, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3154507, - "municipio": "Riacho dos Machados", - "latitude": -16.0091, - "longitude": -43.0488, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2208858, - "municipio": "Riacho Frio", - "latitude": -10.1244, - "longitude": -44.9503, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2410900, - "municipio": "Riachuelo", - "latitude": -5.82156, - "longitude": -35.8215, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2805901, - "municipio": "Riachuelo", - "latitude": -10.735, - "longitude": -37.1966, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5218607, - "municipio": "Rialma", - "latitude": -15.3145, - "longitude": -49.5814, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5218706, - "municipio": "Rianápolis", - "latitude": -15.4456, - "longitude": -49.5114, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2109551, - "municipio": "Ribamar Fiquene", - "latitude": -5.93067, - "longitude": -47.3888, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5007109, - "municipio": "Ribas do Rio Pardo", - "latitude": -20.4445, - "longitude": -53.7588, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3542800, - "municipio": "Ribeira", - "latitude": -24.6517, - "longitude": -49.0044, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2926509, - "municipio": "Ribeira do Amparo", - "latitude": -11.0421, - "longitude": -38.4242, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2208874, - "municipio": "Ribeira do Piauí", - "latitude": -7.69028, - "longitude": -42.7128, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2926608, - "municipio": "Ribeira do Pombal", - "latitude": -10.8373, - "longitude": -38.5382, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2611804, - "municipio": "Ribeirão", - "latitude": -8.50957, - "longitude": -35.3698, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3542909, - "municipio": "Ribeirão Bonito", - "latitude": -22.0685, - "longitude": -48.182, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3543006, - "municipio": "Ribeirão Branco", - "latitude": -24.2206, - "longitude": -48.7635, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107180, - "municipio": "Ribeirão Cascalheira", - "latitude": -12.9367, - "longitude": -51.8244, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4121802, - "municipio": "Ribeirão Claro", - "latitude": -23.1941, - "longitude": -49.7597, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3543105, - "municipio": "Ribeirão Corrente", - "latitude": -20.4579, - "longitude": -47.5904, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3154606, - "municipio": "Ribeirão das Neves", - "latitude": -19.7621, - "longitude": -44.0844, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2926657, - "municipio": "Ribeirão do Largo", - "latitude": -15.4508, - "longitude": -40.7441, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4121901, - "municipio": "Ribeirão do Pinhal", - "latitude": -23.4091, - "longitude": -50.3601, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3543204, - "municipio": "Ribeirão do Sul", - "latitude": -22.789, - "longitude": -49.933, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3543238, - "municipio": "Ribeirão dos Índios", - "latitude": -21.8382, - "longitude": -51.6103, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3543253, - "municipio": "Ribeirão Grande", - "latitude": -24.1011, - "longitude": -48.3679, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3543303, - "municipio": "Ribeirão Pires", - "latitude": -23.7067, - "longitude": -46.4058, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3543402, - "municipio": "Ribeirão Preto", - "latitude": -21.1699, - "longitude": -47.8099, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3154705, - "municipio": "Ribeirão Vermelho", - "latitude": -21.1879, - "longitude": -45.0637, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107198, - "municipio": "Ribeirãozinho", - "latitude": -16.4856, - "longitude": -52.6924, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2208908, - "municipio": "Ribeiro Gonçalves", - "latitude": -7.55651, - "longitude": -45.2447, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2806008, - "municipio": "Ribeirópolis", - "latitude": -10.5357, - "longitude": -37.438, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3543600, - "municipio": "Rifaina", - "latitude": -20.0803, - "longitude": -47.4291, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3543709, - "municipio": "Rincão", - "latitude": -21.5894, - "longitude": -48.0728, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3543808, - "municipio": "Rinópolis", - "latitude": -21.7284, - "longitude": -50.7239, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3154804, - "municipio": "Rio Acima", - "latitude": -20.0876, - "longitude": -43.7878, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4122008, - "municipio": "Rio Azul", - "latitude": -25.7306, - "longitude": -50.7985, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3204351, - "municipio": "Rio Bananal", - "latitude": -19.2719, - "longitude": -40.3366, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4122107, - "municipio": "Rio Bom", - "latitude": -23.7606, - "longitude": -51.4122, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3304300, - "municipio": "Rio Bonito", - "latitude": -22.7181, - "longitude": -42.6276, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4122156, - "municipio": "Rio Bonito do Iguaçu", - "latitude": -25.4874, - "longitude": -52.5292, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107206, - "municipio": "Rio Branco", - "latitude": -15.2483, - "longitude": -58.1259, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1200401, - "municipio": "Rio Branco", - "latitude": -9.97499, - "longitude": -67.8243, - "codigo_uf": 12, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 4122172, - "municipio": "Rio Branco do Ivaí", - "latitude": -24.3244, - "longitude": -51.3187, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4122206, - "municipio": "Rio Branco do Sul", - "latitude": -25.1892, - "longitude": -49.3115, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5007208, - "municipio": "Rio Brilhante", - "latitude": -21.8033, - "longitude": -54.5427, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3154903, - "municipio": "Rio Casca", - "latitude": -20.2285, - "longitude": -42.6462, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3304409, - "municipio": "Rio Claro", - "latitude": -22.72, - "longitude": -44.1419, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3543907, - "municipio": "Rio Claro", - "latitude": -22.3984, - "longitude": -47.5546, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100262, - "municipio": "Rio Crespo", - "latitude": -9.69965, - "longitude": -62.9011, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1718659, - "municipio": "Rio da Conceição", - "latitude": -11.3949, - "longitude": -46.8847, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4214409, - "municipio": "Rio das Antas", - "latitude": -26.8946, - "longitude": -51.0674, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3304508, - "municipio": "Rio das Flores", - "latitude": -22.1692, - "longitude": -43.5856, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3304524, - "municipio": "Rio das Ostras", - "latitude": -22.5174, - "longitude": -41.9475, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3544004, - "municipio": "Rio das Pedras", - "latitude": -22.8417, - "longitude": -47.6047, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2926707, - "municipio": "Rio de Contas", - "latitude": -13.5852, - "longitude": -41.8048, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3304557, - "municipio": "Rio de Janeiro", - "latitude": -22.9129, - "longitude": -43.2003, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2926806, - "municipio": "Rio do Antônio", - "latitude": -14.4071, - "longitude": -42.0721, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4214508, - "municipio": "Rio do Campo", - "latitude": -26.9452, - "longitude": -50.136, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2408953, - "municipio": "Rio do Fogo", - "latitude": -5.2765, - "longitude": -35.3794, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4214607, - "municipio": "Rio do Oeste", - "latitude": -27.1952, - "longitude": -49.7989, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2926905, - "municipio": "Rio do Pires", - "latitude": -13.1185, - "longitude": -42.2902, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3155108, - "municipio": "Rio do Prado", - "latitude": -16.6056, - "longitude": -40.5714, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4214805, - "municipio": "Rio do Sul", - "latitude": -27.2156, - "longitude": -49.643, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3155009, - "municipio": "Rio Doce", - "latitude": -20.2412, - "longitude": -42.8995, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1718709, - "municipio": "Rio dos Bois", - "latitude": -9.34425, - "longitude": -48.5245, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4214706, - "municipio": "Rio dos Cedros", - "latitude": -26.7398, - "longitude": -49.2718, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4315552, - "municipio": "Rio dos Índios", - "latitude": -27.2973, - "longitude": -52.8417, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3155207, - "municipio": "Rio Espera", - "latitude": -20.855, - "longitude": -43.4721, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2611903, - "municipio": "Rio Formoso", - "latitude": -8.6592, - "longitude": -35.1532, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4214904, - "municipio": "Rio Fortuna", - "latitude": -28.1244, - "longitude": -49.1068, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4315602, - "municipio": "Rio Grande", - "latitude": -32.0349, - "longitude": -52.1071, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3544103, - "municipio": "Rio Grande da Serra", - "latitude": -23.7437, - "longitude": -46.3971, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2209005, - "municipio": "Rio Grande do Piauí", - "latitude": -7.78029, - "longitude": -43.1369, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2707701, - "municipio": "Rio Largo", - "latitude": -9.47783, - "longitude": -35.8394, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3155306, - "municipio": "Rio Manso", - "latitude": -20.2666, - "longitude": -44.3069, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1506161, - "municipio": "Rio Maria", - "latitude": -7.31236, - "longitude": -50.0379, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4215000, - "municipio": "Rio Negrinho", - "latitude": -26.2591, - "longitude": -49.5177, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5007307, - "municipio": "Rio Negro", - "latitude": -19.447, - "longitude": -54.9859, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4122305, - "municipio": "Rio Negro", - "latitude": -26.095, - "longitude": -49.7982, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3155405, - "municipio": "Rio Novo", - "latitude": -21.4649, - "longitude": -43.1168, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3204401, - "municipio": "Rio Novo do Sul", - "latitude": -20.8556, - "longitude": -40.9388, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3155504, - "municipio": "Rio Paranaíba", - "latitude": -19.1861, - "longitude": -46.2455, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4315701, - "municipio": "Rio Pardo", - "latitude": -29.988, - "longitude": -52.3711, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3155603, - "municipio": "Rio Pardo de Minas", - "latitude": -15.616, - "longitude": -42.5405, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3155702, - "municipio": "Rio Piracicaba", - "latitude": -19.9284, - "longitude": -43.1829, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3155801, - "municipio": "Rio Pomba", - "latitude": -21.2712, - "longitude": -43.1696, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3155900, - "municipio": "Rio Preto", - "latitude": -22.0861, - "longitude": -43.8293, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1303569, - "municipio": "Rio Preto da Eva", - "latitude": -2.7045, - "longitude": -59.6858, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5218789, - "municipio": "Rio Quente", - "latitude": -17.774, - "longitude": -48.7725, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2927002, - "municipio": "Rio Real", - "latitude": -11.4814, - "longitude": -37.9332, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4215059, - "municipio": "Rio Rufino", - "latitude": -27.8592, - "longitude": -49.7754, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1718758, - "municipio": "Rio Sono", - "latitude": -9.35002, - "longitude": -47.888, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2512903, - "municipio": "Rio Tinto", - "latitude": -6.80383, - "longitude": -35.0776, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5218805, - "municipio": "Rio Verde", - "latitude": -17.7923, - "longitude": -50.9192, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5007406, - "municipio": "Rio Verde de Mato Grosso", - "latitude": -18.9249, - "longitude": -54.8434, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3156007, - "municipio": "Rio Vermelho", - "latitude": -18.2922, - "longitude": -43.0018, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3544202, - "municipio": "Riolândia", - "latitude": -19.9868, - "longitude": -49.6836, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4315750, - "municipio": "Riozinho", - "latitude": -29.639, - "longitude": -50.4488, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4215075, - "municipio": "Riqueza", - "latitude": -27.0653, - "longitude": -53.3265, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3156106, - "municipio": "Ritápolis", - "latitude": -21.0276, - "longitude": -44.3204, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3543501, - "municipio": "Riversul", - "latitude": -23.829, - "longitude": -49.429, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4315800, - "municipio": "Roca Sales", - "latitude": -29.2884, - "longitude": -51.8658, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5007505, - "municipio": "Rochedo", - "latitude": -19.9565, - "longitude": -54.8848, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3156205, - "municipio": "Rochedo de Minas", - "latitude": -21.6284, - "longitude": -43.0165, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4215109, - "municipio": "Rodeio", - "latitude": -26.9243, - "longitude": -49.3649, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4315909, - "municipio": "Rodeio Bonito", - "latitude": -27.4742, - "longitude": -53.1706, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3156304, - "municipio": "Rodeiro", - "latitude": -21.2035, - "longitude": -42.8586, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2927101, - "municipio": "Rodelas", - "latitude": -8.85021, - "longitude": -38.78, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2411007, - "municipio": "Rodolfo Fernandes", - "latitude": -5.78393, - "longitude": -38.0579, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1200427, - "municipio": "Rodrigues Alves", - "latitude": -7.73864, - "longitude": -72.661, - "codigo_uf": 12, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 4315958, - "municipio": "Rolador", - "latitude": -28.2566, - "longitude": -54.8186, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4122404, - "municipio": "Rolândia", - "latitude": -23.3101, - "longitude": -51.3659, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4316006, - "municipio": "Rolante", - "latitude": -29.6462, - "longitude": -50.5819, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100288, - "municipio": "Rolim de Moura", - "latitude": -11.7271, - "longitude": -61.7714, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3156403, - "municipio": "Romaria", - "latitude": -18.8838, - "longitude": -47.5782, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4215208, - "municipio": "Romelândia", - "latitude": -26.6809, - "longitude": -53.3172, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4122503, - "municipio": "Roncador", - "latitude": -24.5958, - "longitude": -52.2716, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4316105, - "municipio": "Ronda Alta", - "latitude": -27.7758, - "longitude": -52.8056, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4316204, - "municipio": "Rondinha", - "latitude": -27.8315, - "longitude": -52.9081, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107578, - "municipio": "Rondolândia", - "latitude": -10.8376, - "longitude": -61.4697, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4122602, - "municipio": "Rondon", - "latitude": -23.412, - "longitude": -52.7659, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1506187, - "municipio": "Rondon do Pará", - "latitude": -4.77793, - "longitude": -48.067, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107602, - "municipio": "Rondonópolis", - "latitude": -16.4673, - "longitude": -54.6372, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4316303, - "municipio": "Roque Gonzales", - "latitude": -28.1297, - "longitude": -55.0266, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1400472, - "municipio": "Rorainópolis", - "latitude": 0.939956, - "longitude": -60.4389, - "codigo_uf": 14, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3544251, - "municipio": "Rosana", - "latitude": -22.5782, - "longitude": -53.0603, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2109601, - "municipio": "Rosário", - "latitude": -2.93444, - "longitude": -44.2531, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3156452, - "municipio": "Rosário da Limeira", - "latitude": -20.9812, - "longitude": -42.5112, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2806107, - "municipio": "Rosário do Catete", - "latitude": -10.6904, - "longitude": -37.0357, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4122651, - "municipio": "Rosário do Ivaí", - "latitude": -24.2682, - "longitude": -51.272, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4316402, - "municipio": "Rosário do Sul", - "latitude": -30.2515, - "longitude": -54.9221, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107701, - "municipio": "Rosário Oeste", - "latitude": -14.8259, - "longitude": -56.4236, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3544301, - "municipio": "Roseira", - "latitude": -22.8938, - "longitude": -45.307, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2707800, - "municipio": "Roteiro", - "latitude": -9.83503, - "longitude": -35.9782, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3156502, - "municipio": "Rubelita", - "latitude": -16.4053, - "longitude": -42.261, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3544400, - "municipio": "Rubiácea", - "latitude": -21.3006, - "longitude": -50.7296, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5218904, - "municipio": "Rubiataba", - "latitude": -15.1617, - "longitude": -49.8048, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3156601, - "municipio": "Rubim", - "latitude": -16.3775, - "longitude": -40.5397, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3544509, - "municipio": "Rubinéia", - "latitude": -20.1759, - "longitude": -51.007, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1506195, - "municipio": "Rurópolis", - "latitude": -4.10028, - "longitude": -54.9092, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2311801, - "municipio": "Russas", - "latitude": -4.92673, - "longitude": -37.9721, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2411106, - "municipio": "Ruy Barbosa", - "latitude": -5.88745, - "longitude": -35.933, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2927200, - "municipio": "Ruy Barbosa", - "latitude": -12.2816, - "longitude": -40.4931, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3156700, - "municipio": "Sabará", - "latitude": -19.884, - "longitude": -43.8263, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4122701, - "municipio": "Sabáudia", - "latitude": -23.3155, - "longitude": -51.555, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3544608, - "municipio": "Sabino", - "latitude": -21.4593, - "longitude": -49.5755, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3156809, - "municipio": "Sabinópolis", - "latitude": -18.6653, - "longitude": -43.0752, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2311900, - "municipio": "Saboeiro", - "latitude": -6.5346, - "longitude": -39.9017, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3156908, - "municipio": "Sacramento", - "latitude": -19.8622, - "longitude": -47.4508, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4316428, - "municipio": "Sagrada Família", - "latitude": -27.7085, - "longitude": -53.1351, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3544707, - "municipio": "Sagres", - "latitude": -21.8823, - "longitude": -50.9594, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2612000, - "municipio": "Sairé", - "latitude": -8.32864, - "longitude": -35.6967, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4316436, - "municipio": "Saldanha Marinho", - "latitude": -28.3941, - "longitude": -53.097, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3544806, - "municipio": "Sales", - "latitude": -21.3427, - "longitude": -49.4897, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3544905, - "municipio": "Sales Oliveira", - "latitude": -20.7696, - "longitude": -47.8369, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3545001, - "municipio": "Salesópolis", - "latitude": -23.5288, - "longitude": -45.8465, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4215307, - "municipio": "Salete", - "latitude": -26.9798, - "longitude": -49.9988, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2513000, - "municipio": "Salgadinho", - "latitude": -7.10098, - "longitude": -36.8458, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2612109, - "municipio": "Salgadinho", - "latitude": -7.9269, - "longitude": -35.6503, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2806206, - "municipio": "Salgado", - "latitude": -11.0288, - "longitude": -37.4804, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2513109, - "municipio": "Salgado de São Félix", - "latitude": -7.35337, - "longitude": -35.4305, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4122800, - "municipio": "Salgado Filho", - "latitude": -26.1777, - "longitude": -53.3631, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2612208, - "municipio": "Salgueiro", - "latitude": -8.07373, - "longitude": -39.1247, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3157005, - "municipio": "Salinas", - "latitude": -16.1753, - "longitude": -42.2964, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2927309, - "municipio": "Salinas da Margarida", - "latitude": -12.873, - "longitude": -38.7562, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1506203, - "municipio": "Salinópolis", - "latitude": -0.630815, - "longitude": -47.3465, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2311959, - "municipio": "Salitre", - "latitude": -7.28398, - "longitude": -40.45, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3545100, - "municipio": "Salmourão", - "latitude": -21.6267, - "longitude": -50.8614, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2612307, - "municipio": "Saloá", - "latitude": -8.9723, - "longitude": -36.691, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4215356, - "municipio": "Saltinho", - "latitude": -26.6049, - "longitude": -53.0578, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3545159, - "municipio": "Saltinho", - "latitude": -22.8442, - "longitude": -47.6754, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3545209, - "municipio": "Salto", - "latitude": -23.1996, - "longitude": -47.2931, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3157104, - "municipio": "Salto da Divisa", - "latitude": -16.0063, - "longitude": -39.9391, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3545308, - "municipio": "Salto de Pirapora", - "latitude": -23.6474, - "longitude": -47.5743, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107750, - "municipio": "Salto do Céu", - "latitude": -15.1303, - "longitude": -58.1317, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4122909, - "municipio": "Salto do Itararé", - "latitude": -23.6074, - "longitude": -49.6354, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4316451, - "municipio": "Salto do Jacuí", - "latitude": -29.0951, - "longitude": -53.2133, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4123006, - "municipio": "Salto do Lontra", - "latitude": -25.7813, - "longitude": -53.3135, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3545407, - "municipio": "Salto Grande", - "latitude": -22.8894, - "longitude": -49.9831, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4215406, - "municipio": "Salto Veloso", - "latitude": -26.903, - "longitude": -51.4043, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2927408, - "municipio": "Salvador", - "latitude": -12.9718, - "longitude": -38.5011, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4316477, - "municipio": "Salvador das Missões", - "latitude": -28.1233, - "longitude": -54.8373, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4316501, - "municipio": "Salvador do Sul", - "latitude": -29.4386, - "longitude": -51.5077, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1506302, - "municipio": "Salvaterra", - "latitude": -0.758444, - "longitude": -48.5139, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2109700, - "municipio": "Sambaíba", - "latitude": -7.13447, - "longitude": -45.3515, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1718808, - "municipio": "Sampaio", - "latitude": -5.35423, - "longitude": -47.8782, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4316600, - "municipio": "Sananduva", - "latitude": -27.947, - "longitude": -51.8079, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5219001, - "municipio": "Sanclerlândia", - "latitude": -16.197, - "longitude": -50.3124, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1718840, - "municipio": "Sandolândia", - "latitude": -12.538, - "longitude": -49.9242, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3545506, - "municipio": "Sandovalina", - "latitude": -22.4551, - "longitude": -51.7648, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4215455, - "municipio": "Sangão", - "latitude": -28.6326, - "longitude": -49.1322, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2612406, - "municipio": "Sanharó", - "latitude": -8.36097, - "longitude": -36.5696, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4317103, - "municipio": "Sant'Ana do Livramento", - "latitude": -30.8773, - "longitude": -55.5392, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3545605, - "municipio": "Santa Adélia", - "latitude": -21.2427, - "longitude": -48.8063, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3545704, - "municipio": "Santa Albertina", - "latitude": -20.0311, - "longitude": -50.7297, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4123105, - "municipio": "Santa Amélia", - "latitude": -23.2654, - "longitude": -50.4288, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2927507, - "municipio": "Santa Bárbara", - "latitude": -11.9515, - "longitude": -38.9681, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3157203, - "municipio": "Santa Bárbara", - "latitude": -19.9604, - "longitude": -43.4101, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3545803, - "municipio": "Santa Bárbara d'Oeste", - "latitude": -22.7553, - "longitude": -47.4143, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5219100, - "municipio": "Santa Bárbara de Goiás", - "latitude": -16.5714, - "longitude": -49.6954, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3157252, - "municipio": "Santa Bárbara do Leste", - "latitude": -19.9753, - "longitude": -42.1457, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3157278, - "municipio": "Santa Bárbara do Monte Verde", - "latitude": -21.9592, - "longitude": -43.7027, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1506351, - "municipio": "Santa Bárbara do Pará", - "latitude": -1.19219, - "longitude": -48.238, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4316709, - "municipio": "Santa Bárbara do Sul", - "latitude": -28.3653, - "longitude": -53.251, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3157302, - "municipio": "Santa Bárbara do Tugúrio", - "latitude": -21.2431, - "longitude": -43.5607, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3546009, - "municipio": "Santa Branca", - "latitude": -23.3933, - "longitude": -45.8875, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2927606, - "municipio": "Santa Brígida", - "latitude": -9.73227, - "longitude": -38.1209, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107248, - "municipio": "Santa Carmem", - "latitude": -11.9125, - "longitude": -55.2263, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4215505, - "municipio": "Santa Cecília", - "latitude": -26.9592, - "longitude": -50.4252, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2513158, - "municipio": "Santa Cecília", - "latitude": -7.7389, - "longitude": -35.8764, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4123204, - "municipio": "Santa Cecília do Pavão", - "latitude": -23.5201, - "longitude": -50.7835, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4316733, - "municipio": "Santa Cecília do Sul", - "latitude": -28.1609, - "longitude": -51.9279, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3546108, - "municipio": "Santa Clara d'Oeste", - "latitude": -20.09, - "longitude": -50.9491, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4316758, - "municipio": "Santa Clara do Sul", - "latitude": -29.4747, - "longitude": -52.0843, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2411205, - "municipio": "Santa Cruz", - "latitude": -6.22475, - "longitude": -36.0193, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2513208, - "municipio": "Santa Cruz", - "latitude": -6.5237, - "longitude": -38.0617, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2612455, - "municipio": "Santa Cruz", - "latitude": -8.24153, - "longitude": -40.3434, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2927705, - "municipio": "Santa Cruz Cabrália", - "latitude": -16.2825, - "longitude": -39.0295, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2612471, - "municipio": "Santa Cruz da Baixa Verde", - "latitude": -7.81339, - "longitude": -38.1476, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3546207, - "municipio": "Santa Cruz da Conceição", - "latitude": -22.1405, - "longitude": -47.4512, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3546256, - "municipio": "Santa Cruz da Esperança", - "latitude": -21.2951, - "longitude": -47.4304, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2927804, - "municipio": "Santa Cruz da Vitória", - "latitude": -14.964, - "longitude": -39.8115, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3546306, - "municipio": "Santa Cruz das Palmeiras", - "latitude": -21.8235, - "longitude": -47.248, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5219209, - "municipio": "Santa Cruz de Goiás", - "latitude": -17.3155, - "longitude": -48.4809, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3157336, - "municipio": "Santa Cruz de Minas", - "latitude": -21.1241, - "longitude": -44.2202, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4123303, - "municipio": "Santa Cruz de Monte Castelo", - "latitude": -22.9582, - "longitude": -53.2949, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3157377, - "municipio": "Santa Cruz de Salinas", - "latitude": -16.0967, - "longitude": -41.7418, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1506401, - "municipio": "Santa Cruz do Arari", - "latitude": -0.661019, - "longitude": -49.1771, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2612505, - "municipio": "Santa Cruz do Capibaribe", - "latitude": -7.94802, - "longitude": -36.2061, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3157401, - "municipio": "Santa Cruz do Escalvado", - "latitude": -20.2372, - "longitude": -42.8169, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2209104, - "municipio": "Santa Cruz do Piauí", - "latitude": -7.1785, - "longitude": -41.7609, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3546405, - "municipio": "Santa Cruz do Rio Pardo", - "latitude": -22.8988, - "longitude": -49.6354, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4316808, - "municipio": "Santa Cruz do Sul", - "latitude": -29.722, - "longitude": -52.4343, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107743, - "municipio": "Santa Cruz do Xingu", - "latitude": -10.1532, - "longitude": -52.3953, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2209153, - "municipio": "Santa Cruz dos Milagres", - "latitude": -5.80581, - "longitude": -41.9506, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3157500, - "municipio": "Santa Efigênia de Minas", - "latitude": -18.8235, - "longitude": -42.4388, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3546504, - "municipio": "Santa Ernestina", - "latitude": -21.4618, - "longitude": -48.3953, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4123402, - "municipio": "Santa Fé", - "latitude": -23.04, - "longitude": -51.808, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5219258, - "municipio": "Santa Fé de Goiás", - "latitude": -15.7664, - "longitude": -51.1037, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3157609, - "municipio": "Santa Fé de Minas", - "latitude": -16.6859, - "longitude": -45.4102, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1718865, - "municipio": "Santa Fé do Araguaia", - "latitude": -7.15803, - "longitude": -48.7165, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3546603, - "municipio": "Santa Fé do Sul", - "latitude": -20.2083, - "longitude": -50.932, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2209203, - "municipio": "Santa Filomena", - "latitude": -9.11228, - "longitude": -45.9116, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2612554, - "municipio": "Santa Filomena", - "latitude": -8.16688, - "longitude": -40.6079, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2109759, - "municipio": "Santa Filomena do Maranhão", - "latitude": -5.49671, - "longitude": -44.5638, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3546702, - "municipio": "Santa Gertrudes", - "latitude": -22.4572, - "longitude": -47.5272, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4123501, - "municipio": "Santa Helena", - "latitude": -24.8585, - "longitude": -54.336, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4215554, - "municipio": "Santa Helena", - "latitude": -26.937, - "longitude": -53.6214, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2109809, - "municipio": "Santa Helena", - "latitude": -2.24426, - "longitude": -45.29, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2513307, - "municipio": "Santa Helena", - "latitude": -6.7176, - "longitude": -38.6427, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5219308, - "municipio": "Santa Helena de Goiás", - "latitude": -17.8115, - "longitude": -50.5977, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3157658, - "municipio": "Santa Helena de Minas", - "latitude": -16.9707, - "longitude": -40.6727, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2927903, - "municipio": "Santa Inês", - "latitude": -13.2793, - "longitude": -39.814, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4123600, - "municipio": "Santa Inês", - "latitude": -22.6376, - "longitude": -51.9024, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2513356, - "municipio": "Santa Inês", - "latitude": -7.621, - "longitude": -38.554, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2109908, - "municipio": "Santa Inês", - "latitude": -3.65112, - "longitude": -45.3774, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3546801, - "municipio": "Santa Isabel", - "latitude": -23.3172, - "longitude": -46.2237, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5219357, - "municipio": "Santa Isabel", - "latitude": -15.2958, - "longitude": -49.4259, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4123709, - "municipio": "Santa Isabel do Ivaí", - "latitude": -23.0025, - "longitude": -53.1989, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1303601, - "municipio": "Santa Isabel do Rio Negro", - "latitude": -0.410824, - "longitude": -65.0092, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4123808, - "municipio": "Santa Izabel do Oeste", - "latitude": -25.8217, - "longitude": -53.4801, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1506500, - "municipio": "Santa Izabel do Pará", - "latitude": -1.29686, - "longitude": -48.1606, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3157708, - "municipio": "Santa Juliana", - "latitude": -19.3108, - "longitude": -47.5322, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3204500, - "municipio": "Santa Leopoldina", - "latitude": -20.0999, - "longitude": -40.527, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3546900, - "municipio": "Santa Lúcia", - "latitude": -21.685, - "longitude": -48.0885, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4123824, - "municipio": "Santa Lúcia", - "latitude": -25.4104, - "longitude": -53.5638, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2209302, - "municipio": "Santa Luz", - "latitude": -8.9488, - "longitude": -44.1296, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2110005, - "municipio": "Santa Luzia", - "latitude": -4.06873, - "longitude": -45.69, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2928059, - "municipio": "Santa Luzia", - "latitude": -15.4342, - "longitude": -39.3287, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3157807, - "municipio": "Santa Luzia", - "latitude": -19.7548, - "longitude": -43.8497, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2513406, - "municipio": "Santa Luzia", - "latitude": -6.86092, - "longitude": -36.9178, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100296, - "municipio": "Santa Luzia D'Oeste", - "latitude": -11.9074, - "longitude": -61.7777, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2806305, - "municipio": "Santa Luzia do Itanhy", - "latitude": -11.3536, - "longitude": -37.4586, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2707909, - "municipio": "Santa Luzia do Norte", - "latitude": -9.6037, - "longitude": -35.8232, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1506559, - "municipio": "Santa Luzia do Pará", - "latitude": -1.52147, - "longitude": -46.9008, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2110039, - "municipio": "Santa Luzia do Paruá", - "latitude": -2.51123, - "longitude": -45.7801, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3157906, - "municipio": "Santa Margarida", - "latitude": -20.3839, - "longitude": -42.2519, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4316972, - "municipio": "Santa Margarida do Sul", - "latitude": -30.3393, - "longitude": -54.0817, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4316907, - "municipio": "Santa Maria", - "latitude": -29.6868, - "longitude": -53.8149, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2409332, - "municipio": "Santa Maria", - "latitude": -5.83802, - "longitude": -35.6914, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2612604, - "municipio": "Santa Maria da Boa Vista", - "latitude": -8.79766, - "longitude": -39.8241, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3547007, - "municipio": "Santa Maria da Serra", - "latitude": -22.5661, - "longitude": -48.1593, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2928109, - "municipio": "Santa Maria da Vitória", - "latitude": -13.3859, - "longitude": -44.2011, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1506583, - "municipio": "Santa Maria das Barreiras", - "latitude": -8.85784, - "longitude": -49.7215, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3158003, - "municipio": "Santa Maria de Itabira", - "latitude": -19.4431, - "longitude": -43.1064, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3204559, - "municipio": "Santa Maria de Jetibá", - "latitude": -20.0253, - "longitude": -40.7439, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2612703, - "municipio": "Santa Maria do Cambucá", - "latitude": -7.83676, - "longitude": -35.8941, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4316956, - "municipio": "Santa Maria do Herval", - "latitude": -29.4902, - "longitude": -50.9919, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4123857, - "municipio": "Santa Maria do Oeste", - "latitude": -24.9377, - "longitude": -51.8696, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1506609, - "municipio": "Santa Maria do Pará", - "latitude": -1.35392, - "longitude": -47.5712, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3158102, - "municipio": "Santa Maria do Salto", - "latitude": -16.2479, - "longitude": -40.1512, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3158201, - "municipio": "Santa Maria do Suaçuí", - "latitude": -18.1896, - "longitude": -42.4139, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1718881, - "municipio": "Santa Maria do Tocantins", - "latitude": -8.8046, - "longitude": -47.7887, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3304607, - "municipio": "Santa Maria Madalena", - "latitude": -21.9547, - "longitude": -42.0098, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4123907, - "municipio": "Santa Mariana", - "latitude": -23.1465, - "longitude": -50.5167, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3547106, - "municipio": "Santa Mercedes", - "latitude": -21.3495, - "longitude": -51.7564, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4123956, - "municipio": "Santa Mônica", - "latitude": -23.108, - "longitude": -53.1103, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2312205, - "municipio": "Santa Quitéria", - "latitude": -4.32608, - "longitude": -40.1523, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2110104, - "municipio": "Santa Quitéria do Maranhão", - "latitude": -3.49308, - "longitude": -42.5688, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2110203, - "municipio": "Santa Rita", - "latitude": -3.14241, - "longitude": -44.3211, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2513703, - "municipio": "Santa Rita", - "latitude": -7.11724, - "longitude": -34.9753, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3547403, - "municipio": "Santa Rita d'Oeste", - "latitude": -20.1414, - "longitude": -50.8358, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3159209, - "municipio": "Santa Rita de Caldas", - "latitude": -22.0292, - "longitude": -46.3385, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2928406, - "municipio": "Santa Rita de Cássia", - "latitude": -11.0063, - "longitude": -44.5255, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3159407, - "municipio": "Santa Rita de Ibitipoca", - "latitude": -21.5658, - "longitude": -43.9163, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3159308, - "municipio": "Santa Rita de Jacutinga", - "latitude": -22.1474, - "longitude": -44.0977, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3159357, - "municipio": "Santa Rita de Minas", - "latitude": -19.876, - "longitude": -42.1363, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5219407, - "municipio": "Santa Rita do Araguaia", - "latitude": -17.3269, - "longitude": -53.2012, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3159506, - "municipio": "Santa Rita do Itueto", - "latitude": -19.3576, - "longitude": -41.3821, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5219456, - "municipio": "Santa Rita do Novo Destino", - "latitude": -15.1351, - "longitude": -49.1203, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5007554, - "municipio": "Santa Rita do Pardo", - "latitude": -21.3016, - "longitude": -52.8333, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3547502, - "municipio": "Santa Rita do Passa Quatro", - "latitude": -21.7083, - "longitude": -47.478, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3159605, - "municipio": "Santa Rita do Sapucaí", - "latitude": -22.2461, - "longitude": -45.7034, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1718899, - "municipio": "Santa Rita do Tocantins", - "latitude": -10.8617, - "longitude": -48.9161, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107768, - "municipio": "Santa Rita do Trivelato", - "latitude": -13.8146, - "longitude": -55.2706, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4317202, - "municipio": "Santa Rosa", - "latitude": -27.8702, - "longitude": -54.4796, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3159704, - "municipio": "Santa Rosa da Serra", - "latitude": -19.5186, - "longitude": -45.9611, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5219506, - "municipio": "Santa Rosa de Goiás", - "latitude": -16.084, - "longitude": -49.4953, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4215604, - "municipio": "Santa Rosa de Lima", - "latitude": -28.0331, - "longitude": -49.133, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2806503, - "municipio": "Santa Rosa de Lima", - "latitude": -10.6434, - "longitude": -37.1931, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3547601, - "municipio": "Santa Rosa de Viterbo", - "latitude": -21.4776, - "longitude": -47.3622, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2209377, - "municipio": "Santa Rosa do Piauí", - "latitude": -6.79581, - "longitude": -42.2814, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1200435, - "municipio": "Santa Rosa do Purus", - "latitude": -9.44652, - "longitude": -70.4902, - "codigo_uf": 12, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 4215653, - "municipio": "Santa Rosa do Sul", - "latitude": -29.1313, - "longitude": -49.7109, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1718907, - "municipio": "Santa Rosa do Tocantins", - "latitude": -11.4474, - "longitude": -48.1216, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3547650, - "municipio": "Santa Salete", - "latitude": -20.2429, - "longitude": -50.6887, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3204609, - "municipio": "Santa Teresa", - "latitude": -19.9363, - "longitude": -40.5979, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2928505, - "municipio": "Santa Teresinha", - "latitude": -12.7697, - "longitude": -39.5215, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2513802, - "municipio": "Santa Teresinha", - "latitude": -7.07964, - "longitude": -37.4435, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4317251, - "municipio": "Santa Tereza", - "latitude": -29.1655, - "longitude": -51.7351, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5219605, - "municipio": "Santa Tereza de Goiás", - "latitude": -13.7138, - "longitude": -49.0144, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4124020, - "municipio": "Santa Tereza do Oeste", - "latitude": -25.0543, - "longitude": -53.6274, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1719004, - "municipio": "Santa Tereza do Tocantins", - "latitude": -10.2746, - "longitude": -47.8033, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4215679, - "municipio": "Santa Terezinha", - "latitude": -26.7813, - "longitude": -50.009, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107776, - "municipio": "Santa Terezinha", - "latitude": -10.4704, - "longitude": -50.514, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2612802, - "municipio": "Santa Terezinha", - "latitude": -7.37696, - "longitude": -37.4787, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5219704, - "municipio": "Santa Terezinha de Goiás", - "latitude": -14.4326, - "longitude": -49.7091, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4124053, - "municipio": "Santa Terezinha de Itaipu", - "latitude": -25.4391, - "longitude": -54.402, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4215687, - "municipio": "Santa Terezinha do Progresso", - "latitude": -26.624, - "longitude": -53.1997, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1720002, - "municipio": "Santa Terezinha do Tocantins", - "latitude": -6.44438, - "longitude": -47.6684, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3159803, - "municipio": "Santa Vitória", - "latitude": -18.8414, - "longitude": -50.1208, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4317301, - "municipio": "Santa Vitória do Palmar", - "latitude": -33.525, - "longitude": -53.3717, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2928000, - "municipio": "Santaluz", - "latitude": -11.2508, - "longitude": -39.375, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2928208, - "municipio": "Santana", - "latitude": -12.9792, - "longitude": -44.0506, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1600600, - "municipio": "Santana", - "latitude": -0.045434, - "longitude": -51.1729, - "codigo_uf": 16, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4317004, - "municipio": "Santana da Boa Vista", - "latitude": -30.8697, - "longitude": -53.11, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3547205, - "municipio": "Santana da Ponte Pensa", - "latitude": -20.2523, - "longitude": -50.8014, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3158300, - "municipio": "Santana da Vargem", - "latitude": -21.2449, - "longitude": -45.5005, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3158409, - "municipio": "Santana de Cataguases", - "latitude": -21.2893, - "longitude": -42.5524, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2513505, - "municipio": "Santana de Mangueira", - "latitude": -7.54705, - "longitude": -38.3236, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3547304, - "municipio": "Santana de Parnaíba", - "latitude": -23.4439, - "longitude": -46.9178, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3158508, - "municipio": "Santana de Pirapama", - "latitude": -18.9962, - "longitude": -44.0409, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2312007, - "municipio": "Santana do Acaraú", - "latitude": -3.46144, - "longitude": -40.2118, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1506708, - "municipio": "Santana do Araguaia", - "latitude": -9.3281, - "longitude": -50.35, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2312106, - "municipio": "Santana do Cariri", - "latitude": -7.17613, - "longitude": -39.7302, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3158607, - "municipio": "Santana do Deserto", - "latitude": -21.9512, - "longitude": -43.1583, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3158706, - "municipio": "Santana do Garambéu", - "latitude": -21.5983, - "longitude": -44.105, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2708006, - "municipio": "Santana do Ipanema", - "latitude": -9.36999, - "longitude": -37.248, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4124004, - "municipio": "Santana do Itararé", - "latitude": -23.7587, - "longitude": -49.6293, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3158805, - "municipio": "Santana do Jacaré", - "latitude": -20.9007, - "longitude": -45.1285, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3158904, - "municipio": "Santana do Manhuaçu", - "latitude": -20.1031, - "longitude": -41.9278, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2110237, - "municipio": "Santana do Maranhão", - "latitude": -3.109, - "longitude": -42.4064, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2411403, - "municipio": "Santana do Matos", - "latitude": -5.94605, - "longitude": -36.6578, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2708105, - "municipio": "Santana do Mundaú", - "latitude": -9.17141, - "longitude": -36.2176, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3158953, - "municipio": "Santana do Paraíso", - "latitude": -19.3661, - "longitude": -42.5446, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2209351, - "municipio": "Santana do Piauí", - "latitude": -6.94696, - "longitude": -41.5178, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3159001, - "municipio": "Santana do Riacho", - "latitude": -19.1662, - "longitude": -43.722, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2806404, - "municipio": "Santana do São Francisco", - "latitude": -10.2922, - "longitude": -36.6105, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2411429, - "municipio": "Santana do Seridó", - "latitude": -6.76643, - "longitude": -36.7312, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2513604, - "municipio": "Santana dos Garrotes", - "latitude": -7.38162, - "longitude": -37.9819, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3159100, - "municipio": "Santana dos Montes", - "latitude": -20.7868, - "longitude": -43.6949, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2928307, - "municipio": "Santanópolis", - "latitude": -12.0311, - "longitude": -38.8694, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1506807, - "municipio": "Santarém", - "latitude": -2.43849, - "longitude": -54.6996, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1506906, - "municipio": "Santarém Novo", - "latitude": -0.93097, - "longitude": -47.3855, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4317400, - "municipio": "Santiago", - "latitude": -29.1897, - "longitude": -54.8666, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4215695, - "municipio": "Santiago do Sul", - "latitude": -26.6388, - "longitude": -52.6799, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107263, - "municipio": "Santo Afonso", - "latitude": -14.4945, - "longitude": -57.0091, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2928604, - "municipio": "Santo Amaro", - "latitude": -12.5472, - "longitude": -38.7137, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4215703, - "municipio": "Santo Amaro da Imperatriz", - "latitude": -27.6852, - "longitude": -48.7813, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2806602, - "municipio": "Santo Amaro das Brotas", - "latitude": -10.7892, - "longitude": -37.0564, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2110278, - "municipio": "Santo Amaro do Maranhão", - "latitude": -2.50068, - "longitude": -43.238, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3547700, - "municipio": "Santo Anastácio", - "latitude": -21.9747, - "longitude": -51.6527, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3547809, - "municipio": "Santo André", - "latitude": -23.6737, - "longitude": -46.5432, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2513851, - "municipio": "Santo André", - "latitude": -7.22016, - "longitude": -36.6213, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4317509, - "municipio": "Santo Ângelo", - "latitude": -28.3001, - "longitude": -54.2668, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2411502, - "municipio": "Santo Antônio", - "latitude": -6.31195, - "longitude": -35.4739, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3547908, - "municipio": "Santo Antônio da Alegria", - "latitude": -21.0864, - "longitude": -47.1464, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5219712, - "municipio": "Santo Antônio da Barra", - "latitude": -17.5585, - "longitude": -50.6345, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4317608, - "municipio": "Santo Antônio da Patrulha", - "latitude": -29.8268, - "longitude": -50.5175, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4124103, - "municipio": "Santo Antônio da Platina", - "latitude": -23.2959, - "longitude": -50.0815, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4317707, - "municipio": "Santo Antônio das Missões", - "latitude": -28.514, - "longitude": -55.2251, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5219738, - "municipio": "Santo Antônio de Goiás", - "latitude": -16.4815, - "longitude": -49.3096, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2928703, - "municipio": "Santo Antônio de Jesus", - "latitude": -12.9614, - "longitude": -39.2584, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2209401, - "municipio": "Santo Antônio de Lisboa", - "latitude": -6.98676, - "longitude": -41.2252, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3304706, - "municipio": "Santo Antônio de Pádua", - "latitude": -21.541, - "longitude": -42.1832, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3548005, - "municipio": "Santo Antônio de Posse", - "latitude": -22.6029, - "longitude": -46.9192, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3159902, - "municipio": "Santo Antônio do Amparo", - "latitude": -20.943, - "longitude": -44.9176, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3548054, - "municipio": "Santo Antônio do Aracanguá", - "latitude": -20.9331, - "longitude": -50.498, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3160009, - "municipio": "Santo Antônio do Aventureiro", - "latitude": -21.7606, - "longitude": -42.8115, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4124202, - "municipio": "Santo Antônio do Caiuá", - "latitude": -22.7351, - "longitude": -52.344, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5219753, - "municipio": "Santo Antônio do Descoberto", - "latitude": -15.9412, - "longitude": -48.2578, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3160108, - "municipio": "Santo Antônio do Grama", - "latitude": -20.3185, - "longitude": -42.6047, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1303700, - "municipio": "Santo Antônio do Içá", - "latitude": -3.09544, - "longitude": -67.9463, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3160207, - "municipio": "Santo Antônio do Itambé", - "latitude": -18.4609, - "longitude": -43.3006, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3160306, - "municipio": "Santo Antônio do Jacinto", - "latitude": -16.5332, - "longitude": -40.1817, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3548104, - "municipio": "Santo Antônio do Jardim", - "latitude": -22.1121, - "longitude": -46.6845, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107792, - "municipio": "Santo Antônio do Leste", - "latitude": -14.805, - "longitude": -53.6075, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5107800, - "municipio": "Santo Antônio do Leverger", - "latitude": -15.8632, - "longitude": -56.0788, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3160405, - "municipio": "Santo Antônio do Monte", - "latitude": -20.085, - "longitude": -45.2947, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4317558, - "municipio": "Santo Antônio do Palma", - "latitude": -28.4956, - "longitude": -52.0267, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4124301, - "municipio": "Santo Antônio do Paraíso", - "latitude": -23.4969, - "longitude": -50.6455, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3548203, - "municipio": "Santo Antônio do Pinhal", - "latitude": -22.827, - "longitude": -45.663, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4317756, - "municipio": "Santo Antônio do Planalto", - "latitude": -28.403, - "longitude": -52.6992, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3160454, - "municipio": "Santo Antônio do Retiro", - "latitude": -15.3393, - "longitude": -42.6171, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3160504, - "municipio": "Santo Antônio do Rio Abaixo", - "latitude": -19.2374, - "longitude": -43.2604, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4124400, - "municipio": "Santo Antônio do Sudoeste", - "latitude": -26.0737, - "longitude": -53.7251, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1507003, - "municipio": "Santo Antônio do Tauá", - "latitude": -1.1522, - "longitude": -48.1314, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2110302, - "municipio": "Santo Antônio dos Lopes", - "latitude": -4.86613, - "longitude": -44.3653, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2209450, - "municipio": "Santo Antônio dos Milagres", - "latitude": -6.04647, - "longitude": -42.7123, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4317806, - "municipio": "Santo Augusto", - "latitude": -27.8526, - "longitude": -53.7776, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4317905, - "municipio": "Santo Cristo", - "latitude": -27.8263, - "longitude": -54.662, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2928802, - "municipio": "Santo Estêvão", - "latitude": -12.428, - "longitude": -39.2505, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3548302, - "municipio": "Santo Expedito", - "latitude": -21.8467, - "longitude": -51.3929, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4317954, - "municipio": "Santo Expedito do Sul", - "latitude": -27.9074, - "longitude": -51.6434, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3160603, - "municipio": "Santo Hipólito", - "latitude": -18.2968, - "longitude": -44.2229, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4124509, - "municipio": "Santo Inácio", - "latitude": -22.6957, - "longitude": -51.7969, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2209500, - "municipio": "Santo Inácio do Piauí", - "latitude": -7.42072, - "longitude": -41.9063, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3548401, - "municipio": "Santópolis do Aguapeí", - "latitude": -21.6376, - "longitude": -50.5044, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3548500, - "municipio": "Santos", - "latitude": -23.9535, - "longitude": -46.335, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3160702, - "municipio": "Santos Dumont", - "latitude": -21.4634, - "longitude": -43.5499, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2312304, - "municipio": "São Benedito", - "latitude": -4.04713, - "longitude": -40.8596, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2110401, - "municipio": "São Benedito do Rio Preto", - "latitude": -3.33515, - "longitude": -43.5287, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2612901, - "municipio": "São Benedito do Sul", - "latitude": -8.8166, - "longitude": -35.9453, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2513927, - "municipio": "São Bentinho", - "latitude": -6.88596, - "longitude": -37.7243, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2513901, - "municipio": "São Bento", - "latitude": -6.48529, - "longitude": -37.4488, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2110500, - "municipio": "São Bento", - "latitude": -2.69781, - "longitude": -44.8289, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3160801, - "municipio": "São Bento Abade", - "latitude": -21.5839, - "longitude": -45.0699, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2411601, - "municipio": "São Bento do Norte", - "latitude": -5.09259, - "longitude": -35.9587, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3548609, - "municipio": "São Bento do Sapucaí", - "latitude": -22.6837, - "longitude": -45.7287, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4215802, - "municipio": "São Bento do Sul", - "latitude": -26.2495, - "longitude": -49.3831, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1720101, - "municipio": "São Bento do Tocantins", - "latitude": -6.0258, - "longitude": -47.9012, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2411700, - "municipio": "São Bento do Trairí", - "latitude": -6.33798, - "longitude": -36.0863, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2613008, - "municipio": "São Bento do Una", - "latitude": -8.52637, - "longitude": -36.4465, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4215752, - "municipio": "São Bernardino", - "latitude": -26.4739, - "longitude": -52.9687, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2110609, - "municipio": "São Bernardo", - "latitude": -3.37223, - "longitude": -42.4191, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3548708, - "municipio": "São Bernardo do Campo", - "latitude": -23.6914, - "longitude": -46.5646, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4215901, - "municipio": "São Bonifácio", - "latitude": -27.9009, - "longitude": -48.9326, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4318002, - "municipio": "São Borja", - "latitude": -28.6578, - "longitude": -56.0036, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2708204, - "municipio": "São Brás", - "latitude": -10.1141, - "longitude": -36.8522, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3160900, - "municipio": "São Brás do Suaçuí", - "latitude": -20.6242, - "longitude": -43.9515, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2209559, - "municipio": "São Braz do Piauí", - "latitude": -9.05797, - "longitude": -43.0076, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2613107, - "municipio": "São Caetano", - "latitude": -8.33763, - "longitude": -36.2869, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1507102, - "municipio": "São Caetano de Odivelas", - "latitude": -0.747293, - "longitude": -48.0246, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3548807, - "municipio": "São Caetano do Sul", - "latitude": -23.6229, - "longitude": -46.5548, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3548906, - "municipio": "São Carlos", - "latitude": -22.0174, - "longitude": -47.886, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4216008, - "municipio": "São Carlos", - "latitude": -27.0798, - "longitude": -53.0037, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4124608, - "municipio": "São Carlos do Ivaí", - "latitude": -23.3158, - "longitude": -52.4761, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2806701, - "municipio": "São Cristóvão", - "latitude": -11.0084, - "longitude": -37.2044, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4216057, - "municipio": "São Cristovão do Sul", - "latitude": -27.2666, - "longitude": -50.4388, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2928901, - "municipio": "São Desidério", - "latitude": -12.3572, - "longitude": -44.9769, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2928950, - "municipio": "São Domingos", - "latitude": -11.4649, - "longitude": -39.5268, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4216107, - "municipio": "São Domingos", - "latitude": -26.5548, - "longitude": -52.5313, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2513968, - "municipio": "São Domingos", - "latitude": -6.80313, - "longitude": -37.9488, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2806800, - "municipio": "São Domingos", - "latitude": -10.7916, - "longitude": -37.5685, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5219803, - "municipio": "São Domingos", - "latitude": -13.621, - "longitude": -46.7415, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3160959, - "municipio": "São Domingos das Dores", - "latitude": -19.5246, - "longitude": -42.0106, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1507151, - "municipio": "São Domingos do Araguaia", - "latitude": -5.53732, - "longitude": -48.7366, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2110658, - "municipio": "São Domingos do Azeitão", - "latitude": -6.81471, - "longitude": -44.6509, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1507201, - "municipio": "São Domingos do Capim", - "latitude": -1.68768, - "longitude": -47.7665, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2513943, - "municipio": "São Domingos do Cariri", - "latitude": -7.63273, - "longitude": -36.4374, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2110708, - "municipio": "São Domingos do Maranhão", - "latitude": -5.58095, - "longitude": -44.3822, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3204658, - "municipio": "São Domingos do Norte", - "latitude": -19.1452, - "longitude": -40.6281, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3161007, - "municipio": "São Domingos do Prata", - "latitude": -19.8678, - "longitude": -42.971, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4318051, - "municipio": "São Domingos do Sul", - "latitude": -28.5312, - "longitude": -51.886, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2929107, - "municipio": "São Felipe", - "latitude": -12.8394, - "longitude": -39.0893, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1101484, - "municipio": "São Felipe D'Oeste", - "latitude": -11.9023, - "longitude": -61.5026, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2929008, - "municipio": "São Félix", - "latitude": -12.6104, - "longitude": -38.9727, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2110807, - "municipio": "São Félix de Balsas", - "latitude": -7.07535, - "longitude": -44.8092, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3161056, - "municipio": "São Félix de Minas", - "latitude": -18.5959, - "longitude": -41.4889, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107859, - "municipio": "São Félix do Araguaia", - "latitude": -11.615, - "longitude": -50.6706, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2929057, - "municipio": "São Félix do Coribe", - "latitude": -13.4019, - "longitude": -44.1837, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2209609, - "municipio": "São Félix do Piauí", - "latitude": -5.93485, - "longitude": -42.1172, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1720150, - "municipio": "São Félix do Tocantins", - "latitude": -10.1615, - "longitude": -46.6618, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1507300, - "municipio": "São Félix do Xingu", - "latitude": -6.64254, - "longitude": -51.9904, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2411809, - "municipio": "São Fernando", - "latitude": -6.37975, - "longitude": -37.1864, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3304805, - "municipio": "São Fidélis", - "latitude": -21.6551, - "longitude": -41.756, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3549003, - "municipio": "São Francisco", - "latitude": -20.3623, - "longitude": -50.6952, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2513984, - "municipio": "São Francisco", - "latitude": -6.60773, - "longitude": -38.0968, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2806909, - "municipio": "São Francisco", - "latitude": -10.3442, - "longitude": -36.8869, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3161106, - "municipio": "São Francisco", - "latitude": -15.9514, - "longitude": -44.8593, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4318101, - "municipio": "São Francisco de Assis", - "latitude": -29.5547, - "longitude": -55.1253, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2209658, - "municipio": "São Francisco de Assis do Piauí", - "latitude": -8.23599, - "longitude": -41.6873, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5219902, - "municipio": "São Francisco de Goiás", - "latitude": -15.9256, - "longitude": -49.2605, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3304755, - "municipio": "São Francisco de Itabapoana", - "latitude": -21.4702, - "longitude": -41.1091, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4318200, - "municipio": "São Francisco de Paula", - "latitude": -29.4404, - "longitude": -50.5828, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3161205, - "municipio": "São Francisco de Paula", - "latitude": -20.7036, - "longitude": -44.9838, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3161304, - "municipio": "São Francisco de Sales", - "latitude": -19.8611, - "longitude": -49.7727, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2110856, - "municipio": "São Francisco do Brejão", - "latitude": -5.12584, - "longitude": -47.389, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2929206, - "municipio": "São Francisco do Conde", - "latitude": -12.6183, - "longitude": -38.6786, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3161403, - "municipio": "São Francisco do Glória", - "latitude": -20.7923, - "longitude": -42.2673, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1101492, - "municipio": "São Francisco do Guaporé", - "latitude": -12.052, - "longitude": -63.568, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2110906, - "municipio": "São Francisco do Maranhão", - "latitude": -6.25159, - "longitude": -42.8668, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2411908, - "municipio": "São Francisco do Oeste", - "latitude": -5.97472, - "longitude": -38.1519, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1507409, - "municipio": "São Francisco do Pará", - "latitude": -1.16963, - "longitude": -47.7917, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2209708, - "municipio": "São Francisco do Piauí", - "latitude": -7.2463, - "longitude": -42.541, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4216206, - "municipio": "São Francisco do Sul", - "latitude": -26.2579, - "longitude": -48.6344, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4318309, - "municipio": "São Gabriel", - "latitude": -30.3337, - "longitude": -54.3217, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2929255, - "municipio": "São Gabriel", - "latitude": -11.2175, - "longitude": -41.8843, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1303809, - "municipio": "São Gabriel da Cachoeira", - "latitude": -0.11909, - "longitude": -67.084, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3204708, - "municipio": "São Gabriel da Palha", - "latitude": -19.0182, - "longitude": -40.5365, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5007695, - "municipio": "São Gabriel do Oeste", - "latitude": -19.3889, - "longitude": -54.5507, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3161502, - "municipio": "São Geraldo", - "latitude": -20.9252, - "longitude": -42.8364, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3161601, - "municipio": "São Geraldo da Piedade", - "latitude": -18.8411, - "longitude": -42.2867, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1507458, - "municipio": "São Geraldo do Araguaia", - "latitude": -6.39471, - "longitude": -48.5592, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3161650, - "municipio": "São Geraldo do Baixio", - "latitude": -18.9097, - "longitude": -41.363, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3304904, - "municipio": "São Gonçalo", - "latitude": -22.8268, - "longitude": -43.0634, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3161700, - "municipio": "São Gonçalo do Abaeté", - "latitude": -18.3315, - "longitude": -45.8265, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2412005, - "municipio": "São Gonçalo do Amarante", - "latitude": -5.79068, - "longitude": -35.3257, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2312403, - "municipio": "São Gonçalo do Amarante", - "latitude": -3.60515, - "longitude": -38.9726, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2209757, - "municipio": "São Gonçalo do Gurguéia", - "latitude": -10.0319, - "longitude": -45.3092, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3161809, - "municipio": "São Gonçalo do Pará", - "latitude": -19.9822, - "longitude": -44.8593, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2209807, - "municipio": "São Gonçalo do Piauí", - "latitude": -5.99393, - "longitude": -42.7095, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3161908, - "municipio": "São Gonçalo do Rio Abaixo", - "latitude": -19.8221, - "longitude": -43.366, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3125507, - "municipio": "São Gonçalo do Rio Preto", - "latitude": -18.0025, - "longitude": -43.3854, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3162005, - "municipio": "São Gonçalo do Sapucaí", - "latitude": -21.8932, - "longitude": -45.5893, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2929305, - "municipio": "São Gonçalo dos Campos", - "latitude": -12.4331, - "longitude": -38.9663, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3162104, - "municipio": "São Gotardo", - "latitude": -19.3087, - "longitude": -46.0465, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4318408, - "municipio": "São Jerônimo", - "latitude": -29.9716, - "longitude": -51.7251, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4124707, - "municipio": "São Jerônimo da Serra", - "latitude": -23.7218, - "longitude": -50.7475, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4124806, - "municipio": "São João", - "latitude": -25.8214, - "longitude": -52.7252, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2613206, - "municipio": "São João", - "latitude": -8.87576, - "longitude": -36.3653, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2111003, - "municipio": "São João Batista", - "latitude": -2.95398, - "longitude": -44.7953, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4216305, - "municipio": "São João Batista", - "latitude": -27.2772, - "longitude": -48.8474, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3162203, - "municipio": "São João Batista do Glória", - "latitude": -20.635, - "longitude": -46.508, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5220009, - "municipio": "São João d'Aliança", - "latitude": -14.7048, - "longitude": -47.5228, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1400506, - "municipio": "São João da Baliza", - "latitude": 0.951659, - "longitude": -59.9133, - "codigo_uf": 14, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3305000, - "municipio": "São João da Barra", - "latitude": -21.638, - "longitude": -41.0446, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3549102, - "municipio": "São João da Boa Vista", - "latitude": -21.9707, - "longitude": -46.7944, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2209856, - "municipio": "São João da Canabrava", - "latitude": -6.81203, - "longitude": -41.3415, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2209872, - "municipio": "São João da Fronteira", - "latitude": -3.95497, - "longitude": -41.2569, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3162252, - "municipio": "São João da Lagoa", - "latitude": -16.8455, - "longitude": -44.3507, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3162302, - "municipio": "São João da Mata", - "latitude": -21.928, - "longitude": -45.9297, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5220058, - "municipio": "São João da Paraúna", - "latitude": -16.8126, - "longitude": -50.4092, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1507466, - "municipio": "São João da Ponta", - "latitude": -0.857885, - "longitude": -47.918, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3162401, - "municipio": "São João da Ponte", - "latitude": -15.9271, - "longitude": -44.0096, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2209906, - "municipio": "São João da Serra", - "latitude": -5.51081, - "longitude": -41.8923, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4318424, - "municipio": "São João da Urtiga", - "latitude": -27.8195, - "longitude": -51.8257, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2209955, - "municipio": "São João da Varjota", - "latitude": -6.94082, - "longitude": -41.8889, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3549201, - "municipio": "São João das Duas Pontes", - "latitude": -20.3879, - "longitude": -50.3792, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3162450, - "municipio": "São João das Missões", - "latitude": -14.8859, - "longitude": -44.0922, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3549250, - "municipio": "São João de Iracema", - "latitude": -20.5111, - "longitude": -50.3561, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3305109, - "municipio": "São João de Meriti", - "latitude": -22.8058, - "longitude": -43.3729, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1507474, - "municipio": "São João de Pirabas", - "latitude": -0.780222, - "longitude": -47.181, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3162500, - "municipio": "São João del Rei", - "latitude": -21.1311, - "longitude": -44.2526, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1507508, - "municipio": "São João do Araguaia", - "latitude": -5.36334, - "longitude": -48.7926, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2209971, - "municipio": "São João do Arraial", - "latitude": -3.8186, - "longitude": -42.4459, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4124905, - "municipio": "São João do Caiuá", - "latitude": -22.8535, - "longitude": -52.3411, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2514008, - "municipio": "São João do Cariri", - "latitude": -7.38168, - "longitude": -36.5345, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2111029, - "municipio": "São João do Carú", - "latitude": -3.5503, - "longitude": -46.2507, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4216354, - "municipio": "São João do Itaperiú", - "latitude": -26.6213, - "longitude": -48.7683, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4125001, - "municipio": "São João do Ivaí", - "latitude": -23.9833, - "longitude": -51.8215, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2312502, - "municipio": "São João do Jaguaribe", - "latitude": -5.27516, - "longitude": -38.2694, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3162559, - "municipio": "São João do Manhuaçu", - "latitude": -20.3933, - "longitude": -42.1533, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3162575, - "municipio": "São João do Manteninha", - "latitude": -18.723, - "longitude": -41.1628, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4216255, - "municipio": "São João do Oeste", - "latitude": -27.0984, - "longitude": -53.5977, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3162609, - "municipio": "São João do Oriente", - "latitude": -19.3384, - "longitude": -42.1575, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3162658, - "municipio": "São João do Pacuí", - "latitude": -16.5373, - "longitude": -44.5134, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3162708, - "municipio": "São João do Paraíso", - "latitude": -15.3168, - "longitude": -42.0213, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2111052, - "municipio": "São João do Paraíso", - "latitude": -6.45634, - "longitude": -47.0594, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3549300, - "municipio": "São João do Pau d'Alho", - "latitude": -21.2662, - "longitude": -51.6672, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2210003, - "municipio": "São João do Piauí", - "latitude": -8.35466, - "longitude": -42.2559, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4318432, - "municipio": "São João do Polêsine", - "latitude": -29.6194, - "longitude": -53.4439, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2500700, - "municipio": "São João do Rio do Peixe", - "latitude": -6.72195, - "longitude": -38.4468, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2412104, - "municipio": "São João do Sabugi", - "latitude": -6.71387, - "longitude": -37.2027, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2111078, - "municipio": "São João do Soter", - "latitude": -5.10821, - "longitude": -43.8163, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4216404, - "municipio": "São João do Sul", - "latitude": -29.2154, - "longitude": -49.8094, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2514107, - "municipio": "São João do Tigre", - "latitude": -8.07703, - "longitude": -36.8547, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4125100, - "municipio": "São João do Triunfo", - "latitude": -25.683, - "longitude": -50.2949, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2111102, - "municipio": "São João dos Patos", - "latitude": -6.4934, - "longitude": -43.7036, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3162807, - "municipio": "São João Evangelista", - "latitude": -18.548, - "longitude": -42.7655, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3162906, - "municipio": "São João Nepomuceno", - "latitude": -21.5381, - "longitude": -43.0069, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4216503, - "municipio": "São Joaquim", - "latitude": -28.2887, - "longitude": -49.9457, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3549409, - "municipio": "São Joaquim da Barra", - "latitude": -20.5812, - "longitude": -47.8593, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3162922, - "municipio": "São Joaquim de Bicas", - "latitude": -20.048, - "longitude": -44.2749, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2613305, - "municipio": "São Joaquim do Monte", - "latitude": -8.43196, - "longitude": -35.8035, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4318440, - "municipio": "São Jorge", - "latitude": -28.4984, - "longitude": -51.7064, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4125209, - "municipio": "São Jorge d'Oeste", - "latitude": -25.7085, - "longitude": -52.9204, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4125308, - "municipio": "São Jorge do Ivaí", - "latitude": -23.4336, - "longitude": -52.2929, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4125357, - "municipio": "São Jorge do Patrocínio", - "latitude": -23.7647, - "longitude": -53.8823, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4216602, - "municipio": "São José", - "latitude": -27.6136, - "longitude": -48.6366, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3162948, - "municipio": "São José da Barra", - "latitude": -20.7178, - "longitude": -46.313, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3549508, - "municipio": "São José da Bela Vista", - "latitude": -20.5935, - "longitude": -47.6424, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4125407, - "municipio": "São José da Boa Vista", - "latitude": -23.9122, - "longitude": -49.6577, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2613404, - "municipio": "São José da Coroa Grande", - "latitude": -8.88937, - "longitude": -35.1515, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2514206, - "municipio": "São José da Lagoa Tapada", - "latitude": -6.93646, - "longitude": -38.1622, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2708303, - "municipio": "São José da Laje", - "latitude": -9.01278, - "longitude": -36.0515, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3162955, - "municipio": "São José da Lapa", - "latitude": -19.6971, - "longitude": -43.9586, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3163003, - "municipio": "São José da Safira", - "latitude": -18.3243, - "longitude": -42.1431, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2708402, - "municipio": "São José da Tapera", - "latitude": -9.55768, - "longitude": -37.3831, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3163102, - "municipio": "São José da Varginha", - "latitude": -19.7006, - "longitude": -44.556, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2929354, - "municipio": "São José da Vitória", - "latitude": -15.0787, - "longitude": -39.3437, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4318457, - "municipio": "São José das Missões", - "latitude": -27.7789, - "longitude": -53.1226, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4125456, - "municipio": "São José das Palmeiras", - "latitude": -24.8369, - "longitude": -54.0572, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2514305, - "municipio": "São José de Caiana", - "latitude": -7.24636, - "longitude": -38.2989, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2514404, - "municipio": "São José de Espinharas", - "latitude": -6.83974, - "longitude": -37.3214, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2412203, - "municipio": "São José de Mipibu", - "latitude": -6.0773, - "longitude": -35.2417, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2514503, - "municipio": "São José de Piranhas", - "latitude": -7.1187, - "longitude": -38.502, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2514552, - "municipio": "São José de Princesa", - "latitude": -7.73633, - "longitude": -38.0894, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2111201, - "municipio": "São José de Ribamar", - "latitude": -2.54704, - "longitude": -44.0597, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3305133, - "municipio": "São José de Ubá", - "latitude": -21.3661, - "longitude": -41.9511, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3163201, - "municipio": "São José do Alegre", - "latitude": -22.3243, - "longitude": -45.5258, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3549607, - "municipio": "São José do Barreiro", - "latitude": -22.6414, - "longitude": -44.5774, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2613503, - "municipio": "São José do Belmonte", - "latitude": -7.85723, - "longitude": -38.7577, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2514602, - "municipio": "São José do Bonfim", - "latitude": -7.1607, - "longitude": -37.3036, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2514651, - "municipio": "São José do Brejo do Cruz", - "latitude": -6.21054, - "longitude": -37.3601, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3204807, - "municipio": "São José do Calçado", - "latitude": -21.0274, - "longitude": -41.6636, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2412302, - "municipio": "São José do Campestre", - "latitude": -6.31087, - "longitude": -35.7067, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4216701, - "municipio": "São José do Cedro", - "latitude": -26.4561, - "longitude": -53.4955, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4216800, - "municipio": "São José do Cerrito", - "latitude": -27.6602, - "longitude": -50.5733, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2210052, - "municipio": "São José do Divino", - "latitude": -3.81411, - "longitude": -41.8308, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3163300, - "municipio": "São José do Divino", - "latitude": -18.4793, - "longitude": -41.3907, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2613602, - "municipio": "São José do Egito", - "latitude": -7.46945, - "longitude": -37.274, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3163409, - "municipio": "São José do Goiabal", - "latitude": -19.9214, - "longitude": -42.7035, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4318465, - "municipio": "São José do Herval", - "latitude": -29.052, - "longitude": -52.295, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4318481, - "municipio": "São José do Hortêncio", - "latitude": -29.528, - "longitude": -51.245, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4318499, - "municipio": "São José do Inhacorá", - "latitude": -27.7251, - "longitude": -54.1275, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2929370, - "municipio": "São José do Jacuípe", - "latitude": -11.4137, - "longitude": -39.8669, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3163508, - "municipio": "São José do Jacuri", - "latitude": -18.281, - "longitude": -42.6729, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3163607, - "municipio": "São José do Mantimento", - "latitude": -20.0058, - "longitude": -41.7486, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4318507, - "municipio": "São José do Norte", - "latitude": -32.0151, - "longitude": -52.0331, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4318606, - "municipio": "São José do Ouro", - "latitude": -27.7707, - "longitude": -51.5966, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2210102, - "municipio": "São José do Peixe", - "latitude": -7.48554, - "longitude": -42.5672, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2210201, - "municipio": "São José do Piauí", - "latitude": -6.87194, - "longitude": -41.4731, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107297, - "municipio": "São José do Povo", - "latitude": -16.4549, - "longitude": -54.2487, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5107305, - "municipio": "São José do Rio Claro", - "latitude": -13.4398, - "longitude": -56.7218, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3549706, - "municipio": "São José do Rio Pardo", - "latitude": -21.5953, - "longitude": -46.8873, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3549805, - "municipio": "São José do Rio Preto", - "latitude": -20.8113, - "longitude": -49.3758, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2514701, - "municipio": "São José do Sabugi", - "latitude": -6.76295, - "longitude": -36.7972, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2412401, - "municipio": "São José do Seridó", - "latitude": -6.44002, - "longitude": -36.8746, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4318614, - "municipio": "São José do Sul", - "latitude": -29.5448, - "longitude": -51.4821, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3305158, - "municipio": "São José do Vale do Rio Preto", - "latitude": -22.1525, - "longitude": -42.9327, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107354, - "municipio": "São José do Xingu", - "latitude": -10.7982, - "longitude": -52.7486, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4318622, - "municipio": "São José dos Ausentes", - "latitude": -28.7476, - "longitude": -50.0677, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2111250, - "municipio": "São José dos Basílios", - "latitude": -5.05493, - "longitude": -44.5809, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3549904, - "municipio": "São José dos Campos", - "latitude": -23.1896, - "longitude": -45.8841, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2514800, - "municipio": "São José dos Cordeiros", - "latitude": -7.38775, - "longitude": -36.8085, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4125506, - "municipio": "São José dos Pinhais", - "latitude": -25.5313, - "longitude": -49.2031, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107107, - "municipio": "São José dos Quatro Marcos", - "latitude": -15.6276, - "longitude": -58.1772, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2514453, - "municipio": "São José dos Ramos", - "latitude": -7.25238, - "longitude": -35.3725, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2210300, - "municipio": "São Julião", - "latitude": -7.08391, - "longitude": -40.8246, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4318705, - "municipio": "São Leopoldo", - "latitude": -29.7545, - "longitude": -51.1498, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3163706, - "municipio": "São Lourenço", - "latitude": -22.1166, - "longitude": -45.0506, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2613701, - "municipio": "São Lourenço da Mata", - "latitude": -8.00684, - "longitude": -35.0124, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3549953, - "municipio": "São Lourenço da Serra", - "latitude": -23.8491, - "longitude": -46.9432, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4216909, - "municipio": "São Lourenço do Oeste", - "latitude": -26.3557, - "longitude": -52.8498, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2210359, - "municipio": "São Lourenço do Piauí", - "latitude": -9.16463, - "longitude": -42.5496, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4318804, - "municipio": "São Lourenço do Sul", - "latitude": -31.3564, - "longitude": -51.9715, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4217006, - "municipio": "São Ludgero", - "latitude": -28.3144, - "longitude": -49.1806, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2111300, - "municipio": "São Luís", - "latitude": -2.53874, - "longitude": -44.2825, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5220108, - "municipio": "São Luís de Montes Belos", - "latitude": -16.5211, - "longitude": -50.3726, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2312601, - "municipio": "São Luís do Curu", - "latitude": -3.66976, - "longitude": -39.2391, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2210375, - "municipio": "São Luis do Piauí", - "latitude": -6.81936, - "longitude": -41.3175, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2708501, - "municipio": "São Luís do Quitunde", - "latitude": -9.31816, - "longitude": -35.5606, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2111409, - "municipio": "São Luís Gonzaga do Maranhão", - "latitude": -4.38541, - "longitude": -44.6654, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1400605, - "municipio": "São Luiz", - "latitude": 1.01019, - "longitude": -60.0419, - "codigo_uf": 14, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5220157, - "municipio": "São Luiz do Norte", - "latitude": -14.8608, - "longitude": -49.3285, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3550001, - "municipio": "São Luiz do Paraitinga", - "latitude": -23.222, - "longitude": -45.3109, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4318903, - "municipio": "São Luiz Gonzaga", - "latitude": -28.412, - "longitude": -54.9559, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2514909, - "municipio": "São Mamede", - "latitude": -6.92386, - "longitude": -37.0954, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4125555, - "municipio": "São Manoel do Paraná", - "latitude": -23.3941, - "longitude": -52.6454, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3550100, - "municipio": "São Manuel", - "latitude": -22.7321, - "longitude": -48.5723, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4319000, - "municipio": "São Marcos", - "latitude": -28.9677, - "longitude": -51.0696, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4217105, - "municipio": "São Martinho", - "latitude": -28.1609, - "longitude": -48.9867, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4319109, - "municipio": "São Martinho", - "latitude": -27.7112, - "longitude": -53.9699, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4319125, - "municipio": "São Martinho da Serra", - "latitude": -29.5397, - "longitude": -53.859, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3204906, - "municipio": "São Mateus", - "latitude": -18.7214, - "longitude": -39.8579, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2111508, - "municipio": "São Mateus do Maranhão", - "latitude": -4.03736, - "longitude": -44.4707, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4125605, - "municipio": "São Mateus do Sul", - "latitude": -25.8677, - "longitude": -50.384, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2412500, - "municipio": "São Miguel", - "latitude": -6.20283, - "longitude": -38.4947, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3550209, - "municipio": "São Miguel Arcanjo", - "latitude": -23.8782, - "longitude": -47.9935, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2210383, - "municipio": "São Miguel da Baixa Grande", - "latitude": -5.85646, - "longitude": -42.1934, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4217154, - "municipio": "São Miguel da Boa Vista", - "latitude": -26.687, - "longitude": -53.2511, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2929404, - "municipio": "São Miguel das Matas", - "latitude": -13.0434, - "longitude": -39.4578, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4319158, - "municipio": "São Miguel das Missões", - "latitude": -28.556, - "longitude": -54.5559, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2515005, - "municipio": "São Miguel de Taipu", - "latitude": -7.24764, - "longitude": -35.2016, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2807006, - "municipio": "São Miguel do Aleixo", - "latitude": -10.3847, - "longitude": -37.3836, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3163805, - "municipio": "São Miguel do Anta", - "latitude": -20.7067, - "longitude": -42.7174, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5220207, - "municipio": "São Miguel do Araguaia", - "latitude": -13.2731, - "longitude": -50.1634, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2210391, - "municipio": "São Miguel do Fidalgo", - "latitude": -7.59713, - "longitude": -42.3676, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2412559, - "municipio": "São Miguel do Gostoso", - "latitude": -5.12302, - "longitude": -35.6354, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1507607, - "municipio": "São Miguel do Guamá", - "latitude": -1.61307, - "longitude": -47.4784, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100320, - "municipio": "São Miguel do Guaporé", - "latitude": -11.6953, - "longitude": -62.7192, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4125704, - "municipio": "São Miguel do Iguaçu", - "latitude": -25.3492, - "longitude": -54.2405, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4217204, - "municipio": "São Miguel do Oeste", - "latitude": -26.7242, - "longitude": -53.5163, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5220264, - "municipio": "São Miguel do Passa Quatro", - "latitude": -17.0582, - "longitude": -48.662, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2210409, - "municipio": "São Miguel do Tapuio", - "latitude": -5.49729, - "longitude": -41.3165, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1720200, - "municipio": "São Miguel do Tocantins", - "latitude": -5.56305, - "longitude": -47.5743, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2708600, - "municipio": "São Miguel dos Campos", - "latitude": -9.78301, - "longitude": -36.0971, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2708709, - "municipio": "São Miguel dos Milagres", - "latitude": -9.26493, - "longitude": -35.3763, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4319208, - "municipio": "São Nicolau", - "latitude": -28.1834, - "longitude": -55.2654, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5220280, - "municipio": "São Patrício", - "latitude": -15.35, - "longitude": -49.818, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3550308, - "municipio": "São Paulo", - "latitude": -23.5329, - "longitude": -46.6395, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4319307, - "municipio": "São Paulo das Missões", - "latitude": -28.0195, - "longitude": -54.9404, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1303908, - "municipio": "São Paulo de Olivença", - "latitude": -3.47292, - "longitude": -68.9646, - "codigo_uf": 13, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 2412609, - "municipio": "São Paulo do Potengi", - "latitude": -5.8994, - "longitude": -35.7642, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2412708, - "municipio": "São Pedro", - "latitude": -5.90559, - "longitude": -35.6317, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3550407, - "municipio": "São Pedro", - "latitude": -22.5483, - "longitude": -47.9096, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2111532, - "municipio": "São Pedro da Água Branca", - "latitude": -5.08472, - "longitude": -48.4291, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3305208, - "municipio": "São Pedro da Aldeia", - "latitude": -22.8429, - "longitude": -42.1026, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107404, - "municipio": "São Pedro da Cipa", - "latitude": -16.0109, - "longitude": -54.9176, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4319356, - "municipio": "São Pedro da Serra", - "latitude": -29.4193, - "longitude": -51.5134, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3163904, - "municipio": "São Pedro da União", - "latitude": -21.131, - "longitude": -46.6123, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4319364, - "municipio": "São Pedro das Missões", - "latitude": -27.7706, - "longitude": -53.2513, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4217253, - "municipio": "São Pedro de Alcântara", - "latitude": -27.5665, - "longitude": -48.8048, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4319372, - "municipio": "São Pedro do Butiá", - "latitude": -28.1243, - "longitude": -54.8926, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4125753, - "municipio": "São Pedro do Iguaçu", - "latitude": -24.9373, - "longitude": -53.8521, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4125803, - "municipio": "São Pedro do Ivaí", - "latitude": -23.8634, - "longitude": -51.8568, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4125902, - "municipio": "São Pedro do Paraná", - "latitude": -22.8239, - "longitude": -53.2241, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2210508, - "municipio": "São Pedro do Piauí", - "latitude": -5.92078, - "longitude": -42.7192, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3164100, - "municipio": "São Pedro do Suaçuí", - "latitude": -18.3609, - "longitude": -42.5981, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4319406, - "municipio": "São Pedro do Sul", - "latitude": -29.6202, - "longitude": -54.1855, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3550506, - "municipio": "São Pedro do Turvo", - "latitude": -22.7453, - "longitude": -49.7428, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2111573, - "municipio": "São Pedro dos Crentes", - "latitude": -6.82389, - "longitude": -46.5319, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3164001, - "municipio": "São Pedro dos Ferros", - "latitude": -20.1732, - "longitude": -42.5251, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2412807, - "municipio": "São Rafael", - "latitude": -5.79791, - "longitude": -36.8778, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2111607, - "municipio": "São Raimundo das Mangabeiras", - "latitude": -7.02183, - "longitude": -45.4809, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2111631, - "municipio": "São Raimundo do Doca Bezerra", - "latitude": -5.11053, - "longitude": -45.0696, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2210607, - "municipio": "São Raimundo Nonato", - "latitude": -9.01241, - "longitude": -42.6987, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2111672, - "municipio": "São Roberto", - "latitude": -5.0231, - "longitude": -45.001, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3164209, - "municipio": "São Romão", - "latitude": -16.3641, - "longitude": -45.0749, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3550605, - "municipio": "São Roque", - "latitude": -23.5226, - "longitude": -47.1357, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3164308, - "municipio": "São Roque de Minas", - "latitude": -20.249, - "longitude": -46.3639, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3204955, - "municipio": "São Roque do Canaã", - "latitude": -19.7411, - "longitude": -40.6526, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1720259, - "municipio": "São Salvador do Tocantins", - "latitude": -12.7458, - "longitude": -48.2352, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3550704, - "municipio": "São Sebastião", - "latitude": -23.7951, - "longitude": -45.4143, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2708808, - "municipio": "São Sebastião", - "latitude": -9.93043, - "longitude": -36.559, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4126009, - "municipio": "São Sebastião da Amoreira", - "latitude": -23.4656, - "longitude": -50.7625, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3164407, - "municipio": "São Sebastião da Bela Vista", - "latitude": -22.1583, - "longitude": -45.7546, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1507706, - "municipio": "São Sebastião da Boa Vista", - "latitude": -1.71597, - "longitude": -49.5249, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3550803, - "municipio": "São Sebastião da Grama", - "latitude": -21.7041, - "longitude": -46.8208, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3164431, - "municipio": "São Sebastião da Vargem Alegre", - "latitude": -19.7477, - "longitude": -43.3679, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2515104, - "municipio": "São Sebastião de Lagoa de Roça", - "latitude": -7.11034, - "longitude": -35.8678, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3305307, - "municipio": "São Sebastião do Alto", - "latitude": -21.9578, - "longitude": -42.1328, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3164472, - "municipio": "São Sebastião do Anta", - "latitude": -19.5064, - "longitude": -41.985, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4319505, - "municipio": "São Sebastião do Caí", - "latitude": -29.5885, - "longitude": -51.3749, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3164506, - "municipio": "São Sebastião do Maranhão", - "latitude": -18.0873, - "longitude": -42.5659, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3164605, - "municipio": "São Sebastião do Oeste", - "latitude": -20.2758, - "longitude": -45.0063, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3164704, - "municipio": "São Sebastião do Paraíso", - "latitude": -20.9167, - "longitude": -46.9837, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2929503, - "municipio": "São Sebastião do Passé", - "latitude": -12.5123, - "longitude": -38.4905, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3164803, - "municipio": "São Sebastião do Rio Preto", - "latitude": -19.2959, - "longitude": -43.1757, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3164902, - "municipio": "São Sebastião do Rio Verde", - "latitude": -22.2183, - "longitude": -44.9761, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1720309, - "municipio": "São Sebastião do Tocantins", - "latitude": -5.26131, - "longitude": -48.2021, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1303957, - "municipio": "São Sebastião do Uatumã", - "latitude": -2.55915, - "longitude": -57.8731, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2515203, - "municipio": "São Sebastião do Umbuzeiro", - "latitude": -8.15289, - "longitude": -37.0138, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4319604, - "municipio": "São Sepé", - "latitude": -30.1643, - "longitude": -53.5603, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3550902, - "municipio": "São Simão", - "latitude": -21.4732, - "longitude": -47.5518, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5220405, - "municipio": "São Simão", - "latitude": -18.996, - "longitude": -50.547, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3165206, - "municipio": "São Thomé das Letras", - "latitude": -21.7218, - "longitude": -44.9849, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3165008, - "municipio": "São Tiago", - "latitude": -20.9075, - "longitude": -44.5098, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3165107, - "municipio": "São Tomás de Aquino", - "latitude": -20.7791, - "longitude": -47.0962, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4126108, - "municipio": "São Tomé", - "latitude": -23.5349, - "longitude": -52.5901, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2412906, - "municipio": "São Tomé", - "latitude": -5.96404, - "longitude": -36.0798, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4319703, - "municipio": "São Valentim", - "latitude": -27.5583, - "longitude": -52.5237, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4319711, - "municipio": "São Valentim do Sul", - "latitude": -29.0451, - "longitude": -51.7684, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1720499, - "municipio": "São Valério", - "latitude": -11.9743, - "longitude": -48.2353, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4319737, - "municipio": "São Valério do Sul", - "latitude": -27.7906, - "longitude": -53.9368, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4319752, - "municipio": "São Vendelino", - "latitude": -29.3729, - "longitude": -51.3675, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3551009, - "municipio": "São Vicente", - "latitude": -23.9574, - "longitude": -46.3883, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2413003, - "municipio": "São Vicente", - "latitude": -6.21893, - "longitude": -36.6827, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3165305, - "municipio": "São Vicente de Minas", - "latitude": -21.7042, - "longitude": -44.4431, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2515401, - "municipio": "São Vicente do Seridó", - "latitude": -6.85426, - "longitude": -36.4122, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4319802, - "municipio": "São Vicente do Sul", - "latitude": -29.6882, - "longitude": -54.6826, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2613800, - "municipio": "São Vicente Ferrer", - "latitude": -7.58969, - "longitude": -35.4808, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2111706, - "municipio": "São Vicente Ferrer", - "latitude": -2.89487, - "longitude": -44.8681, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2515302, - "municipio": "Sapé", - "latitude": -7.09359, - "longitude": -35.228, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2929602, - "municipio": "Sapeaçu", - "latitude": -12.7208, - "longitude": -39.1824, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107875, - "municipio": "Sapezal", - "latitude": -12.9892, - "longitude": -58.7645, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4319901, - "municipio": "Sapiranga", - "latitude": -29.6349, - "longitude": -51.0064, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4126207, - "municipio": "Sapopema", - "latitude": -23.9078, - "longitude": -50.5801, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3165404, - "municipio": "Sapucaí-Mirim", - "latitude": -22.7409, - "longitude": -45.738, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1507755, - "municipio": "Sapucaia", - "latitude": -6.94018, - "longitude": -49.6834, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3305406, - "municipio": "Sapucaia", - "latitude": -21.9949, - "longitude": -42.9142, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4320008, - "municipio": "Sapucaia do Sul", - "latitude": -29.8276, - "longitude": -51.145, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3305505, - "municipio": "Saquarema", - "latitude": -22.9292, - "longitude": -42.5099, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4126256, - "municipio": "Sarandi", - "latitude": -23.4441, - "longitude": -51.876, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4320107, - "municipio": "Sarandi", - "latitude": -27.942, - "longitude": -52.9231, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3551108, - "municipio": "Sarapuí", - "latitude": -23.6397, - "longitude": -47.8249, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3165503, - "municipio": "Sardoá", - "latitude": -18.7828, - "longitude": -42.3629, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3551207, - "municipio": "Sarutaiá", - "latitude": -23.2721, - "longitude": -49.4763, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3165537, - "municipio": "Sarzedo", - "latitude": -20.0367, - "longitude": -44.1446, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2929701, - "municipio": "Sátiro Dias", - "latitude": -11.5929, - "longitude": -38.5938, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2708907, - "municipio": "Satuba", - "latitude": -9.56911, - "longitude": -35.8227, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2111722, - "municipio": "Satubinha", - "latitude": -4.04913, - "longitude": -45.2457, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2929750, - "municipio": "Saubara", - "latitude": -12.7387, - "longitude": -38.7625, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4126272, - "municipio": "Saudade do Iguaçu", - "latitude": -25.6917, - "longitude": -52.6184, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4217303, - "municipio": "Saudades", - "latitude": -26.9317, - "longitude": -53.0021, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2929800, - "municipio": "Saúde", - "latitude": -10.9428, - "longitude": -40.4155, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4217402, - "municipio": "Schroeder", - "latitude": -26.4116, - "longitude": -49.074, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2929909, - "municipio": "Seabra", - "latitude": -12.4169, - "longitude": -41.7722, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4217501, - "municipio": "Seara", - "latitude": -27.1564, - "longitude": -52.299, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3551306, - "municipio": "Sebastianópolis do Sul", - "latitude": -20.6523, - "longitude": -49.925, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2210623, - "municipio": "Sebastião Barros", - "latitude": -10.817, - "longitude": -44.8337, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2930006, - "municipio": "Sebastião Laranjeiras", - "latitude": -14.571, - "longitude": -42.9434, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2210631, - "municipio": "Sebastião Leal", - "latitude": -7.56803, - "longitude": -44.06, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4320206, - "municipio": "Seberi", - "latitude": -27.4829, - "longitude": -53.4026, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4320230, - "municipio": "Sede Nova", - "latitude": -27.6367, - "longitude": -53.9493, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4320263, - "municipio": "Segredo", - "latitude": -29.3523, - "longitude": -52.9767, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4320305, - "municipio": "Selbach", - "latitude": -28.6294, - "longitude": -52.9498, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5007802, - "municipio": "Selvíria", - "latitude": -20.3637, - "longitude": -51.4192, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3165560, - "municipio": "Sem-Peixe", - "latitude": -20.1008, - "longitude": -42.8483, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1200500, - "municipio": "Sena Madureira", - "latitude": -9.06596, - "longitude": -68.6571, - "codigo_uf": 12, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 2111748, - "municipio": "Senador Alexandre Costa", - "latitude": -5.25096, - "longitude": -44.0533, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3165578, - "municipio": "Senador Amaral", - "latitude": -22.5869, - "longitude": -46.1763, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5220454, - "municipio": "Senador Canedo", - "latitude": -16.7084, - "longitude": -49.0914, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3165602, - "municipio": "Senador Cortes", - "latitude": -21.7986, - "longitude": -42.9424, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2413102, - "municipio": "Senador Elói de Souza", - "latitude": -6.03334, - "longitude": -35.6978, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3165701, - "municipio": "Senador Firmino", - "latitude": -20.9158, - "longitude": -43.0904, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2413201, - "municipio": "Senador Georgino Avelino", - "latitude": -6.1576, - "longitude": -35.1299, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1200450, - "municipio": "Senador Guiomard", - "latitude": -10.1497, - "longitude": -67.7362, - "codigo_uf": 12, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 3165800, - "municipio": "Senador José Bento", - "latitude": -22.1633, - "longitude": -46.1792, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1507805, - "municipio": "Senador José Porfírio", - "latitude": -4.31242, - "longitude": -51.5764, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2111763, - "municipio": "Senador La Rocque", - "latitude": -5.4461, - "longitude": -47.2959, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3165909, - "municipio": "Senador Modestino Gonçalves", - "latitude": -17.9465, - "longitude": -43.2172, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2312700, - "municipio": "Senador Pompeu", - "latitude": -5.58244, - "longitude": -39.3704, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2708956, - "municipio": "Senador Rui Palmeira", - "latitude": -9.46986, - "longitude": -37.4576, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2312809, - "municipio": "Senador Sá", - "latitude": -3.35305, - "longitude": -40.4662, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4320321, - "municipio": "Senador Salgado Filho", - "latitude": -28.025, - "longitude": -54.5507, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4126306, - "municipio": "Sengés", - "latitude": -24.1129, - "longitude": -49.4616, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2930105, - "municipio": "Senhor do Bonfim", - "latitude": -10.4594, - "longitude": -40.1865, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3166006, - "municipio": "Senhora de Oliveira", - "latitude": -20.7972, - "longitude": -43.3394, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3166105, - "municipio": "Senhora do Porto", - "latitude": -18.8909, - "longitude": -43.0799, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3166204, - "municipio": "Senhora dos Remédios", - "latitude": -21.0351, - "longitude": -43.5812, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4320354, - "municipio": "Sentinela do Sul", - "latitude": -30.6107, - "longitude": -51.5862, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2930204, - "municipio": "Sento Sé", - "latitude": -9.74138, - "longitude": -41.8786, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4320404, - "municipio": "Serafina Corrêa", - "latitude": -28.7126, - "longitude": -51.9352, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3166303, - "municipio": "Sericita", - "latitude": -20.4748, - "longitude": -42.4828, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1101500, - "municipio": "Seringueiras", - "latitude": -11.8055, - "longitude": -63.0182, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4320453, - "municipio": "Sério", - "latitude": -29.3904, - "longitude": -52.2685, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3166402, - "municipio": "Seritinga", - "latitude": -21.9134, - "longitude": -44.518, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3305554, - "municipio": "Seropédica", - "latitude": -22.7526, - "longitude": -43.7155, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3205002, - "municipio": "Serra", - "latitude": -20.121, - "longitude": -40.3074, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4217550, - "municipio": "Serra Alta", - "latitude": -26.7229, - "longitude": -53.0409, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3551405, - "municipio": "Serra Azul", - "latitude": -21.3074, - "longitude": -47.5602, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3166501, - "municipio": "Serra Azul de Minas", - "latitude": -18.3602, - "longitude": -43.1675, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2515500, - "municipio": "Serra Branca", - "latitude": -7.48034, - "longitude": -36.666, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2410306, - "municipio": "Serra Caiada", - "latitude": -6.10478, - "longitude": -35.7113, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2515609, - "municipio": "Serra da Raiz", - "latitude": -6.68527, - "longitude": -35.4379, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3166600, - "municipio": "Serra da Saudade", - "latitude": -19.4447, - "longitude": -45.795, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2413300, - "municipio": "Serra de São Bento", - "latitude": -6.41762, - "longitude": -35.7033, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2413359, - "municipio": "Serra do Mel", - "latitude": -5.17725, - "longitude": -37.0242, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1600055, - "municipio": "Serra do Navio", - "latitude": 0.901357, - "longitude": -52.0036, - "codigo_uf": 16, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2930154, - "municipio": "Serra do Ramalho", - "latitude": -13.5659, - "longitude": -43.5929, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3166808, - "municipio": "Serra do Salitre", - "latitude": -19.1083, - "longitude": -46.6961, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3166709, - "municipio": "Serra dos Aimorés", - "latitude": -17.7872, - "longitude": -40.2453, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2930303, - "municipio": "Serra Dourada", - "latitude": -12.759, - "longitude": -43.9504, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2515708, - "municipio": "Serra Grande", - "latitude": -7.20957, - "longitude": -38.3647, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3551603, - "municipio": "Serra Negra", - "latitude": -22.6139, - "longitude": -46.7033, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2413409, - "municipio": "Serra Negra do Norte", - "latitude": -6.66031, - "longitude": -37.3996, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107883, - "municipio": "Serra Nova Dourada", - "latitude": -12.0896, - "longitude": -51.4025, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2930402, - "municipio": "Serra Preta", - "latitude": -12.156, - "longitude": -39.3305, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2515807, - "municipio": "Serra Redonda", - "latitude": -7.18622, - "longitude": -35.6842, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2613909, - "municipio": "Serra Talhada", - "latitude": -7.98178, - "longitude": -38.289, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3551504, - "municipio": "Serrana", - "latitude": -21.2043, - "longitude": -47.5952, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3166907, - "municipio": "Serrania", - "latitude": -21.5441, - "longitude": -46.0417, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2111789, - "municipio": "Serrano do Maranhão", - "latitude": -1.85229, - "longitude": -45.1207, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5220504, - "municipio": "Serranópolis", - "latitude": -18.3067, - "longitude": -51.9586, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3166956, - "municipio": "Serranópolis de Minas", - "latitude": -15.8176, - "longitude": -42.8732, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4126355, - "municipio": "Serranópolis do Iguaçu", - "latitude": -25.3799, - "longitude": -54.0518, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3167004, - "municipio": "Serranos", - "latitude": -21.8857, - "longitude": -44.5125, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2515906, - "municipio": "Serraria", - "latitude": -6.81569, - "longitude": -35.6282, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2413508, - "municipio": "Serrinha", - "latitude": -6.28181, - "longitude": -35.50119, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2930501, - "municipio": "Serrinha", - "latitude": -11.6584, - "longitude": -39.0143, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2413557, - "municipio": "Serrinha dos Pintos", - "latitude": -6.11087, - "longitude": -37.9548, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2614006, - "municipio": "Serrita", - "latitude": -7.94041, - "longitude": -39.2951, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3167103, - "municipio": "Serro", - "latitude": -18.5991, - "longitude": -43.3744, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2930600, - "municipio": "Serrolândia", - "latitude": -11.4085, - "longitude": -40.2983, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4126405, - "municipio": "Sertaneja", - "latitude": -23.0361, - "longitude": -50.8317, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2614105, - "municipio": "Sertânia", - "latitude": -8.06847, - "longitude": -37.2684, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4126504, - "municipio": "Sertanópolis", - "latitude": -23.0571, - "longitude": -51.0399, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4320503, - "municipio": "Sertão", - "latitude": -27.9798, - "longitude": -52.2588, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4320552, - "municipio": "Sertão Santana", - "latitude": -30.4562, - "longitude": -51.6017, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3551702, - "municipio": "Sertãozinho", - "latitude": -21.1316, - "longitude": -47.9875, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2515930, - "municipio": "Sertãozinho", - "latitude": -6.75127, - "longitude": -35.4372, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3551801, - "municipio": "Sete Barras", - "latitude": -24.382, - "longitude": -47.9279, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4320578, - "municipio": "Sete de Setembro", - "latitude": -28.1362, - "longitude": -54.4637, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3167202, - "municipio": "Sete Lagoas", - "latitude": -19.4569, - "longitude": -44.2413, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5007703, - "municipio": "Sete Quedas", - "latitude": -23.9705, - "longitude": -55.0398, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3165552, - "municipio": "Setubinha", - "latitude": -17.6002, - "longitude": -42.1587, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4320602, - "municipio": "Severiano de Almeida", - "latitude": -27.4362, - "longitude": -52.1217, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2413607, - "municipio": "Severiano Melo", - "latitude": -5.77666, - "longitude": -37.957, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3551900, - "municipio": "Severínia", - "latitude": -20.8108, - "longitude": -48.8054, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4217600, - "municipio": "Siderópolis", - "latitude": -28.5955, - "longitude": -49.4314, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5007901, - "municipio": "Sidrolândia", - "latitude": -20.9302, - "longitude": -54.9692, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2210656, - "municipio": "Sigefredo Pacheco", - "latitude": -4.91665, - "longitude": -41.7311, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3305604, - "municipio": "Silva Jardim", - "latitude": -22.6574, - "longitude": -42.3961, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5220603, - "municipio": "Silvânia", - "latitude": -16.66, - "longitude": -48.6083, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1720655, - "municipio": "Silvanópolis", - "latitude": -11.1471, - "longitude": -48.1694, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4320651, - "municipio": "Silveira Martins", - "latitude": -29.6467, - "longitude": -53.591, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3167301, - "municipio": "Silveirânia", - "latitude": -21.1615, - "longitude": -43.2128, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3552007, - "municipio": "Silveiras", - "latitude": -22.6638, - "longitude": -44.8522, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1304005, - "municipio": "Silves", - "latitude": -2.81748, - "longitude": -58.248, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3167400, - "municipio": "Silvianópolis", - "latitude": -22.0274, - "longitude": -45.8385, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2807105, - "municipio": "Simão Dias", - "latitude": -10.7387, - "longitude": -37.8097, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3167509, - "municipio": "Simão Pereira", - "latitude": -21.964, - "longitude": -43.3088, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2210706, - "municipio": "Simões", - "latitude": -7.59109, - "longitude": -40.8137, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2930709, - "municipio": "Simões Filho", - "latitude": -12.7866, - "longitude": -38.4029, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5220686, - "municipio": "Simolândia", - "latitude": -14.4644, - "longitude": -46.4847, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3167608, - "municipio": "Simonésia", - "latitude": -20.1341, - "longitude": -42.0091, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2210805, - "municipio": "Simplício Mendes", - "latitude": -7.85294, - "longitude": -41.9075, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4320677, - "municipio": "Sinimbu", - "latitude": -29.5357, - "longitude": -52.5304, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107909, - "municipio": "Sinop", - "latitude": -11.8604, - "longitude": -55.5091, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4126603, - "municipio": "Siqueira Campos", - "latitude": -23.6875, - "longitude": -49.8304, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2614204, - "municipio": "Sirinhaém", - "latitude": -8.58778, - "longitude": -35.1126, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2807204, - "municipio": "Siriri", - "latitude": -10.5965, - "longitude": -37.1131, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5220702, - "municipio": "Sítio d'Abadia", - "latitude": -14.7992, - "longitude": -46.2506, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2930758, - "municipio": "Sítio do Mato", - "latitude": -13.0801, - "longitude": -43.4689, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2930766, - "municipio": "Sítio do Quinto", - "latitude": -10.3545, - "longitude": -38.2213, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2111805, - "municipio": "Sítio Novo", - "latitude": -5.87601, - "longitude": -46.7033, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2413706, - "municipio": "Sítio Novo", - "latitude": -6.11132, - "longitude": -35.909, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1720804, - "municipio": "Sítio Novo do Tocantins", - "latitude": -5.6012, - "longitude": -47.6381, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2930774, - "municipio": "Sobradinho", - "latitude": -9.45024, - "longitude": -40.8145, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4320701, - "municipio": "Sobradinho", - "latitude": -29.4194, - "longitude": -53.0326, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2515971, - "municipio": "Sobrado", - "latitude": -7.14429, - "longitude": -35.2357, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2312908, - "municipio": "Sobral", - "latitude": -3.68913, - "longitude": -40.3482, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3167707, - "municipio": "Sobrália", - "latitude": -19.2345, - "longitude": -42.0998, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3552106, - "municipio": "Socorro", - "latitude": -22.5903, - "longitude": -46.5251, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2210904, - "municipio": "Socorro do Piauí", - "latitude": -7.86773, - "longitude": -42.4922, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2516003, - "municipio": "Solânea", - "latitude": -6.75161, - "longitude": -35.6636, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2516102, - "municipio": "Soledade", - "latitude": -7.05829, - "longitude": -36.3668, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4320800, - "municipio": "Soledade", - "latitude": -28.8306, - "longitude": -52.5131, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3167806, - "municipio": "Soledade de Minas", - "latitude": -22.0554, - "longitude": -45.0464, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2614402, - "municipio": "Solidão", - "latitude": -7.59472, - "longitude": -37.6445, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2313005, - "municipio": "Solonópole", - "latitude": -5.71894, - "longitude": -39.0107, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4217709, - "municipio": "Sombrio", - "latitude": -29.108, - "longitude": -49.6328, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5007935, - "municipio": "Sonora", - "latitude": -17.5698, - "longitude": -54.7551, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3205010, - "municipio": "Sooretama", - "latitude": -19.1897, - "longitude": -40.0974, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3552205, - "municipio": "Sorocaba", - "latitude": -23.4969, - "longitude": -47.4451, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107925, - "municipio": "Sorriso", - "latitude": -12.5425, - "longitude": -55.7211, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2516151, - "municipio": "Sossêgo", - "latitude": -6.77067, - "longitude": -36.2538, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1507904, - "municipio": "Soure", - "latitude": -0.73032, - "longitude": -48.5015, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2516201, - "municipio": "Sousa", - "latitude": -6.75148, - "longitude": -38.2311, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2930808, - "municipio": "Souto Soares", - "latitude": -12.088, - "longitude": -41.6427, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1720853, - "municipio": "Sucupira", - "latitude": -11.993, - "longitude": -48.9685, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2111904, - "municipio": "Sucupira do Norte", - "latitude": -6.47839, - "longitude": -44.1919, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2111953, - "municipio": "Sucupira do Riachão", - "latitude": -6.40858, - "longitude": -43.5455, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3552304, - "municipio": "Sud Mennucci", - "latitude": -20.6872, - "longitude": -50.9238, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4217758, - "municipio": "Sul Brasil", - "latitude": -26.7351, - "longitude": -52.964, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4126652, - "municipio": "Sulina", - "latitude": -25.7066, - "longitude": -52.7299, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3552403, - "municipio": "Sumaré", - "latitude": -22.8204, - "longitude": -47.2728, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2516300, - "municipio": "Sumé", - "latitude": -7.66206, - "longitude": -36.884, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3305703, - "municipio": "Sumidouro", - "latitude": -22.0485, - "longitude": -42.6761, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2614501, - "municipio": "Surubim", - "latitude": -7.84746, - "longitude": -35.7481, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2210938, - "municipio": "Sussuapara", - "latitude": -7.03687, - "longitude": -41.3767, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3552551, - "municipio": "Suzanápolis", - "latitude": -20.4981, - "longitude": -51.0268, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3552502, - "municipio": "Suzano", - "latitude": -23.5448, - "longitude": -46.3112, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4320859, - "municipio": "Tabaí", - "latitude": -29.643, - "longitude": -51.6823, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107941, - "municipio": "Tabaporã", - "latitude": -11.3007, - "longitude": -56.8312, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3552601, - "municipio": "Tabapuã", - "latitude": -20.9602, - "longitude": -49.0307, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3552700, - "municipio": "Tabatinga", - "latitude": -21.7239, - "longitude": -48.6896, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1304062, - "municipio": "Tabatinga", - "latitude": -4.2416, - "longitude": -69.9383, - "codigo_uf": 13, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 2614600, - "municipio": "Tabira", - "latitude": -7.58366, - "longitude": -37.5377, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3552809, - "municipio": "Taboão da Serra", - "latitude": -23.6019, - "longitude": -46.7526, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2930907, - "municipio": "Tabocas do Brejo Velho", - "latitude": -12.7026, - "longitude": -44.0075, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2413805, - "municipio": "Taboleiro Grande", - "latitude": -5.91948, - "longitude": -38.0367, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3167905, - "municipio": "Tabuleiro", - "latitude": -21.3632, - "longitude": -43.2381, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2313104, - "municipio": "Tabuleiro do Norte", - "latitude": -5.24353, - "longitude": -38.1282, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2614709, - "municipio": "Tacaimbó", - "latitude": -8.30867, - "longitude": -36.3, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2614808, - "municipio": "Tacaratu", - "latitude": -9.09798, - "longitude": -38.1504, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3552908, - "municipio": "Taciba", - "latitude": -22.3866, - "longitude": -51.2882, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2516409, - "municipio": "Tacima", - "latitude": -6.48759, - "longitude": -35.6367, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5007950, - "municipio": "Tacuru", - "latitude": -23.636, - "longitude": -55.0141, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3553005, - "municipio": "Taguaí", - "latitude": -23.4452, - "longitude": -49.4024, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1720903, - "municipio": "Taguatinga", - "latitude": -12.4026, - "longitude": -46.437, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3553104, - "municipio": "Taiaçu", - "latitude": -21.1431, - "longitude": -48.5112, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1507953, - "municipio": "Tailândia", - "latitude": -2.94584, - "longitude": -48.9489, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4217808, - "municipio": "Taió", - "latitude": -27.121, - "longitude": -49.9942, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3168002, - "municipio": "Taiobeiras", - "latitude": -15.8106, - "longitude": -42.2259, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1720937, - "municipio": "Taipas do Tocantins", - "latitude": -12.1873, - "longitude": -46.9797, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2413904, - "municipio": "Taipu", - "latitude": -5.63058, - "longitude": -35.5918, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3553203, - "municipio": "Taiúva", - "latitude": -21.1223, - "longitude": -48.4528, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1720978, - "municipio": "Talismã", - "latitude": -12.7949, - "longitude": -49.0896, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2614857, - "municipio": "Tamandaré", - "latitude": -8.75665, - "longitude": -35.1033, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4126678, - "municipio": "Tamarana", - "latitude": -23.7204, - "longitude": -51.0991, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3553302, - "municipio": "Tambaú", - "latitude": -21.7029, - "longitude": -47.2703, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4126702, - "municipio": "Tamboara", - "latitude": -23.2036, - "longitude": -52.4743, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2313203, - "municipio": "Tamboril", - "latitude": -4.83136, - "longitude": -40.3196, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2210953, - "municipio": "Tamboril do Piauí", - "latitude": -8.40937, - "longitude": -42.9211, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3553401, - "municipio": "Tanabi", - "latitude": -20.6228, - "longitude": -49.6563, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2414001, - "municipio": "Tangará", - "latitude": -6.19649, - "longitude": -35.7989, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4217907, - "municipio": "Tangará", - "latitude": -27.0996, - "longitude": -51.2473, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5107958, - "municipio": "Tangará da Serra", - "latitude": -14.6229, - "longitude": -57.4933, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3305752, - "municipio": "Tanguá", - "latitude": -22.7423, - "longitude": -42.7202, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2931004, - "municipio": "Tanhaçu", - "latitude": -14.0197, - "longitude": -41.2473, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2709004, - "municipio": "Tanque d'Arca", - "latitude": -9.53379, - "longitude": -36.4366, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2210979, - "municipio": "Tanque do Piauí", - "latitude": -6.59787, - "longitude": -42.2795, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2931053, - "municipio": "Tanque Novo", - "latitude": -13.5485, - "longitude": -42.4934, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2931103, - "municipio": "Tanquinho", - "latitude": -11.968, - "longitude": -39.1033, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3168051, - "municipio": "Taparuba", - "latitude": -19.7621, - "longitude": -41.608, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1304104, - "municipio": "Tapauá", - "latitude": -5.62085, - "longitude": -63.1808, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4126801, - "municipio": "Tapejara", - "latitude": -23.7315, - "longitude": -52.8735, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4320909, - "municipio": "Tapejara", - "latitude": -28.0652, - "longitude": -52.0097, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4321006, - "municipio": "Tapera", - "latitude": -28.6277, - "longitude": -52.8613, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2931202, - "municipio": "Taperoá", - "latitude": -13.5321, - "longitude": -39.1009, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2516508, - "municipio": "Taperoá", - "latitude": -7.20629, - "longitude": -36.8245, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4321105, - "municipio": "Tapes", - "latitude": -30.6683, - "longitude": -51.3991, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4126900, - "municipio": "Tapira", - "latitude": -23.3193, - "longitude": -53.0684, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3168101, - "municipio": "Tapira", - "latitude": -19.9166, - "longitude": -46.8264, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3168200, - "municipio": "Tapiraí", - "latitude": -19.8936, - "longitude": -46.0221, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3553500, - "municipio": "Tapiraí", - "latitude": -23.9612, - "longitude": -47.5062, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2931301, - "municipio": "Tapiramutá", - "latitude": -11.8475, - "longitude": -40.7927, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3553609, - "municipio": "Tapiratiba", - "latitude": -21.4713, - "longitude": -46.7448, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5108006, - "municipio": "Tapurah", - "latitude": -12.695, - "longitude": -56.5178, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4321204, - "municipio": "Taquara", - "latitude": -29.6505, - "longitude": -50.7753, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3168309, - "municipio": "Taquaraçu de Minas", - "latitude": -19.6652, - "longitude": -43.6922, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3553658, - "municipio": "Taquaral", - "latitude": -21.0737, - "longitude": -48.4126, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5221007, - "municipio": "Taquaral de Goiás", - "latitude": -16.0521, - "longitude": -49.6039, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2709103, - "municipio": "Taquarana", - "latitude": -9.64529, - "longitude": -36.4928, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4321303, - "municipio": "Taquari", - "latitude": -29.7943, - "longitude": -51.8653, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3553708, - "municipio": "Taquaritinga", - "latitude": -21.4049, - "longitude": -48.5103, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2615003, - "municipio": "Taquaritinga do Norte", - "latitude": -7.89446, - "longitude": -36.0423, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3553807, - "municipio": "Taquarituba", - "latitude": -23.5307, - "longitude": -49.241, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3553856, - "municipio": "Taquarivaí", - "latitude": -23.9211, - "longitude": -48.6948, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4321329, - "municipio": "Taquaruçu do Sul", - "latitude": -27.4005, - "longitude": -53.4702, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5007976, - "municipio": "Taquarussu", - "latitude": -22.4898, - "longitude": -53.3519, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3553906, - "municipio": "Tarabai", - "latitude": -22.3016, - "longitude": -51.5621, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1200609, - "municipio": "Tarauacá", - "latitude": -8.15697, - "longitude": -70.7722, - "codigo_uf": 12, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 2313252, - "municipio": "Tarrafas", - "latitude": -6.67838, - "longitude": -39.753, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1600709, - "municipio": "Tartarugalzinho", - "latitude": 1.50652, - "longitude": -50.9087, - "codigo_uf": 16, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3553955, - "municipio": "Tarumã", - "latitude": -22.7429, - "longitude": -50.5786, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3168408, - "municipio": "Tarumirim", - "latitude": -19.2835, - "longitude": -42.0097, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2112001, - "municipio": "Tasso Fragoso", - "latitude": -8.4662, - "longitude": -45.7536, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3554003, - "municipio": "Tatuí", - "latitude": -23.3487, - "longitude": -47.8461, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2313302, - "municipio": "Tauá", - "latitude": -5.98585, - "longitude": -40.2968, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3554102, - "municipio": "Taubaté", - "latitude": -23.0104, - "longitude": -45.5593, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4321352, - "municipio": "Tavares", - "latitude": -31.2843, - "longitude": -51.088, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2516607, - "municipio": "Tavares", - "latitude": -7.62697, - "longitude": -37.8712, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1304203, - "municipio": "Tefé", - "latitude": -3.36822, - "longitude": -64.7193, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2516706, - "municipio": "Teixeira", - "latitude": -7.22104, - "longitude": -37.2525, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2931350, - "municipio": "Teixeira de Freitas", - "latitude": -17.5399, - "longitude": -39.74, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4127007, - "municipio": "Teixeira Soares", - "latitude": -25.3701, - "longitude": -50.4571, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3168507, - "municipio": "Teixeiras", - "latitude": -20.6561, - "longitude": -42.8564, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1101559, - "municipio": "Teixeirópolis", - "latitude": -10.9056, - "longitude": -62.242, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2313351, - "municipio": "Tejuçuoca", - "latitude": -3.98831, - "longitude": -39.5799, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3554201, - "municipio": "Tejupá", - "latitude": -23.3425, - "longitude": -49.3722, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4127106, - "municipio": "Telêmaco Borba", - "latitude": -24.3245, - "longitude": -50.6176, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2807303, - "municipio": "Telha", - "latitude": -10.2064, - "longitude": -36.8818, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2414100, - "municipio": "Tenente Ananias", - "latitude": -6.45823, - "longitude": -38.182, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2414159, - "municipio": "Tenente Laurentino Cruz", - "latitude": -6.1378, - "longitude": -36.7135, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4321402, - "municipio": "Tenente Portela", - "latitude": -27.3711, - "longitude": -53.7585, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2516755, - "municipio": "Tenório", - "latitude": -6.93855, - "longitude": -36.6273, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2931400, - "municipio": "Teodoro Sampaio", - "latitude": -12.295, - "longitude": -38.6347, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3554300, - "municipio": "Teodoro Sampaio", - "latitude": -22.5299, - "longitude": -52.1682, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2931509, - "municipio": "Teofilândia", - "latitude": -11.4827, - "longitude": -38.9913, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3168606, - "municipio": "Teófilo Otoni", - "latitude": -17.8595, - "longitude": -41.5087, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2931608, - "municipio": "Teolândia", - "latitude": -13.5896, - "longitude": -39.484, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2709152, - "municipio": "Teotônio Vilela", - "latitude": -9.91656, - "longitude": -36.3492, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5008008, - "municipio": "Terenos", - "latitude": -20.4378, - "longitude": -54.8647, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2211001, - "municipio": "Teresina", - "latitude": -5.09194, - "longitude": -42.8034, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5221080, - "municipio": "Teresina de Goiás", - "latitude": -13.7801, - "longitude": -47.2659, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3305802, - "municipio": "Teresópolis", - "latitude": -22.4165, - "longitude": -42.9752, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2615102, - "municipio": "Terezinha", - "latitude": -9.05621, - "longitude": -36.6272, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5221197, - "municipio": "Terezópolis de Goiás", - "latitude": -16.3945, - "longitude": -49.0797, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1507961, - "municipio": "Terra Alta", - "latitude": -1.02963, - "longitude": -47.9004, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4127205, - "municipio": "Terra Boa", - "latitude": -23.7683, - "longitude": -52.447, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4321436, - "municipio": "Terra de Areia", - "latitude": -29.5782, - "longitude": -50.0644, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2931707, - "municipio": "Terra Nova", - "latitude": -12.3888, - "longitude": -38.6238, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2615201, - "municipio": "Terra Nova", - "latitude": -8.22244, - "longitude": -39.3825, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5108055, - "municipio": "Terra Nova do Norte", - "latitude": -10.517, - "longitude": -55.231, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4127304, - "municipio": "Terra Rica", - "latitude": -22.7111, - "longitude": -52.6188, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4127403, - "municipio": "Terra Roxa", - "latitude": -24.1575, - "longitude": -54.0988, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3554409, - "municipio": "Terra Roxa", - "latitude": -20.787, - "longitude": -48.3314, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1507979, - "municipio": "Terra Santa", - "latitude": -2.10443, - "longitude": -56.4877, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5108105, - "municipio": "Tesouro", - "latitude": -16.0809, - "longitude": -53.559, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4321451, - "municipio": "Teutônia", - "latitude": -29.4482, - "longitude": -51.8044, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1101609, - "municipio": "Theobroma", - "latitude": -10.2483, - "longitude": -62.3538, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2313401, - "municipio": "Tianguá", - "latitude": -3.72965, - "longitude": -40.9923, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4127502, - "municipio": "Tibagi", - "latitude": -24.5153, - "longitude": -50.4176, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2411056, - "municipio": "Tibau", - "latitude": -4.83729, - "longitude": -37.2554, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2414209, - "municipio": "Tibau do Sul", - "latitude": -6.19176, - "longitude": -35.0866, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3554508, - "municipio": "Tietê", - "latitude": -23.1101, - "longitude": -47.7164, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4217956, - "municipio": "Tigrinhos", - "latitude": -26.6876, - "longitude": -53.1545, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4218004, - "municipio": "Tijucas", - "latitude": -27.2354, - "longitude": -48.6322, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4127601, - "municipio": "Tijucas do Sul", - "latitude": -25.9311, - "longitude": -49.195, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2615300, - "municipio": "Timbaúba", - "latitude": -7.50484, - "longitude": -35.3119, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2414308, - "municipio": "Timbaúba dos Batistas", - "latitude": -6.45768, - "longitude": -37.2745, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4218103, - "municipio": "Timbé do Sul", - "latitude": -28.8287, - "longitude": -49.842, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2112100, - "municipio": "Timbiras", - "latitude": -4.25597, - "longitude": -43.932, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4218202, - "municipio": "Timbó", - "latitude": -26.8246, - "longitude": -49.269, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4218251, - "municipio": "Timbó Grande", - "latitude": -26.6127, - "longitude": -50.6607, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3554607, - "municipio": "Timburi", - "latitude": -23.2057, - "longitude": -49.6096, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2112209, - "municipio": "Timon", - "latitude": -5.09769, - "longitude": -42.8329, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3168705, - "municipio": "Timóteo", - "latitude": -19.5811, - "longitude": -42.6471, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4321469, - "municipio": "Tio Hugo", - "latitude": -28.5712, - "longitude": -52.5955, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3168804, - "municipio": "Tiradentes", - "latitude": -21.1102, - "longitude": -44.1744, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4321477, - "municipio": "Tiradentes do Sul", - "latitude": -27.4022, - "longitude": -54.0814, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3168903, - "municipio": "Tiros", - "latitude": -19.0037, - "longitude": -45.9626, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2807402, - "municipio": "Tobias Barreto", - "latitude": -11.1798, - "longitude": -37.9995, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1721109, - "municipio": "Tocantínia", - "latitude": -9.5632, - "longitude": -48.3741, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1721208, - "municipio": "Tocantinópolis", - "latitude": -6.32447, - "longitude": -47.4224, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3169000, - "municipio": "Tocantins", - "latitude": -21.1774, - "longitude": -43.0127, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3169059, - "municipio": "Tocos do Moji", - "latitude": -22.3698, - "longitude": -46.0971, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3169109, - "municipio": "Toledo", - "latitude": -22.7421, - "longitude": -46.3728, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4127700, - "municipio": "Toledo", - "latitude": -24.7246, - "longitude": -53.7412, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2807501, - "municipio": "Tomar do Geru", - "latitude": -11.3694, - "longitude": -37.8433, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4127809, - "municipio": "Tomazina", - "latitude": -23.7796, - "longitude": -49.9499, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3169208, - "municipio": "Tombos", - "latitude": -20.9086, - "longitude": -42.0228, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1508001, - "municipio": "Tomé-Açu", - "latitude": -2.41302, - "longitude": -48.1415, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1304237, - "municipio": "Tonantins", - "latitude": -2.86582, - "longitude": -67.7919, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2615409, - "municipio": "Toritama", - "latitude": -8.00955, - "longitude": -36.0637, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5108204, - "municipio": "Torixoréu", - "latitude": -16.2006, - "longitude": -52.5571, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4321493, - "municipio": "Toropi", - "latitude": -29.4782, - "longitude": -54.2244, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3554656, - "municipio": "Torre de Pedra", - "latitude": -23.2462, - "longitude": -48.1955, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4321501, - "municipio": "Torres", - "latitude": -29.3334, - "longitude": -49.7333, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3554706, - "municipio": "Torrinha", - "latitude": -22.4237, - "longitude": -48.1731, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2414407, - "municipio": "Touros", - "latitude": -5.20182, - "longitude": -35.4621, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3554755, - "municipio": "Trabiju", - "latitude": -22.0388, - "longitude": -48.3342, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1508035, - "municipio": "Tracuateua", - "latitude": -1.07653, - "longitude": -46.9031, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2615508, - "municipio": "Tracunhaém", - "latitude": -7.80228, - "longitude": -35.2314, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2709202, - "municipio": "Traipu", - "latitude": -9.96262, - "longitude": -37.0071, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1508050, - "municipio": "Trairão", - "latitude": -4.57347, - "longitude": -55.9429, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2313500, - "municipio": "Trairi", - "latitude": -3.26932, - "longitude": -39.2681, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3305901, - "municipio": "Trajano de Moraes", - "latitude": -22.0638, - "longitude": -42.0643, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4321600, - "municipio": "Tramandaí", - "latitude": -29.9841, - "longitude": -50.1322, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4321626, - "municipio": "Travesseiro", - "latitude": -29.2977, - "longitude": -52.0532, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2931806, - "municipio": "Tremedal", - "latitude": -14.9736, - "longitude": -41.4142, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3554805, - "municipio": "Tremembé", - "latitude": -22.9571, - "longitude": -45.5475, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4321634, - "municipio": "Três Arroios", - "latitude": -27.5003, - "longitude": -52.1448, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4218301, - "municipio": "Três Barras", - "latitude": -26.1056, - "longitude": -50.3197, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4127858, - "municipio": "Três Barras do Paraná", - "latitude": -25.4185, - "longitude": -53.1833, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4321667, - "municipio": "Três Cachoeiras", - "latitude": -29.4487, - "longitude": -49.9275, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3169307, - "municipio": "Três Corações", - "latitude": -21.6921, - "longitude": -45.2511, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4321709, - "municipio": "Três Coroas", - "latitude": -29.5137, - "longitude": -50.7739, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4321808, - "municipio": "Três de Maio", - "latitude": -27.78, - "longitude": -54.2357, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4321832, - "municipio": "Três Forquilhas", - "latitude": -29.5384, - "longitude": -50.0708, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3554904, - "municipio": "Três Fronteiras", - "latitude": -20.2344, - "longitude": -50.8905, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5008305, - "municipio": "Três Lagoas", - "latitude": -20.7849, - "longitude": -51.7007, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3169356, - "municipio": "Três Marias", - "latitude": -18.2048, - "longitude": -45.2473, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4321857, - "municipio": "Três Palmeiras", - "latitude": -27.6139, - "longitude": -52.8437, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4321907, - "municipio": "Três Passos", - "latitude": -27.4555, - "longitude": -53.9296, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3169406, - "municipio": "Três Pontas", - "latitude": -21.3694, - "longitude": -45.5109, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5221304, - "municipio": "Três Ranchos", - "latitude": -18.3539, - "longitude": -47.776, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3306008, - "municipio": "Três Rios", - "latitude": -22.1165, - "longitude": -43.2185, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4218350, - "municipio": "Treviso", - "latitude": -28.5097, - "longitude": -49.4634, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4218400, - "municipio": "Treze de Maio", - "latitude": -28.5537, - "longitude": -49.1565, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4218509, - "municipio": "Treze Tílias", - "latitude": -27.0026, - "longitude": -51.4084, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5221403, - "municipio": "Trindade", - "latitude": -16.6517, - "longitude": -49.4927, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2615607, - "municipio": "Trindade", - "latitude": -7.759, - "longitude": -40.2647, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4321956, - "municipio": "Trindade do Sul", - "latitude": -27.5239, - "longitude": -52.8956, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4322004, - "municipio": "Triunfo", - "latitude": -29.9291, - "longitude": -51.7075, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2516805, - "municipio": "Triunfo", - "latitude": -6.5713, - "longitude": -38.5986, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2615706, - "municipio": "Triunfo", - "latitude": -7.83272, - "longitude": -38.0978, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2414456, - "municipio": "Triunfo Potiguar", - "latitude": -5.85408, - "longitude": -37.1786, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2112233, - "municipio": "Trizidela do Vale", - "latitude": -4.538, - "longitude": -44.628, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5221452, - "municipio": "Trombas", - "latitude": -13.5079, - "longitude": -48.7417, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4218608, - "municipio": "Trombudo Central", - "latitude": -27.3033, - "longitude": -49.793, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4218707, - "municipio": "Tubarão", - "latitude": -28.4713, - "longitude": -49.0144, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2931905, - "municipio": "Tucano", - "latitude": -10.9584, - "longitude": -38.7894, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1508084, - "municipio": "Tucumã", - "latitude": -6.74687, - "longitude": -51.1626, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4322103, - "municipio": "Tucunduva", - "latitude": -27.6573, - "longitude": -54.4439, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1508100, - "municipio": "Tucuruí", - "latitude": -3.7657, - "longitude": -49.6773, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2112274, - "municipio": "Tufilândia", - "latitude": -3.67355, - "longitude": -45.6238, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3554953, - "municipio": "Tuiuti", - "latitude": -22.8193, - "longitude": -46.6937, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3169505, - "municipio": "Tumiritinga", - "latitude": -18.9844, - "longitude": -41.6527, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4218756, - "municipio": "Tunápolis", - "latitude": -26.9681, - "longitude": -53.6417, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4322152, - "municipio": "Tunas", - "latitude": -29.1039, - "longitude": -52.9538, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4127882, - "municipio": "Tunas do Paraná", - "latitude": -24.9731, - "longitude": -49.0879, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4127908, - "municipio": "Tuneiras do Oeste", - "latitude": -23.8648, - "longitude": -52.8769, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2112308, - "municipio": "Tuntum", - "latitude": -5.25476, - "longitude": -44.6444, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3555000, - "municipio": "Tupã", - "latitude": -21.9335, - "longitude": -50.5191, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3169604, - "municipio": "Tupaciguara", - "latitude": -18.5866, - "longitude": -48.6985, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2615805, - "municipio": "Tupanatinga", - "latitude": -8.74798, - "longitude": -37.3445, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4322186, - "municipio": "Tupanci do Sul", - "latitude": -27.9241, - "longitude": -51.5383, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4322202, - "municipio": "Tupanciretã", - "latitude": -29.0858, - "longitude": -53.8445, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4322251, - "municipio": "Tupandi", - "latitude": -29.4772, - "longitude": -51.4174, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4322301, - "municipio": "Tuparendi", - "latitude": -27.7598, - "longitude": -54.4814, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2615904, - "municipio": "Tuparetama", - "latitude": -7.6003, - "longitude": -37.3165, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4127957, - "municipio": "Tupãssi", - "latitude": -24.5879, - "longitude": -53.5105, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3555109, - "municipio": "Tupi Paulista", - "latitude": -21.3825, - "longitude": -51.575, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1721257, - "municipio": "Tupirama", - "latitude": -8.97168, - "longitude": -48.1883, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1721307, - "municipio": "Tupiratins", - "latitude": -8.39388, - "longitude": -48.1277, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2112407, - "municipio": "Turiaçu", - "latitude": -1.65893, - "longitude": -45.3798, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2112456, - "municipio": "Turilândia", - "latitude": -2.21638, - "longitude": -45.3044, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3555208, - "municipio": "Turiúba", - "latitude": -20.9428, - "longitude": -50.1135, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3555307, - "municipio": "Turmalina", - "latitude": -20.0486, - "longitude": -50.4792, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3169703, - "municipio": "Turmalina", - "latitude": -17.2828, - "longitude": -42.7285, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4322327, - "municipio": "Turuçu", - "latitude": -31.4173, - "longitude": -52.1706, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2313559, - "municipio": "Tururu", - "latitude": -3.58413, - "longitude": -39.4297, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5221502, - "municipio": "Turvânia", - "latitude": -16.6125, - "longitude": -50.1369, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5221551, - "municipio": "Turvelândia", - "latitude": -17.8502, - "longitude": -50.3024, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4127965, - "municipio": "Turvo", - "latitude": -25.0437, - "longitude": -51.5282, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4218806, - "municipio": "Turvo", - "latitude": -28.9272, - "longitude": -49.6831, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3169802, - "municipio": "Turvolândia", - "latitude": -21.8733, - "longitude": -45.7859, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2112506, - "municipio": "Tutóia", - "latitude": -2.76141, - "longitude": -42.2755, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1304260, - "municipio": "Uarini", - "latitude": -2.99609, - "longitude": -65.1133, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2932002, - "municipio": "Uauá", - "latitude": -9.83325, - "longitude": -39.4794, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3169901, - "municipio": "Ubá", - "latitude": -21.1204, - "longitude": -42.9359, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3170008, - "municipio": "Ubaí", - "latitude": -16.2885, - "longitude": -44.7783, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2932101, - "municipio": "Ubaíra", - "latitude": -13.2714, - "longitude": -39.666, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2932200, - "municipio": "Ubaitaba", - "latitude": -14.303, - "longitude": -39.3222, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2313609, - "municipio": "Ubajara", - "latitude": -3.85448, - "longitude": -40.9204, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3170057, - "municipio": "Ubaporanga", - "latitude": -19.6351, - "longitude": -42.1059, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3555356, - "municipio": "Ubarana", - "latitude": -21.165, - "longitude": -49.7198, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2932309, - "municipio": "Ubatã", - "latitude": -14.2063, - "longitude": -39.5207, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3555406, - "municipio": "Ubatuba", - "latitude": -23.4332, - "longitude": -45.0834, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3170107, - "municipio": "Uberaba", - "latitude": -19.7472, - "longitude": -47.9381, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3170206, - "municipio": "Uberlândia", - "latitude": -18.9141, - "longitude": -48.2749, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3555505, - "municipio": "Ubirajara", - "latitude": -22.5272, - "longitude": -49.6613, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4128005, - "municipio": "Ubiratã", - "latitude": -24.5393, - "longitude": -52.9865, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4322343, - "municipio": "Ubiretama", - "latitude": -28.0404, - "longitude": -54.686, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3555604, - "municipio": "Uchoa", - "latitude": -20.9511, - "longitude": -49.1713, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2932408, - "municipio": "Uibaí", - "latitude": -11.3394, - "longitude": -42.1354, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1400704, - "municipio": "Uiramutã", - "latitude": 4.60314, - "longitude": -60.1815, - "codigo_uf": 14, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5221577, - "municipio": "Uirapuru", - "latitude": -14.2835, - "longitude": -49.9201, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2516904, - "municipio": "Uiraúna", - "latitude": -6.51504, - "longitude": -38.4128, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1508126, - "municipio": "Ulianópolis", - "latitude": -3.75007, - "longitude": -47.4892, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2313708, - "municipio": "Umari", - "latitude": -6.63893, - "longitude": -38.7008, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2414506, - "municipio": "Umarizal", - "latitude": -5.98238, - "longitude": -37.818, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2807600, - "municipio": "Umbaúba", - "latitude": -11.3809, - "longitude": -37.6623, - "codigo_uf": 28, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2932457, - "municipio": "Umburanas", - "latitude": -10.7339, - "longitude": -41.3234, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3170305, - "municipio": "Umburatiba", - "latitude": -17.2548, - "longitude": -40.5779, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2517001, - "municipio": "Umbuzeiro", - "latitude": -7.69199, - "longitude": -35.6582, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2313757, - "municipio": "Umirim", - "latitude": -3.67654, - "longitude": -39.3465, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4128104, - "municipio": "Umuarama", - "latitude": -23.7656, - "longitude": -53.3201, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2932507, - "municipio": "Una", - "latitude": -15.2791, - "longitude": -39.0765, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3170404, - "municipio": "Unaí", - "latitude": -16.3592, - "longitude": -46.9022, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2211100, - "municipio": "União", - "latitude": -4.58571, - "longitude": -42.8583, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4322350, - "municipio": "União da Serra", - "latitude": -28.7833, - "longitude": -52.0238, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4128203, - "municipio": "União da Vitória", - "latitude": -26.2273, - "longitude": -51.0873, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3170438, - "municipio": "União de Minas", - "latitude": -19.5299, - "longitude": -50.338, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4218855, - "municipio": "União do Oeste", - "latitude": -26.762, - "longitude": -52.8541, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5108303, - "municipio": "União do Sul", - "latitude": -11.5308, - "longitude": -54.3616, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2709301, - "municipio": "União dos Palmares", - "latitude": -9.15921, - "longitude": -36.0223, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3555703, - "municipio": "União Paulista", - "latitude": -20.8862, - "longitude": -49.9025, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4128302, - "municipio": "Uniflor", - "latitude": -23.0868, - "longitude": -52.1573, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4322376, - "municipio": "Unistalda", - "latitude": -29.04, - "longitude": -55.1517, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2414605, - "municipio": "Upanema", - "latitude": -5.63761, - "longitude": -37.2635, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4128401, - "municipio": "Uraí", - "latitude": -23.2, - "longitude": -50.7939, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2932606, - "municipio": "Urandi", - "latitude": -14.7678, - "longitude": -42.6498, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3555802, - "municipio": "Urânia", - "latitude": -20.2455, - "longitude": -50.6455, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2112605, - "municipio": "Urbano Santos", - "latitude": -3.20642, - "longitude": -43.3878, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3555901, - "municipio": "Uru", - "latitude": -21.7866, - "longitude": -49.2848, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5221601, - "municipio": "Uruaçu", - "latitude": -14.5238, - "longitude": -49.1396, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5221700, - "municipio": "Uruana", - "latitude": -15.4993, - "longitude": -49.6861, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3170479, - "municipio": "Uruana de Minas", - "latitude": -16.0634, - "longitude": -46.2443, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1508159, - "municipio": "Uruará", - "latitude": -3.71519, - "longitude": -53.7396, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4218905, - "municipio": "Urubici", - "latitude": -28.0157, - "longitude": -49.5925, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2313807, - "municipio": "Uruburetama", - "latitude": -3.62316, - "longitude": -39.5107, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3170503, - "municipio": "Urucânia", - "latitude": -20.3521, - "longitude": -42.737, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1304302, - "municipio": "Urucará", - "latitude": -2.52936, - "longitude": -57.7538, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2932705, - "municipio": "Uruçuca", - "latitude": -14.5963, - "longitude": -39.2851, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2211209, - "municipio": "Uruçuí", - "latitude": -7.23944, - "longitude": -44.5577, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3170529, - "municipio": "Urucuia", - "latitude": -16.1244, - "longitude": -45.7352, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1304401, - "municipio": "Urucurituba", - "latitude": -3.12841, - "longitude": -58.1496, - "codigo_uf": 13, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4322400, - "municipio": "Uruguaiana", - "latitude": -29.7614, - "longitude": -57.0853, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2313906, - "municipio": "Uruoca", - "latitude": -3.30819, - "longitude": -40.5628, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1101708, - "municipio": "Urupá", - "latitude": -11.1261, - "longitude": -62.3639, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4218954, - "municipio": "Urupema", - "latitude": -27.9557, - "longitude": -49.8729, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3556008, - "municipio": "Urupês", - "latitude": -21.2032, - "longitude": -49.2931, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4219002, - "municipio": "Urussanga", - "latitude": -28.518, - "longitude": -49.3238, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5221809, - "municipio": "Urutaí", - "latitude": -17.4651, - "longitude": -48.2015, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2932804, - "municipio": "Utinga", - "latitude": -12.0783, - "longitude": -41.0954, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4322509, - "municipio": "Vacaria", - "latitude": -28.5079, - "longitude": -50.9418, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5108352, - "municipio": "Vale de São Domingos", - "latitude": -15.286, - "longitude": -59.0683, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1101757, - "municipio": "Vale do Anari", - "latitude": -9.86215, - "longitude": -62.1876, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 1101807, - "municipio": "Vale do Paraíso", - "latitude": -10.4465, - "longitude": -62.1352, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 4322533, - "municipio": "Vale do Sol", - "latitude": -29.5967, - "longitude": -52.6839, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4322541, - "municipio": "Vale Real", - "latitude": -29.3919, - "longitude": -51.2559, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4322525, - "municipio": "Vale Verde", - "latitude": -29.7864, - "longitude": -52.1857, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2932903, - "municipio": "Valença", - "latitude": -13.3669, - "longitude": -39.073, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3306107, - "municipio": "Valença", - "latitude": -22.2445, - "longitude": -43.7129, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2211308, - "municipio": "Valença do Piauí", - "latitude": -6.40301, - "longitude": -41.7375, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2933000, - "municipio": "Valente", - "latitude": -11.4062, - "longitude": -39.457, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3556107, - "municipio": "Valentim Gentil", - "latitude": -20.4217, - "longitude": -50.0889, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3556206, - "municipio": "Valinhos", - "latitude": -22.9698, - "longitude": -46.9974, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3556305, - "municipio": "Valparaíso", - "latitude": -21.2229, - "longitude": -50.8699, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5221858, - "municipio": "Valparaíso de Goiás", - "latitude": -16.0651, - "longitude": -47.9757, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4322558, - "municipio": "Vanini", - "latitude": -28.4758, - "longitude": -51.8447, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4219101, - "municipio": "Vargeão", - "latitude": -26.8621, - "longitude": -52.1549, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4219150, - "municipio": "Vargem", - "latitude": -27.4867, - "longitude": -50.9724, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3556354, - "municipio": "Vargem", - "latitude": -22.887, - "longitude": -46.4124, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3170578, - "municipio": "Vargem Alegre", - "latitude": -19.5988, - "longitude": -42.2949, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3205036, - "municipio": "Vargem Alta", - "latitude": -20.669, - "longitude": -41.0179, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3170602, - "municipio": "Vargem Bonita", - "latitude": -20.3333, - "longitude": -46.3688, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4219176, - "municipio": "Vargem Bonita", - "latitude": -27.0055, - "longitude": -51.7402, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2112704, - "municipio": "Vargem Grande", - "latitude": -3.53639, - "longitude": -43.917, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3170651, - "municipio": "Vargem Grande do Rio Pardo", - "latitude": -15.3987, - "longitude": -42.3085, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3556404, - "municipio": "Vargem Grande do Sul", - "latitude": -21.8322, - "longitude": -46.8913, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3556453, - "municipio": "Vargem Grande Paulista", - "latitude": -23.5993, - "longitude": -47.022, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3170701, - "municipio": "Varginha", - "latitude": -21.5556, - "longitude": -45.4364, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5221908, - "municipio": "Varjão", - "latitude": -17.0471, - "longitude": -49.6312, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3170750, - "municipio": "Varjão de Minas", - "latitude": -18.3741, - "longitude": -46.0313, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2313955, - "municipio": "Varjota", - "latitude": -4.19387, - "longitude": -40.4741, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3306156, - "municipio": "Varre-Sai", - "latitude": -20.9276, - "longitude": -41.8701, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2414704, - "municipio": "Várzea", - "latitude": -6.34641, - "longitude": -35.3732, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2517100, - "municipio": "Várzea", - "latitude": -6.76189, - "longitude": -36.9913, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2314003, - "municipio": "Várzea Alegre", - "latitude": -6.78264, - "longitude": -39.2942, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2211357, - "municipio": "Várzea Branca", - "latitude": -9.238, - "longitude": -42.9692, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3170800, - "municipio": "Várzea da Palma", - "latitude": -17.5944, - "longitude": -44.7226, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2933059, - "municipio": "Várzea da Roça", - "latitude": -11.6005, - "longitude": -40.1328, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2933109, - "municipio": "Várzea do Poço", - "latitude": -11.5273, - "longitude": -40.3149, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2211407, - "municipio": "Várzea Grande", - "latitude": -6.54899, - "longitude": -42.248, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5108402, - "municipio": "Várzea Grande", - "latitude": -15.6458, - "longitude": -56.1322, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2933158, - "municipio": "Várzea Nova", - "latitude": -11.2557, - "longitude": -40.9432, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3556503, - "municipio": "Várzea Paulista", - "latitude": -23.2136, - "longitude": -46.8234, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2933174, - "municipio": "Varzedo", - "latitude": -12.9672, - "longitude": -39.3919, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3170909, - "municipio": "Varzelândia", - "latitude": -15.6992, - "longitude": -44.0278, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3306206, - "municipio": "Vassouras", - "latitude": -22.4059, - "longitude": -43.6686, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3171006, - "municipio": "Vazante", - "latitude": -17.9827, - "longitude": -46.9088, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4322608, - "municipio": "Venâncio Aires", - "latitude": -29.6143, - "longitude": -52.1932, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3205069, - "municipio": "Venda Nova do Imigrante", - "latitude": -20.327, - "longitude": -41.1355, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2414753, - "municipio": "Venha-Ver", - "latitude": -6.32016, - "longitude": -38.4896, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4128534, - "municipio": "Ventania", - "latitude": -24.2458, - "longitude": -50.2376, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2616001, - "municipio": "Venturosa", - "latitude": -8.57885, - "longitude": -36.8742, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5108501, - "municipio": "Vera", - "latitude": -12.3017, - "longitude": -55.3045, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 2414803, - "municipio": "Vera Cruz", - "latitude": -6.04399, - "longitude": -35.428, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2933208, - "municipio": "Vera Cruz", - "latitude": -12.9568, - "longitude": -38.6153, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4322707, - "municipio": "Vera Cruz", - "latitude": -29.7184, - "longitude": -52.5152, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3556602, - "municipio": "Vera Cruz", - "latitude": -22.2183, - "longitude": -49.8207, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4128559, - "municipio": "Vera Cruz do Oeste", - "latitude": -25.0577, - "longitude": -53.8771, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2211506, - "municipio": "Vera Mendes", - "latitude": -7.59748, - "longitude": -41.4673, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4322806, - "municipio": "Veranópolis", - "latitude": -28.9312, - "longitude": -51.5516, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2616100, - "municipio": "Verdejante", - "latitude": -7.92235, - "longitude": -38.9701, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3171030, - "municipio": "Verdelândia", - "latitude": -15.5845, - "longitude": -43.6121, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4128609, - "municipio": "Verê", - "latitude": -25.8772, - "longitude": -52.9051, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2933257, - "municipio": "Vereda", - "latitude": -17.2183, - "longitude": -40.0974, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3171071, - "municipio": "Veredinha", - "latitude": -17.3974, - "longitude": -42.7307, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3171105, - "municipio": "Veríssimo", - "latitude": -19.6657, - "longitude": -48.3118, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3171154, - "municipio": "Vermelho Novo", - "latitude": -20.0406, - "longitude": -42.2688, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2616183, - "municipio": "Vertente do Lério", - "latitude": -7.77084, - "longitude": -35.8491, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2616209, - "municipio": "Vertentes", - "latitude": -7.90158, - "longitude": -35.9681, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3171204, - "municipio": "Vespasiano", - "latitude": -19.6883, - "longitude": -43.9239, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4322855, - "municipio": "Vespasiano Corrêa", - "latitude": -29.0655, - "longitude": -51.8625, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4322905, - "municipio": "Viadutos", - "latitude": -27.5716, - "longitude": -52.0211, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4323002, - "municipio": "Viamão", - "latitude": -30.0819, - "longitude": -51.0194, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3205101, - "municipio": "Viana", - "latitude": -20.3825, - "longitude": -40.4933, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2112803, - "municipio": "Viana", - "latitude": -3.20451, - "longitude": -44.9912, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5222005, - "municipio": "Vianópolis", - "latitude": -16.7405, - "longitude": -48.5159, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2616308, - "municipio": "Vicência", - "latitude": -7.65655, - "longitude": -35.3139, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4323101, - "municipio": "Vicente Dutra", - "latitude": -27.1607, - "longitude": -53.4022, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5008404, - "municipio": "Vicentina", - "latitude": -22.4098, - "longitude": -54.4415, - "codigo_uf": 50, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5222054, - "municipio": "Vicentinópolis", - "latitude": -17.7322, - "longitude": -49.8047, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2414902, - "municipio": "Viçosa", - "latitude": -5.98253, - "longitude": -37.9462, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2709400, - "municipio": "Viçosa", - "latitude": -9.36763, - "longitude": -36.2431, - "codigo_uf": 27, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3171303, - "municipio": "Viçosa", - "latitude": -20.7559, - "longitude": -42.8742, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2314102, - "municipio": "Viçosa do Ceará", - "latitude": -3.5667, - "longitude": -41.0916, - "codigo_uf": 23, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4323200, - "municipio": "Victor Graeff", - "latitude": -28.5632, - "longitude": -52.7495, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4219200, - "municipio": "Vidal Ramos", - "latitude": -27.3886, - "longitude": -49.3593, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4219309, - "municipio": "Videira", - "latitude": -27.0086, - "longitude": -51.1543, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3171402, - "municipio": "Vieiras", - "latitude": -20.867, - "longitude": -42.2401, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2517209, - "municipio": "Vieirópolis", - "latitude": -6.50684, - "longitude": -38.2567, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1508209, - "municipio": "Vigia", - "latitude": -0.861194, - "longitude": -48.1386, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5105507, - "municipio": "Vila Bela da Santíssima Trindade", - "latitude": -15.0068, - "longitude": -59.9504, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 5222203, - "municipio": "Vila Boa", - "latitude": -15.0387, - "longitude": -47.052, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2415008, - "municipio": "Vila Flor", - "latitude": -6.31287, - "longitude": -35.067, - "codigo_uf": 24, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4323309, - "municipio": "Vila Flores", - "latitude": -28.8598, - "longitude": -51.5504, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4323358, - "municipio": "Vila Lângaro", - "latitude": -28.1062, - "longitude": -52.1438, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4323408, - "municipio": "Vila Maria", - "latitude": -28.5359, - "longitude": -52.1486, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2211605, - "municipio": "Vila Nova do Piauí", - "latitude": -7.13272, - "longitude": -40.9345, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4323457, - "municipio": "Vila Nova do Sul", - "latitude": -30.3461, - "longitude": -53.876, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2112852, - "municipio": "Vila Nova dos Martírios", - "latitude": -5.18889, - "longitude": -48.1336, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3205150, - "municipio": "Vila Pavão", - "latitude": -18.6091, - "longitude": -40.609, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5222302, - "municipio": "Vila Propício", - "latitude": -15.4542, - "longitude": -48.8819, - "codigo_uf": 52, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 5108600, - "municipio": "Vila Rica", - "latitude": -10.0137, - "longitude": -51.1186, - "codigo_uf": 51, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3205176, - "municipio": "Vila Valério", - "latitude": -18.9958, - "longitude": -40.3849, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3205200, - "municipio": "Vila Velha", - "latitude": -20.3417, - "longitude": -40.2875, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1100304, - "municipio": "Vilhena", - "latitude": -12.7502, - "longitude": -60.1488, - "codigo_uf": 11, - "fuso_horario": "America\/Porto_Velho" - }, - { - "geocodigo": 3556701, - "municipio": "Vinhedo", - "latitude": -23.0302, - "longitude": -46.9833, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3556800, - "municipio": "Viradouro", - "latitude": -20.8734, - "longitude": -48.293, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3171600, - "municipio": "Virgem da Lapa", - "latitude": -16.807, - "longitude": -42.3431, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3171709, - "municipio": "Virgínia", - "latitude": -22.3264, - "longitude": -45.0965, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3171808, - "municipio": "Virginópolis", - "latitude": -18.8154, - "longitude": -42.7015, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3171907, - "municipio": "Virgolândia", - "latitude": -18.4738, - "longitude": -42.3067, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4128658, - "municipio": "Virmond", - "latitude": -25.3829, - "longitude": -52.1987, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3172004, - "municipio": "Visconde do Rio Branco", - "latitude": -21.0127, - "longitude": -42.8361, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1508308, - "municipio": "Viseu", - "latitude": -1.19124, - "longitude": -46.1399, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4323507, - "municipio": "Vista Alegre", - "latitude": -27.3686, - "longitude": -53.4919, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3556909, - "municipio": "Vista Alegre do Alto", - "latitude": -21.1692, - "longitude": -48.6284, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4323606, - "municipio": "Vista Alegre do Prata", - "latitude": -28.8052, - "longitude": -51.7947, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4323705, - "municipio": "Vista Gaúcha", - "latitude": -27.2902, - "longitude": -53.6974, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2505501, - "municipio": "Vista Serrana", - "latitude": -6.7303, - "longitude": -37.5704, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4219358, - "municipio": "Vitor Meireles", - "latitude": -26.8782, - "longitude": -49.8328, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3205309, - "municipio": "Vitória", - "latitude": -20.3155, - "longitude": -40.3128, - "codigo_uf": 32, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3556958, - "municipio": "Vitória Brasil", - "latitude": -20.1956, - "longitude": -50.4875, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2933307, - "municipio": "Vitória da Conquista", - "latitude": -14.8615, - "longitude": -40.8442, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4323754, - "municipio": "Vitória das Missões", - "latitude": -28.3516, - "longitude": -54.504, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2616407, - "municipio": "Vitória de Santo Antão", - "latitude": -8.12819, - "longitude": -35.2976, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1600808, - "municipio": "Vitória do Jari", - "latitude": -0.938, - "longitude": -52.424, - "codigo_uf": 16, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2112902, - "municipio": "Vitória do Mearim", - "latitude": -3.45125, - "longitude": -44.8643, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1508357, - "municipio": "Vitória do Xingu", - "latitude": -2.87922, - "longitude": -52.0088, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4128708, - "municipio": "Vitorino", - "latitude": -26.2683, - "longitude": -52.7843, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2113009, - "municipio": "Vitorino Freire", - "latitude": -4.28184, - "longitude": -45.2505, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3172103, - "municipio": "Volta Grande", - "latitude": -21.7671, - "longitude": -42.5375, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3306305, - "municipio": "Volta Redonda", - "latitude": -22.5202, - "longitude": -44.0996, - "codigo_uf": 33, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3557006, - "municipio": "Votorantim", - "latitude": -23.5446, - "longitude": -47.4388, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3557105, - "municipio": "Votuporanga", - "latitude": -20.4237, - "longitude": -49.9781, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2933406, - "municipio": "Wagner", - "latitude": -12.2819, - "longitude": -41.1715, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2211704, - "municipio": "Wall Ferraz", - "latitude": -7.23151, - "longitude": -41.905, - "codigo_uf": 22, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1722081, - "municipio": "Wanderlândia", - "latitude": -6.85274, - "longitude": -47.9601, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2933455, - "municipio": "Wanderley", - "latitude": -12.1144, - "longitude": -43.8958, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3172202, - "municipio": "Wenceslau Braz", - "latitude": -22.5368, - "longitude": -45.3626, - "codigo_uf": 31, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4128500, - "municipio": "Wenceslau Braz", - "latitude": -23.8742, - "longitude": -49.8032, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2933505, - "municipio": "Wenceslau Guimarães", - "latitude": -13.6908, - "longitude": -39.4762, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4323770, - "municipio": "Westfália", - "latitude": -29.4263, - "longitude": -51.7645, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4219408, - "municipio": "Witmarsum", - "latitude": -26.9275, - "longitude": -49.7947, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1722107, - "municipio": "Xambioá", - "latitude": -6.4141, - "longitude": -48.532, - "codigo_uf": 17, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4128807, - "municipio": "Xambrê", - "latitude": -23.7364, - "longitude": -53.4884, - "codigo_uf": 41, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4323804, - "municipio": "Xangri-lá", - "latitude": -29.8065, - "longitude": -50.0519, - "codigo_uf": 43, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4219507, - "municipio": "Xanxerê", - "latitude": -26.8747, - "longitude": -52.4036, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1200708, - "municipio": "Xapuri", - "latitude": -10.6516, - "longitude": -68.4969, - "codigo_uf": 12, - "fuso_horario": "America\/Rio_Branco" - }, - { - "geocodigo": 4219606, - "municipio": "Xavantina", - "latitude": -27.0667, - "longitude": -52.343, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4219705, - "municipio": "Xaxim", - "latitude": -26.9596, - "longitude": -52.5374, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2616506, - "municipio": "Xexéu", - "latitude": -8.8046, - "longitude": -35.6212, - "codigo_uf": 26, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 1508407, - "municipio": "Xinguara", - "latitude": -7.0983, - "longitude": -49.9437, - "codigo_uf": 15, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2933604, - "municipio": "Xique-Xique", - "latitude": -10.823, - "longitude": -42.7245, - "codigo_uf": 29, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2517407, - "municipio": "Zabelê", - "latitude": -8.07901, - "longitude": -37.1057, - "codigo_uf": 25, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 3557154, - "municipio": "Zacarias", - "latitude": -21.0506, - "longitude": -50.0552, - "codigo_uf": 35, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 2114007, - "municipio": "Zé Doca", - "latitude": -3.27014, - "longitude": -45.6553, - "codigo_uf": 21, - "fuso_horario": "America\/Sao_Paulo" - }, - { - "geocodigo": 4219853, - "municipio": "Zortéa", - "latitude": -27.4521, - "longitude": -51.552, - "codigo_uf": 42, - "fuso_horario": "America\/Sao_Paulo" - } -] diff --git a/pysus/utils.py b/pysus/utils.py new file mode 100644 index 00000000..ccbdb6ad --- /dev/null +++ b/pysus/utils.py @@ -0,0 +1,12 @@ +import datetime + + +def zfill_year(year: str | int) -> int: + """ + Formats a len(2) year into len(4) with the correct year preffix + E.g: 20 -> 2020; 99 -> 1999 + """ + year = str(year)[-2:].zfill(2) + current_year = str(datetime.datetime.now().year)[-2:] + suffix = "19" if str(year) > current_year else "20" + return int(suffix + str(year))