Skip to main content

It supports feature based registration and can be used along with the FPFH remote module. The class itkRANSAC is the main driver that takes an object of class itkLandmarkRegistrationEstimator as argument. Please refer to the documentation for a detailed description and sample usage: https://github.com/InsightSoftwareConsortium/ITKRANSAC.

Project description

ITKRANSAC

Overview

This is the source code for a C++ templated implementation of the RANSAC algorithm and associated Python wrapping. The implementation is multi-threaded. This repository is only for pointset registratation and differs slightly from the original generic implementation due to optimization.

For implementation related to plane and sphere estimation please refer https://github.com/midas-journal/midas-journal-769 and the associated Insight Journal article.

The code is "in the style of ITK". That is, it is very similar to the official ITK style but does not follow all of the required conventions.

Manifest:

  1. RANSAC {h,txx} - Multi-threaded implementation of the generic RANSAC algorithm.
  2. ParametersEstimator.{h,hxx} - Super class of all parameter estimation objects that can be used with the RANSAC algorithm. This is an abstract class that defines an interface.
  3. itkLandmarkRegistrationEstimator.{h,hxx} - Estimation code for landmark based pointset registration.
  4. Testing/*.cxx - Test for the PointSet registration using landmark points.

Python wrapping installation:

pip install itk-ransac



Sample Usage in Python for 3D PointSet is shown here:

data = itk.vector[itk.Point[itk.D, 6]]()
agreeData = itk.vector[itk.Point[itk.D, 6]]()
GenerateData(data, agreeData)

transformParameters = itk.vector.D()

TransformType = itk.Similarity3DTransform.D

maximumDistance = inlier_value
RegistrationEstimatorType = itk.Ransac.LandmarkRegistrationEstimator[6, TransformType]
registrationEstimator = RegistrationEstimatorType.New()
registrationEstimator.SetMinimalForEstimate(number_of_ransac_points)
registrationEstimator.SetAgreeData(agreeData)
registrationEstimator.SetDelta(maximumDistance)
registrationEstimator.LeastSquaresEstimate(data, transformParameters)

desiredProbabilityForNoOutliers = 0.99
RANSACType = itk.RANSAC[itk.Point[itk.D, 6], itk.D, TransformType]
ransacEstimator = RANSACType.New()
ransacEstimator.SetData(data)
ransacEstimator.SetAgreeData(agreeData)
ransacEstimator.SetMaxIteration(number_of_iterations)
ransacEstimator.SetNumberOfThreads(8)
ransacEstimator.SetParametersEstimator(registrationEstimator)

percentageOfDataUsed = ransacEstimator.Compute( transformParameters, desiredProbabilityForNoOutliers )
for i in transformParameters:
  print(i)



Landmarks can be obtained by performing feature matching.

For this one can use the ITKFPFH library.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

itk_ransac-0.2.0-cp311-abi3-win_amd64.whl (545.0 kB view details)

Uploaded CPython 3.11+ Windows x86-64

itk_ransac-0.2.0-cp311-abi3-manylinux_2_28_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.11+ manylinux: glibc 2.28+ x86-64

itk_ransac-0.2.0-cp311-abi3-manylinux_2_28_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.11+ manylinux: glibc 2.28+ ARM64

itk_ransac-0.2.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.11+ manylinux: glibc 2.17+ x86-64

itk_ransac-0.2.0-cp311-abi3-manylinux2014_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.11+

itk_ransac-0.2.0-cp311-abi3-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.11+ macOS 11.0+ ARM64

itk_ransac-0.2.0-cp311-abi3-macosx_10_9_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.11+ macOS 10.9+ x86-64

itk_ransac-0.2.0-cp310-cp310-win_amd64.whl (545.1 kB view details)

Uploaded CPython 3.10 Windows x86-64

itk_ransac-0.2.0-cp310-cp310-manylinux_2_28_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ x86-64

itk_ransac-0.2.0-cp310-cp310-manylinux_2_28_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ ARM64

itk_ransac-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

itk_ransac-0.2.0-cp310-cp310-manylinux2014_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.10

itk_ransac-0.2.0-cp310-cp310-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

itk_ransac-0.2.0-cp310-cp310-macosx_10_9_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

itk_ransac-0.2.0-cp39-cp39-win_amd64.whl (545.7 kB view details)

Uploaded CPython 3.9 Windows x86-64

itk_ransac-0.2.0-cp39-cp39-manylinux_2_28_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ x86-64

itk_ransac-0.2.0-cp39-cp39-manylinux_2_28_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ ARM64

itk_ransac-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

itk_ransac-0.2.0-cp39-cp39-manylinux2014_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.9

itk_ransac-0.2.0-cp39-cp39-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

itk_ransac-0.2.0-cp39-cp39-macosx_10_9_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

itk_ransac-0.2.0-cp38-cp38-win_amd64.whl (572.2 kB view details)

Uploaded CPython 3.8 Windows x86-64

itk_ransac-0.2.0-cp38-cp38-manylinux_2_28_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.28+ x86-64

itk_ransac-0.2.0-cp38-cp38-manylinux_2_28_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.28+ ARM64

itk_ransac-0.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

itk_ransac-0.2.0-cp38-cp38-manylinux2014_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.8

itk_ransac-0.2.0-cp38-cp38-macosx_10_9_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

Details for the file itk_ransac-0.2.0-cp311-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for itk_ransac-0.2.0-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4c14470cb36185bc122fd23eef77616822416a0458c17c582dc19e71aa06ba2b
MD5 88b68592b6a58670ef53e13b02ddd02b
BLAKE2b-256 6b218eeb87ce395c14b9d918eb3b47b4763f4215669d4f49c768917a8f2ff9be

See more details on using hashes here.

File details

Details for the file itk_ransac-0.2.0-cp311-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for itk_ransac-0.2.0-cp311-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c1d5f7de1edd7a2278ccd36679b9d0e2b94196213d9de2cc30495c3e903a0950
MD5 ddac1c819c45f27694709391e43eb339
BLAKE2b-256 f5268d322ee3cd7cd8a5e947f40800e6b78017d1f16f2df658013804433f9aed

See more details on using hashes here.

File details

Details for the file itk_ransac-0.2.0-cp311-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for itk_ransac-0.2.0-cp311-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9ca8398105b4030e5941ed7d1996abf304e24ee86a1e83f1e3ab34e416b3a4bc
MD5 6e7d7c2b4fc978fda7ceef6903e67bee
BLAKE2b-256 7674f2e072a59127489e800db4340557d143d6bebd48cd15daf16078b8d4a3c3

See more details on using hashes here.

File details

Details for the file itk_ransac-0.2.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for itk_ransac-0.2.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9ed0067f75e57d99675687455b70601cd25f1cd963cfc46271da5d497ca9686c
MD5 7cee883fe9fb23ee79dad29ceb7a7dc4
BLAKE2b-256 f74f7f3715ed14d4be0c320e15741500e93b41291c477c35cec0b2a2dbd20062

See more details on using hashes here.

File details

Details for the file itk_ransac-0.2.0-cp311-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for itk_ransac-0.2.0-cp311-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a2e595e9ecdc3ed9611ace0dd58f27f262e2e437ae197c34021ed4a09be131ce
MD5 330a867ca68c2b69432ad813d0c63469
BLAKE2b-256 ce720ecbeaa8f3d47fa6acf92c0814052de7dafb9a9bf022b5737045076e60bd

See more details on using hashes here.

File details

Details for the file itk_ransac-0.2.0-cp311-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for itk_ransac-0.2.0-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8047e792e5a341b10bf6271f00a86c19afa5edd9bf97641360384171ccc2b228
MD5 a41311351b4ca188e8f9b6dd40e15c42
BLAKE2b-256 783240f9264658ffc20e88957e714b11bc21dc0939c478eb0839863944506564

See more details on using hashes here.

File details

Details for the file itk_ransac-0.2.0-cp311-abi3-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for itk_ransac-0.2.0-cp311-abi3-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0bafadb9b8e032f0974455cc48d06f02dc495425bf2dc1e6c9fc41d1a70d56da
MD5 edd78b466f5874bb236f4df32f6da5d1
BLAKE2b-256 fae25d36cdf6afaad8dd141d8b508d9b6ff78e89f0780c2d303c0266cc33f0b5

See more details on using hashes here.

File details

Details for the file itk_ransac-0.2.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for itk_ransac-0.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6216569c6df2934b108c9bb1e780306f727deba3d7e7a59f8589d8cd24774445
MD5 35efd5707d82da8cfab956733e868f1c
BLAKE2b-256 18c2bde6790eb4908979d53adf66c96707ee83b7ea49cd4a2b4b5d93ec7c045f

See more details on using hashes here.

File details

Details for the file itk_ransac-0.2.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for itk_ransac-0.2.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 42ec3d267ace115cac4896e7a60a4efe3cf290e81d447ca30b5250e98df0ed4e
MD5 b80b1f0dedae1464dbd13be1f9d6efda
BLAKE2b-256 ccf9a710d9d15dce7e62c058d83181f0a66a5d0be1f3a6bbc93453947d128fd9

See more details on using hashes here.

File details

Details for the file itk_ransac-0.2.0-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for itk_ransac-0.2.0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d89b4eb382d93a1ac3710ca60a42c412d22ac8cf86ec68dacb74485515892d27
MD5 6c7cfa5ee4708a8846fa529ab20d836d
BLAKE2b-256 363380e06931ede8dd03b2d3db601a5ecbbf40700aaca0117dec14aa697fb66d

See more details on using hashes here.

File details

Details for the file itk_ransac-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for itk_ransac-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2211a35449570c7de6302c6b8076244c95c4ce03e0a3e3e6743126f5448626de
MD5 7c8eed42ba82ba3ec7ad8a37a2fcf99a
BLAKE2b-256 d40f6838883fd779f8918bf417729a73d77cb158758cf7a4b2ced3800eee882b

See more details on using hashes here.

File details

Details for the file itk_ransac-0.2.0-cp310-cp310-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for itk_ransac-0.2.0-cp310-cp310-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e2e0d5c33e133a8ed23b9fa00ae63f2dc56dffd40b43726e7e34b57650d93b47
MD5 3ac90e80543ca8fe66d9b6a93c2f40ca
BLAKE2b-256 3beb611d96812129cd90b2dbec440c7a009e80f8908d19b901f0b4be331fab93

See more details on using hashes here.

File details

Details for the file itk_ransac-0.2.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for itk_ransac-0.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 afe369e20ef97f84c01eac5b7beb9d0a531739a418829f1e84b6c0308fbad04d
MD5 9f7ea36112b9c826230c278705e96030
BLAKE2b-256 84f902ba6b745e4e8f47798f7675dd31b2408b40bc5756d29df326b093cc1ee6

See more details on using hashes here.

File details

Details for the file itk_ransac-0.2.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for itk_ransac-0.2.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 af055e2de53cff7e414f2b8e1d38b9a8d2ba74fd7e5f671033be59d54accdc32
MD5 0d52be6dd62adad697337ca0748d677c
BLAKE2b-256 2b054aef8f226c1e57bfb6a7d4335197a096dc6a59e26eba7d6d88a6d81978b9

See more details on using hashes here.

File details

Details for the file itk_ransac-0.2.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: itk_ransac-0.2.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 545.7 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for itk_ransac-0.2.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 b8877b7ee79ac42b6efcd65d92a437f580b6c88c81db85cbdd318fa9147b99a2
MD5 d5a37734e577664827bc127d444bc7cf
BLAKE2b-256 93900c76ac48011162f2688e1ac2a1c8e05300fbac1fbce018f7e7a9e8a27035

See more details on using hashes here.

File details

Details for the file itk_ransac-0.2.0-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for itk_ransac-0.2.0-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0afc502b933dbec48eb58e9ecc2f34d2d2da487819c6a120e5c3bec98b6ab086
MD5 07607dac1e1122ab1af25935e9a9b3e0
BLAKE2b-256 2f6a466e859319a8429f2e4fa6fb01a27ee803aa983c9736654c17583b5c6c7b

See more details on using hashes here.

File details

Details for the file itk_ransac-0.2.0-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for itk_ransac-0.2.0-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e48ed7abf98b7605bab1a9e0eb529574dbae927397c5630e7bcd7080d92620c7
MD5 1f3b0b058881b22de4e4cbe9c599859f
BLAKE2b-256 10489d9b291481340d5ff5cabe71e0fe1b95e67110bb6de6db350cd249a78144

See more details on using hashes here.

File details

Details for the file itk_ransac-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for itk_ransac-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ef74955da49f8327e59fe858b5ced194267c830487d4f934ed8b67cd59b97120
MD5 ffc992b93bcec3cc156dc1c56dfa515b
BLAKE2b-256 7b0d255ff4cf2b9cb59fe3a8a771f90f4fa459d2f37e6f18ef281d3f2fa61a19

See more details on using hashes here.

File details

Details for the file itk_ransac-0.2.0-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for itk_ransac-0.2.0-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4897973201a81324170ed5c847bad2e7d5073c43cfb5b8dd2353053617fd9270
MD5 ada5dcd34887add136c390e2b58778af
BLAKE2b-256 ff767df3a29d8f3008e2e089f3dabb0af7c69be8bd76d42eb7519c6317888da7

See more details on using hashes here.

File details

Details for the file itk_ransac-0.2.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for itk_ransac-0.2.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3e77f7669b62429a8305eeff7fdf6d0c0679d9b16607a7d72fbbae4f7b8263d0
MD5 cdab5c364498e076a811db31ec9598ea
BLAKE2b-256 1fd1779ef41fda56e3f756acd98dcb74aadc97cd361a62d027e4187c9620a428

See more details on using hashes here.

File details

Details for the file itk_ransac-0.2.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for itk_ransac-0.2.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0a4ee671343fa757b627ef9f888eeb1dc87bd98cc7e269077ccea987b7beddca
MD5 90b83532b53f7a521bd75f5ad5664482
BLAKE2b-256 f27086407f7fb4ca0a1b2b7acfc6e2d6ee66cdbab0a3ad4a7bc8889fac8b7062

See more details on using hashes here.

File details

Details for the file itk_ransac-0.2.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: itk_ransac-0.2.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 572.2 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for itk_ransac-0.2.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 c3f965becbb2744c330523eccd91e8a027cad68dae80caf261de50dbd6e915ca
MD5 1c1133333ddfc72a43fb31ae0119cfe3
BLAKE2b-256 cc03bd6b6a9665bbe2638f0eb396737bb4f21ca5d1b68e94f224311497008751

See more details on using hashes here.

File details

Details for the file itk_ransac-0.2.0-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for itk_ransac-0.2.0-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 367870f41ae5da5d26a1a1db7137bac044d253330a4897696585c5aa0f68b0b5
MD5 7deb3009a9dc7b857d308ef5696df424
BLAKE2b-256 9969fbbdd07b0b8bb70aae0d9612abd8304fc441c96aaf49c8811733b40684bb

See more details on using hashes here.

File details

Details for the file itk_ransac-0.2.0-cp38-cp38-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for itk_ransac-0.2.0-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6b8578168ec734ef616be56a373483d3e299455d0a16a79a70d5b4ae3a2d3497
MD5 76b38eb3f969f77f9c7359c592ffcca5
BLAKE2b-256 190fe30d5f44f9bdea93b15e172749ed80e98d9420c9380c964348f5058cf7ee

See more details on using hashes here.

File details

Details for the file itk_ransac-0.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for itk_ransac-0.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 70aed9d77d7ff6406e0c88bbd9611f7c3c6779d8e355c1510b257cc7273c3267
MD5 2707e60530f5a2afd677350af43a5d94
BLAKE2b-256 68784fd51bd6db43edf6ca503365057ab3b00aab9b46a3418e42c813d40e7c11

See more details on using hashes here.

File details

Details for the file itk_ransac-0.2.0-cp38-cp38-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for itk_ransac-0.2.0-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f6237be371a31503eb3d6f8f2c5868efa196ecfec71b508eea8dc8ad366e7743
MD5 8d721a940a4ec7e1acb3d631ce2c460e
BLAKE2b-256 65efece523241147cecbcc2a29492e304f488f2140a9fa6865cf0eb60531dda8

See more details on using hashes here.

File details

Details for the file itk_ransac-0.2.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for itk_ransac-0.2.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 adff86567c0f9d09758bac2e470f598c4c3b721f9428b97146cdd43f8f800a60
MD5 2a9b4be8fc1b88605d164ecd486f9e5a
BLAKE2b-256 420f07dec77bb6bbbc7bff51d05f97d8aff4508d7f828ea64b7c2d66969b520e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page