{"id":425,"date":"2016-12-05T10:43:06","date_gmt":"2016-12-05T10:43:06","guid":{"rendered":"http:\/\/www.rangakrish.com\/?p=425"},"modified":"2016-12-05T10:54:17","modified_gmt":"2016-12-05T10:54:17","slug":"checking-image-overlap-with-mathematica","status":"publish","type":"post","link":"https:\/\/www.rangakrish.com\/index.php\/2016\/12\/05\/checking-image-overlap-with-mathematica\/","title":{"rendered":"Checking Image Overlap with Mathematica"},"content":{"rendered":"<p>Recently I had to solve a seemingly simple problem: Given two images, can we find out if there is any overlap between the two?<\/p>\n<p>Where does such a requirement arise? One use case is in photogrammetry, where in order to build an orthomosaic from multiple\u00a0images, there must be at least 70% overlap between consecutive images.<\/p>\n<p>We will make\u00a0the following assumptions:<\/p>\n<ul>\n<li>All images are of the same dimension<\/li>\n<li>All images are of good quality<\/li>\n<\/ul>\n<p>Clearly, we do not want brute-force comparison, which might take considerable time. The idea is to get a fairly quick estimate.<\/p>\n<p>I did a google search and got some\u00a0useful links that talk about\u00a0this aspect. In this blog and the next one, I am going\u00a0to discuss a few of the techniques I found interesting.<\/p>\n<p>As usual, <a href=\"http:\/\/www.wolfram.com\/index.php\" target=\"_blank\"><strong>Mathematica<\/strong><\/a> is the first choice from my toolkit.<\/p>\n<p>First I import 4 sample images, and then display them in a table form for convenience.<\/p>\n<figure id=\"attachment_426\" aria-describedby=\"caption-attachment-426\" style=\"width: 644px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/Sampleimages.png\"><img data-recalc-dims=\"1\" fetchpriority=\"high\" decoding=\"async\" data-attachment-id=\"426\" data-permalink=\"https:\/\/www.rangakrish.com\/index.php\/2016\/12\/05\/checking-image-overlap-with-mathematica\/sampleimages\/\" data-orig-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/Sampleimages.png\" data-orig-size=\"644,562\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Sample Images\" data-image-description=\"&lt;p&gt;Sample Images&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Sample Images&lt;\/p&gt;\n\" data-large-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/Sampleimages.png\" class=\"size-full wp-image-426\" src=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/Sampleimages.png?resize=644%2C562\" alt=\"Sample Images\" width=\"644\" height=\"562\" srcset=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/Sampleimages.png?w=644&amp;ssl=1 644w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/Sampleimages.png?resize=300%2C262&amp;ssl=1 300w\" sizes=\"(max-width: 644px) 100vw, 644px\" \/><\/a><figcaption id=\"caption-attachment-426\" class=\"wp-caption-text\"><strong>Sample Images<\/strong><\/figcaption><\/figure>\n<p>Visual inspection tells us that images 1, 2 and 3 have substantial overlap, but image 4 is very different, having\u00a0no overlap with the other three.<\/p>\n<h3><span style=\"text-decoration: underline;\">Technique-1:<\/span><\/h3>\n<p>OK, let us look at the first technique. This uses Mathematica function <a href=\"https:\/\/reference.wolfram.com\/language\/ref\/ImageFeatureTrack.html\" target=\"_blank\"><em><strong>ImageFeatureTrack<\/strong><\/em><\/a>\u00a0to track features from one image to the other.<\/p>\n<p>Here is a simple function definition that highlights tracked features on two given images.<\/p>\n<figure id=\"attachment_437\" aria-describedby=\"caption-attachment-437\" style=\"width: 656px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/HightlightTrackedFeatures.png\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"437\" data-permalink=\"https:\/\/www.rangakrish.com\/index.php\/2016\/12\/05\/checking-image-overlap-with-mathematica\/hightlighttrackedfeatures\/\" data-orig-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/HightlightTrackedFeatures.png\" data-orig-size=\"656,86\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Highlight Tracked Features\" data-image-description=\"&lt;p&gt;Highlight Tracked Features&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Highlight Tracked Features&lt;\/p&gt;\n\" data-large-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/HightlightTrackedFeatures.png\" class=\"size-full wp-image-437\" src=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/HightlightTrackedFeatures.png?resize=656%2C86\" alt=\"Highlight Tracked Features\" width=\"656\" height=\"86\" srcset=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/HightlightTrackedFeatures.png?w=656&amp;ssl=1 656w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/HightlightTrackedFeatures.png?resize=300%2C39&amp;ssl=1 300w\" sizes=\"(max-width: 656px) 100vw, 656px\" \/><\/a><figcaption id=\"caption-attachment-437\" class=\"wp-caption-text\"><strong>Highlight Tracked Features<\/strong><\/figcaption><\/figure>\n<p>Next, we call this function on the pairs (Image1, Image2) , (image2, Image3), and (Image1, Image4):<\/p>\n<figure id=\"attachment_428\" aria-describedby=\"caption-attachment-428\" style=\"width: 761px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/Highlight2.png\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"428\" data-permalink=\"https:\/\/www.rangakrish.com\/index.php\/2016\/12\/05\/checking-image-overlap-with-mathematica\/highlight2\/\" data-orig-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/Highlight2.png\" data-orig-size=\"761,814\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Highlighting Features in Image Pairs\" data-image-description=\"&lt;p&gt;Highlighting Features in Image Pairs&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Highlighting Features in Image Pairs&lt;\/p&gt;\n\" data-large-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/Highlight2.png\" class=\"size-full wp-image-428\" src=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/Highlight2.png?resize=761%2C814\" alt=\"Highlighting Features in Image Pairs\" width=\"761\" height=\"814\" srcset=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/Highlight2.png?w=761&amp;ssl=1 761w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/Highlight2.png?resize=280%2C300&amp;ssl=1 280w\" sizes=\"(max-width: 761px) 100vw, 761px\" \/><\/a><figcaption id=\"caption-attachment-428\" class=\"wp-caption-text\"><strong>Highlighting Features in Image Pairs<\/strong><\/figcaption><\/figure>\n<p>We see two interesting things here:<\/p>\n<ul>\n<li>Images 1 and 2 have significant overlap, but some points appear to be missing in the tracking<\/li>\n<li>Images 1 and 4 have very little overlap, but the tracking shows some amount of commonality<\/li>\n<\/ul>\n<p>Relatively speaking, we can probably agree that the overlaps can be ranked in descending order as follows:<\/p>\n<ul>\n<li>Image2, Image3<\/li>\n<li>Image1, Image2<\/li>\n<li>Image1, Image4<\/li>\n<\/ul>\n<p>Here is a function definition for computing the percentage of overlap between two given images, using the <a href=\"https:\/\/reference.wolfram.com\/language\/ref\/ImageFeatureTrack.html\"><em><strong>ImageFeatureTrack<\/strong><\/em><\/a> function:<\/p>\n<figure id=\"attachment_430\" aria-describedby=\"caption-attachment-430\" style=\"width: 648px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/PercentageOverlap-1.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"430\" data-permalink=\"https:\/\/www.rangakrish.com\/index.php\/2016\/12\/05\/checking-image-overlap-with-mathematica\/percentageoverlap-1\/\" data-orig-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/PercentageOverlap-1.png\" data-orig-size=\"757,139\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Function to Calculate Overlap\" data-image-description=\"&lt;p&gt;Function to Calculate Overlap&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Function to Calculate Overlap&lt;\/p&gt;\n\" data-large-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/PercentageOverlap-1.png\" class=\"wp-image-430\" src=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/PercentageOverlap-1.png?resize=648%2C119\" alt=\"Function to Calculate Overlap\" width=\"648\" height=\"119\" srcset=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/PercentageOverlap-1.png?w=757&amp;ssl=1 757w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/PercentageOverlap-1.png?resize=300%2C55&amp;ssl=1 300w\" sizes=\"(max-width: 648px) 100vw, 648px\" \/><\/a><figcaption id=\"caption-attachment-430\" class=\"wp-caption-text\"><strong>Function to Calculate Overlap<\/strong><\/figcaption><\/figure>\n<p>Let us use this function to calculate the overlap across our sample images:<\/p>\n<figure id=\"attachment_429\" aria-describedby=\"caption-attachment-429\" style=\"width: 505px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/Overlap.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"429\" data-permalink=\"https:\/\/www.rangakrish.com\/index.php\/2016\/12\/05\/checking-image-overlap-with-mathematica\/overlap\/\" data-orig-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/Overlap.png\" data-orig-size=\"505,209\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Percentage Overlap\" data-image-description=\"&lt;p&gt;Percentage Overlap&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Percentage Overlap&lt;\/p&gt;\n\" data-large-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/Overlap.png\" class=\"size-full wp-image-429\" src=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/Overlap.png?resize=505%2C209\" alt=\"Percentage Overlap\" width=\"505\" height=\"209\" srcset=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/Overlap.png?w=505&amp;ssl=1 505w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/Overlap.png?resize=300%2C124&amp;ssl=1 300w\" sizes=\"(max-width: 505px) 100vw, 505px\" \/><\/a><figcaption id=\"caption-attachment-429\" class=\"wp-caption-text\"><strong>Percentage Overlap<\/strong><\/figcaption><\/figure>\n<p>Broadly and intuitively, the values seem to agree with our expected relative ordering. However, the absolute percentage value is questionable. For example, it is difficult to believe that Images 1 and 4 have 50% overlap. This could introduce <em><strong>false positives<\/strong><\/em> if we are trying to filter several\u00a0images based on the overlap. Looks like our approach requires improvement.<\/p>\n<p>We shall discuss another\u00a0technique in the next post.<\/p>\n<p>Bye, till then!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recently I had to solve a seemingly simple problem: Given two images, can we find out if there is any overlap between the two? Where does such a requirement arise? One use case is in photogrammetry, where in order to build an orthomosaic from multiple\u00a0images, there must be at least 70% overlap between consecutive images. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[85,72],"tags":[],"class_list":["post-425","post","type-post","status-publish","format-standard","hentry","category-image-processing","category-mathematica"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9OLnF-6R","jetpack-related-posts":[{"id":457,"url":"https:\/\/www.rangakrish.com\/index.php\/2017\/01\/16\/checking-image-overlap-with-mathematica-part-3\/","url_meta":{"origin":425,"position":0},"title":"Checking Image Overlap with Mathematica \u2013 Part 3","author":"admin","date":"January 16, 2017","format":false,"excerpt":"This is the\u00a0 third and the last in the series of articles on checking image overlap using Mathematica. Let us take a quick look at the images that we are using as samples (image1 and image3 in the first row, image3 and image4 in the second row): The first technique\u2026","rel":"","context":"In &quot;Image Processing&quot;","block_context":{"text":"Image Processing","link":"https:\/\/www.rangakrish.com\/index.php\/category\/image-processing\/"},"img":{"alt_text":"Sample Images","src":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2017\/01\/Sampleimages.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2017\/01\/Sampleimages.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2017\/01\/Sampleimages.png?resize=525%2C300 1.5x"},"classes":[]},{"id":443,"url":"https:\/\/www.rangakrish.com\/index.php\/2016\/12\/25\/checking-image-overlap-with-mathematica-part-2\/","url_meta":{"origin":425,"position":1},"title":"Checking Image Overlap with Mathematica &#8211; Part 2","author":"admin","date":"December 25, 2016","format":false,"excerpt":"In the previous post, we discussed one technique to check the overlap between two given images of equal dimensions. In today\u2019s post, let us look at another idea that uses Mathematica\u2019s ImageCorrespondingPoints\u00a0function. As per the documentation, the ImageCorrespondingPoints function finds a set of matching interest points between two given images\u2026","rel":"","context":"In &quot;Image Processing&quot;","block_context":{"text":"Image Processing","link":"https:\/\/www.rangakrish.com\/index.php\/category\/image-processing\/"},"img":{"alt_text":"Corresponding Points","src":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/CorrespondingPoints.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/CorrespondingPoints.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/12\/CorrespondingPoints.png?resize=525%2C300 1.5x"},"classes":[]},{"id":348,"url":"https:\/\/www.rangakrish.com\/index.php\/2016\/09\/26\/computer-vision-with-mathematica\/","url_meta":{"origin":425,"position":2},"title":"Computer Vision with Mathematica","author":"admin","date":"September 26, 2016","format":false,"excerpt":"Over the past several weeks, I have been discussing many interesting features of Mathematica. As a continuation, today, I would like to show some cool functionality in the domain of computer vision and machine learning. The function ImageIdentify[] tries to identify the object in the given image. According to the\u2026","rel":"","context":"In &quot;Machine Learning&quot;","block_context":{"text":"Machine Learning","link":"https:\/\/www.rangakrish.com\/index.php\/category\/machine-learning\/"},"img":{"alt_text":"A Truck","src":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/09\/truck-fig.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":364,"url":"https:\/\/www.rangakrish.com\/index.php\/2016\/10\/11\/cloud-computing-with-mathematica\/","url_meta":{"origin":425,"position":3},"title":"Cloud Computing with Mathematica","author":"admin","date":"October 11, 2016","format":false,"excerpt":"Mathematica provides excellent support for cloud computation, and most of the time, it is a very simple and intuitive process. Today, let us look at some examples of cloud deployment. For using Mathematica\u2019s cloud capabilities, you need an appropriate subscription. I use Mathematica Desktop, which comes with some free cloud\u2026","rel":"","context":"In &quot;Mathematica&quot;","block_context":{"text":"Mathematica","link":"https:\/\/www.rangakrish.com\/index.php\/category\/mathematica\/"},"img":{"alt_text":"FormFunction","src":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/10\/FormFunction1.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/10\/FormFunction1.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/10\/FormFunction1.png?resize=525%2C300 1.5x"},"classes":[]},{"id":285,"url":"https:\/\/www.rangakrish.com\/index.php\/2016\/07\/22\/using-julia-to-interact-with-mathematica\/","url_meta":{"origin":425,"position":4},"title":"Using Julia to Interact with Mathematica","author":"admin","date":"July 22, 2016","format":false,"excerpt":"Mathematica is a powerful environment for symbolic and numerical computation. I have been using it for many years now. In this post\u00a0I had explained how we can use Mathematica bundled with Raspberry distribution to control littleBits devices. When I saw that there is support in Julia for interacting with Mathematica,\u2026","rel":"","context":"In &quot;Julia&quot;","block_context":{"text":"Julia","link":"https:\/\/www.rangakrish.com\/index.php\/category\/julia\/"},"img":{"alt_text":"Julia Session","src":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/07\/Julia-1.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/07\/Julia-1.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/07\/Julia-1.png?resize=525%2C300 1.5x"},"classes":[]},{"id":4285,"url":"https:\/\/www.rangakrish.com\/index.php\/2026\/04\/22\/exploring-astronomy-with-wolfram-mathematica\/","url_meta":{"origin":425,"position":5},"title":"Exploring Astronomy with Wolfram Mathematica","author":"admin","date":"April 22, 2026","format":false,"excerpt":"As a student of astrology and who has written software for Krishnamurti Padhdhati (KP) System, I am fascinated by astronomy. We all know that there is a deep computational\u00a0connection between astronomy and astrology. Every astrological system \u2014 Western tropical, Vedic sidereal, KP, Jaimini, Chinese \u2014 is ultimately dependent on an\u2026","rel":"","context":"In &quot;Mathematica&quot;","block_context":{"text":"Mathematica","link":"https:\/\/www.rangakrish.com\/index.php\/category\/mathematica\/"},"img":{"alt_text":"Planetary Positions","src":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2026\/04\/position-example-300x232.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2026\/04\/position-example-300x232.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2026\/04\/position-example-300x232.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/posts\/425","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/comments?post=425"}],"version-history":[{"count":0,"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/posts\/425\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/media?parent=425"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/categories?post=425"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/tags?post=425"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}