diff --git a/erpnext/agriculture/doctype/crop_cycle/crop_cycle.js b/erpnext/agriculture/doctype/crop_cycle/crop_cycle.js
index ae28bb7..94392e7 100644
--- a/erpnext/agriculture/doctype/crop_cycle/crop_cycle.js
+++ b/erpnext/agriculture/doctype/crop_cycle/crop_cycle.js
@@ -10,7 +10,7 @@
 			let analysis_doctypes = ['Soil Texture', 'Plant Analysis', 'Soil Analysis'];
 			let analysis_doctypes_docs = ['soil_texture', 'plant_analysis', 'soil_analysis'];
 			let obj_to_append = {soil_analysis: [], soil_texture: [], plant_analysis: []};
-			output['Land Unit'].forEach( (land_doc) => {
+			output['Location'].forEach( (land_doc) => {
 				analysis_doctypes.forEach( (doctype) => {
 					output[doctype].forEach( (analysis_doc) => {
 						let point_to_be_tested = JSON.parse(analysis_doc.location).features[0].geometry.coordinates;
@@ -31,18 +31,18 @@
 function is_in_land_unit(point, vs) {
 	// ray-casting algorithm based on
 	// http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html
-	
+
 	var x = point[0], y = point[1];
-	
+
 	var inside = false;
 	for (var i = 0, j = vs.length - 1; i < vs.length; j = i++) {
 		var xi = vs[i][0], yi = vs[i][1];
 		var xj = vs[j][0], yj = vs[j][1];
-		
+
 		var intersect = ((yi > y) != (yj > y))
 			&& (x < (xj - xi) * (y - yi) / (yj - yi) + xi);
 		if (intersect) inside = !inside;
 	}
-	
+
 	return inside;
 };
diff --git a/erpnext/agriculture/doctype/crop_cycle/crop_cycle.json b/erpnext/agriculture/doctype/crop_cycle/crop_cycle.json
index 0263b65..18a3b8c 100644
--- a/erpnext/agriculture/doctype/crop_cycle/crop_cycle.json
+++ b/erpnext/agriculture/doctype/crop_cycle/crop_cycle.json
@@ -43,7 +43,7 @@
    "search_index": 0, 
    "set_only_once": 0, 
    "translatable": 0, 
-   "unique": 0
+   "unique": 1
   }, 
   {
    "allow_bulk_edit": 0, 
@@ -95,7 +95,7 @@
    "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
-   "label": "Linked Land Unit", 
+   "label": "Linked Location", 
    "length": 0, 
    "no_copy": 0, 
    "permlevel": 0, 
@@ -118,8 +118,8 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "description": "A link to all the Land Units in which the Crop is growing", 
-   "fieldname": "linked_land_unit", 
+   "description": "A link to all the Locations in which the Crop is growing", 
+   "fieldname": "linked_location", 
    "fieldtype": "Table", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
@@ -128,10 +128,10 @@
    "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
-   "label": "Linked Land Unit", 
+   "label": "Linked Location", 
    "length": 0, 
    "no_copy": 0, 
-   "options": "Linked Land Unit", 
+   "options": "Linked Location", 
    "permlevel": 0, 
    "precision": "", 
    "print_hide": 0, 
@@ -844,7 +844,7 @@
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2018-06-05 03:24:09.054864", 
+ "modified": "2018-06-20 04:41:36.148829", 
  "modified_by": "Administrator", 
  "module": "Agriculture", 
  "name": "Crop Cycle", 
diff --git a/erpnext/agriculture/doctype/crop_cycle/crop_cycle.py b/erpnext/agriculture/doctype/crop_cycle/crop_cycle.py
index e090706..bb9045c 100644
--- a/erpnext/agriculture/doctype/crop_cycle/crop_cycle.py
+++ b/erpnext/agriculture/doctype/crop_cycle/crop_cycle.py
@@ -81,10 +81,10 @@
 		for doctype in linked_doctypes:
 			output[doctype] = frappe.get_all(doctype, fields=required_fields)
 
-		output['Land Unit'] = []
+		output['Location'] = []
 
-		for land in self.linked_land_unit:
-			output['Land Unit'].append(frappe.get_doc('Land Unit', land.land_unit))
+		for location in self.linked_location:
+			output['Location'].append(frappe.get_doc('Location', location.location))
 
 		frappe.publish_realtime("List of Linked Docs",
 								output, user=frappe.session.user)
@@ -105,7 +105,7 @@
 	return ast.literal_eval(doc.location).get('features')[0].get('geometry').get('type')
 
 
-def is_in_land_unit(point, vs):
+def is_in_location(point, vs):
 	x, y = point
 	inside = False
 
diff --git a/erpnext/agriculture/doctype/crop_cycle/test_crop_cycle.py b/erpnext/agriculture/doctype/crop_cycle/test_crop_cycle.py
index 136858b..5510d5a 100644
--- a/erpnext/agriculture/doctype/crop_cycle/test_crop_cycle.py
+++ b/erpnext/agriculture/doctype/crop_cycle/test_crop_cycle.py
@@ -3,66 +3,72 @@
 # See license.txt
 from __future__ import unicode_literals
 
-import frappe
 import unittest
 
-test_dependencies = ["Crop", "Fertilizer", "Land Unit", "Disease"]
+import frappe
+from frappe.utils import datetime
+
+test_dependencies = ["Crop", "Fertilizer", "Location", "Disease"]
+
 
 class TestCropCycle(unittest.TestCase):
 	def test_crop_cycle_creation(self):
 		cycle = frappe.get_doc('Crop Cycle', 'Basil from seed 2017')
-		self.assertEqual(frappe.db.exists('Crop Cycle', 'Basil from seed 2017'), 'Basil from seed 2017')
+		self.assertTrue(frappe.db.exists('Crop Cycle', 'Basil from seed 2017'))
 
-		# check if the tasks were created 
+		# check if the tasks were created
 		self.assertEqual(check_task_creation(), True)
 		self.assertEqual(check_project_creation(), True)
 
+
 def check_task_creation():
 	all_task_dict = {
 		"Survey and find the aphid locations": {
-			"exp_start_date": frappe.utils.datetime.date(2017,11,21),
-			"exp_end_date": frappe.utils.datetime.date(2017,11,22)
+			"exp_start_date": datetime.date(2017, 11, 21),
+			"exp_end_date": datetime.date(2017, 11, 22)
 		},
 		"Apply Pesticides": {
-			"exp_start_date": frappe.utils.datetime.date(2017,11,23),
-			"exp_end_date": frappe.utils.datetime.date(2017,11,23)
+			"exp_start_date": datetime.date(2017, 11, 23),
+			"exp_end_date": datetime.date(2017, 11, 23)
 		},
 		"Plough the field": {
-			"exp_start_date": frappe.utils.datetime.date(2017,11,11),
-			"exp_end_date": frappe.utils.datetime.date(2017,11,11)
+			"exp_start_date": datetime.date(2017, 11, 11),
+			"exp_end_date": datetime.date(2017, 11, 11)
 		},
 		"Plant the seeds": {
-			"exp_start_date": frappe.utils.datetime.date(2017,11,12),
-			"exp_end_date": frappe.utils.datetime.date(2017,11,13)
+			"exp_start_date": datetime.date(2017, 11, 12),
+			"exp_end_date": datetime.date(2017, 11, 13)
 		},
 		"Water the field": {
-			"exp_start_date": frappe.utils.datetime.date(2017,11,14),
-			"exp_end_date": frappe.utils.datetime.date(2017,11,14)
+			"exp_start_date": datetime.date(2017, 11, 14),
+			"exp_end_date": datetime.date(2017, 11, 14)
 		},
 		"First harvest": {
-			"exp_start_date": frappe.utils.datetime.date(2017,11,18),
-			"exp_end_date": frappe.utils.datetime.date(2017,11,18)
+			"exp_start_date": datetime.date(2017, 11, 18),
+			"exp_end_date": datetime.date(2017, 11, 18)
 		},
 		"Add the fertilizer": {
-			"exp_start_date": frappe.utils.datetime.date(2017,11,20),
-			"exp_end_date": frappe.utils.datetime.date(2017,11,22)
+			"exp_start_date": datetime.date(2017, 11, 20),
+			"exp_end_date": datetime.date(2017, 11, 22)
 		},
-		"Final cut":{
-			"exp_start_date": frappe.utils.datetime.date(2017,11,25),
-			"exp_end_date": frappe.utils.datetime.date(2017,11,25)
+		"Final cut": {
+			"exp_start_date": datetime.date(2017, 11, 25),
+			"exp_end_date": datetime.date(2017, 11, 25)
 		}
 	}
+
 	all_tasks = frappe.get_all('Task')
+
 	for task in all_tasks:
 		sample_task = frappe.get_doc('Task', task.name)
+
 		if sample_task.subject in list(all_task_dict):
 			if sample_task.exp_start_date != all_task_dict[sample_task.subject]['exp_start_date'] or sample_task.exp_end_date != all_task_dict[sample_task.subject]['exp_end_date']:
 				return False
 			all_task_dict.pop(sample_task.subject)
-	if all_task_dict != {}:
-		return False
-	return True
+
+	return True if not all_task_dict else False
+
 
 def check_project_creation():
-	if frappe.db.exists('Project', 'Basil from seed 2017'): return True
-	else: return False
\ No newline at end of file
+	return True if frappe.db.exists('Project', 'Basil from seed 2017') else False
diff --git a/erpnext/agriculture/doctype/land_unit/land_unit.js b/erpnext/agriculture/doctype/land_unit/land_unit.js
deleted file mode 100644
index 3bf1434..0000000
--- a/erpnext/agriculture/doctype/land_unit/land_unit.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
-// For license information, please see license.txt
-
-// Code for finding the area of editable features drawn on the geolocation control
-
-
-
-frappe.ui.form.on('Land Unit', {
-	setup: function(frm) {
-		frm.add_fetch("parent_land_unit", "latitude", "latitude");
-		frm.add_fetch("parent_land_unit", "longitude", "longitude");
-		frm.set_query("parent_land_unit", function() {
-			return {
-				"filters": {
-					"is_group": 1
-				}
-			};
-		});
-	},
-
-	onload_post_render(frm){
-		if(!frm.doc.location && frm.doc.latitude && frm.doc.longitude)	{
-			frm.fields_dict.location.map.setView([frm.doc.latitude, frm.doc.longitude],13);
-		}
-		else {
-			frm.doc.latitude = frm.fields_dict.location.map.getCenter()['lat'];
-			frm.doc.longitude = frm.fields_dict.location.map.getCenter()['lng'];
-		}
-	},
-});
diff --git a/erpnext/agriculture/doctype/land_unit/land_unit.json b/erpnext/agriculture/doctype/land_unit/land_unit.json
deleted file mode 100644
index 94d350f..0000000
--- a/erpnext/agriculture/doctype/land_unit/land_unit.json
+++ /dev/null
@@ -1,691 +0,0 @@
-{
- "allow_copy": 0, 
- "allow_guest_to_view": 0, 
- "allow_import": 1, 
- "allow_rename": 1, 
- "autoname": "field:land_unit_name", 
- "beta": 0, 
- "creation": "2017-10-21 05:35:34.508529", 
- "custom": 0, 
- "description": "Land Unit describing various land assets", 
- "docstatus": 0, 
- "doctype": "DocType", 
- "document_type": "", 
- "editable_grid": 1, 
- "engine": "InnoDB", 
- "fields": [
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "land_unit_name", 
-   "fieldtype": "Data", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 1, 
-   "in_standard_filter": 0, 
-   "label": "Land Unit Name", 
-   "length": 0, 
-   "no_copy": 1, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 1, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 1, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "parent_land_unit", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 1, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 1, 
-   "in_standard_filter": 0, 
-   "label": "Parent Land Unit", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "Land Unit", 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "column_break_2", 
-   "fieldtype": "Column Break", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "description": "Check if it is a hydroponic unit", 
-   "fieldname": "is_container", 
-   "fieldtype": "Check", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Is Container", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 1, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "default": "", 
-   "fieldname": "is_group", 
-   "fieldtype": "Check", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 1, 
-   "in_standard_filter": 0, 
-   "label": "Is Group", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "tree_details", 
-   "fieldtype": "Section Break", 
-   "hidden": 1, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Tree Details", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "lft", 
-   "fieldtype": "Int", 
-   "hidden": 1, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "lft", 
-   "length": 0, 
-   "no_copy": 1, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 1, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 1, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "rgt", 
-   "fieldtype": "Int", 
-   "hidden": 1, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "rgt", 
-   "length": 0, 
-   "no_copy": 1, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 1, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 1, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "old_parent", 
-   "fieldtype": "Link", 
-   "hidden": 1, 
-   "ignore_user_permissions": 1, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "old_parent", 
-   "length": 0, 
-   "no_copy": 1, 
-   "options": "Land Unit", 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 1, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 1, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "land_unit_details", 
-   "fieldtype": "Section Break", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Land Unit Details", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "latitude", 
-   "fieldtype": "Float", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Latitude", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "", 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "longitude", 
-   "fieldtype": "Float", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Longitude", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "", 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "latlong", 
-   "fieldtype": "Column Break", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "area", 
-   "fieldtype": "Float", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Area", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 1, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "section_break_13", 
-   "fieldtype": "Section Break", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "location", 
-   "fieldtype": "Geolocation", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Location", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 1, 
-   "columns": 0, 
-   "fieldname": "section_break_17", 
-   "fieldtype": "Section Break", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Linked Analysis", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "linked_soil_texture", 
-   "fieldtype": "Table", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Linked Soil Texture", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "Linked Soil Texture", 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "linked_soil_analysis", 
-   "fieldtype": "Table", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Linked Soil Analysis", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "Linked Soil Analysis", 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "linked_plant_analysis", 
-   "fieldtype": "Table", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Linked Plant Analysis", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "Linked Plant Analysis", 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }
- ], 
- "has_web_view": 0, 
- "hide_heading": 0, 
- "hide_toolbar": 0, 
- "idx": 0, 
- "image_view": 0, 
- "in_create": 0, 
- "is_submittable": 0, 
- "issingle": 0, 
- "istable": 0, 
- "max_attachments": 0, 
- "modified": "2017-12-14 18:16:15.124188", 
- "modified_by": "Administrator", 
- "module": "Agriculture", 
- "name": "Land Unit", 
- "name_case": "Title Case", 
- "owner": "Administrator", 
- "permissions": [
-  {
-   "amend": 0, 
-   "apply_user_permissions": 0, 
-   "cancel": 0, 
-   "create": 1, 
-   "delete": 1, 
-   "email": 1, 
-   "export": 1, 
-   "if_owner": 0, 
-   "import": 0, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Agriculture Manager", 
-   "set_user_permissions": 0, 
-   "share": 1, 
-   "submit": 0, 
-   "write": 1
-  }, 
-  {
-   "amend": 0, 
-   "apply_user_permissions": 0, 
-   "cancel": 0, 
-   "create": 0, 
-   "delete": 0, 
-   "email": 1, 
-   "export": 1, 
-   "if_owner": 0, 
-   "import": 0, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Agriculture User", 
-   "set_user_permissions": 0, 
-   "share": 1, 
-   "submit": 0, 
-   "write": 1
-  }
- ], 
- "quick_entry": 1, 
- "read_only": 0, 
- "read_only_onload": 0, 
- "show_name_in_global_search": 1, 
- "sort_field": "modified", 
- "sort_order": "DESC", 
- "track_changes": 0, 
- "track_seen": 0
-}
\ No newline at end of file
diff --git a/erpnext/agriculture/doctype/land_unit/land_unit.py b/erpnext/agriculture/doctype/land_unit/land_unit.py
deleted file mode 100644
index 269bbce..0000000
--- a/erpnext/agriculture/doctype/land_unit/land_unit.py
+++ /dev/null
@@ -1,182 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
-# For license information, please see license.txt
-
-from __future__ import unicode_literals
-import frappe
-import json
-import math
-
-from  frappe import _
-
-from frappe.utils.nestedset import NestedSet
-from frappe.utils import flt
-# from frappe.model.document import Document
-
-RADIUS = 6378137
-FLATTENING_DENOM = 298.257223563
-FLATTENING = 1/FLATTENING_DENOM
-POLAR_RADIUS = RADIUS*(1-FLATTENING)
-
-class LandUnit(NestedSet):
-	# pass
-	nsm_parent_field = 'parent_land_unit'
-
-	def on_trash(self):
-		ancestors = self.get_ancestors()
-		for ancestor in ancestors:
-			ancestor_doc = frappe.get_doc('Land Unit', ancestor)
-			ancestor_child_features, ancestor_non_child_features = ancestor_doc.feature_seperator(child_feature = self.get('land_unit_name'))
-			ancestor_features = ancestor_non_child_features
-			for index,feature in enumerate(ancestor_features):
-				ancestor_features[index] = json.loads(feature)
-			ancestor_doc.set_location_value(features = ancestor_features)
-			ancestor_doc.db_set(fieldname='area', value=ancestor_doc.get('area')-self.get('area'),commit=True)
-		super(LandUnit, self).on_update()
-
-	def validate(self):
-		if not self.is_new():
-			if not self.get('location'):
-				features = ''
-			else:
-				features = json.loads(self.get('location')).get('features')
-			new_area = compute_area(features)
-			self.area_difference = new_area - flt(self.area)
-			self.area = new_area
-
-			if self.get('parent_land_unit'):
-				ancestors = self.get_ancestors()
-				self_features = self.add_child_property()
-				self_features = set(self_features)
-
-				for ancestor in ancestors:
-					ancestor_doc = frappe.get_doc('Land Unit', ancestor)
-					ancestor_child_features, ancestor_non_child_features = ancestor_doc.feature_seperator(child_feature = self.get('land_unit_name'))
-					ancestor_features = list(set(ancestor_non_child_features))
-					child_features = set(ancestor_child_features)
-
-					if not (self_features.issubset(child_features) and child_features.issubset(self_features)):
-						features_to_be_appended =	self_features - child_features
-						features_to_be_discarded = 	child_features - self_features
-						for feature in features_to_be_discarded:
-							child_features.discard(feature)
-						for feature in features_to_be_appended:
-							child_features.add(feature)
-						child_features = list(child_features)
-
-					ancestor_features.extend(child_features)
-					for index,feature in enumerate(ancestor_features):
-						ancestor_features[index] = json.loads(feature)
-					ancestor_doc.set_location_value(features = ancestor_features)
-					ancestor_doc.db_set(fieldname='area', value=ancestor_doc.get('area')+\
-						self.get('area_difference'),commit=True)
-
-	def set_location_value(self, features):
-		if not self.get('location'):
-			self.location = '{"type":"FeatureCollection","features":[]}'
-		location = json.loads(self.location)
-		location['features'] = features
-		self.db_set(fieldname='location', value=json.dumps(location), commit=True)
-
-	def on_update(self):
-		super(LandUnit, self).on_update()
-
-	def add_child_property(self):
-		location = self.get('location')
-		if location:
-			features = json.loads(location).get('features')
-			if type(features) != list:
-				features = json.loads(features)
-			filter_features = [feature for feature in features if feature.get('properties').get('child_feature') != True]
-			for index,feature in enumerate(filter_features):
-				feature['properties'].update({'child_feature': True, 'feature_of': self.land_unit_name})
-				filter_features[index] = json.dumps(filter_features[index])
-			return filter_features
-		return []
-
-	def feature_seperator(self, child_feature=None):
-		doc = self
-		child_features = []
-		non_child_features = []
-		location = doc.get('location')
-		if location:
-			features = json.loads(location).get('features')
-			if type(features) != list:
-				features = json.loads(features)
-			for feature in features:
-				if feature.get('properties').get('feature_of') == child_feature:
-					child_features.extend([json.dumps(feature)])
-				else:
-					non_child_features.extend([json.dumps(feature)])
-
-		return child_features, non_child_features
-
-
-def compute_area(features):
-	layer_area = 0
-	for feature in features:
-		if feature.get('geometry').get('type') == 'Polygon':
-			layer_area += polygon_area(coords = feature.get('geometry').get('coordinates'))
-		elif feature.get('geometry').get('type') == 'Point' and feature.get('properties').get('point_type') == 'circle':
-			layer_area += math.pi * math.pow(feature.get('properties').get('radius'), 2)
-	return flt(layer_area)
-
-def rad(angle_in_degrees):
-	return angle_in_degrees*math.pi/180
-
-def polygon_area(coords):
-	area = 0
-	if coords and len(coords) > 0:
-		area += math.fabs(ring_area(coords[0]));
-		for i in range(1, len(coords)):
-			area -= math.fabs(ring_area(coords[i]));
-	return area;
-
-def ring_area(coords):
-	p1 = 0
-	p2 = 0
-	p3 = 0
-	lower_index = 0
-	middle_index = 0
-	upper_index = 0
-	i = 0
-	area = 0
-	coords_length = len(coords)
-	if coords_length > 2:
-		for i in range(0, coords_length):
-			if i == coords_length - 2: # i = N-2
-				lower_index = coords_length - 2;
-				middle_index = coords_length -1;
-				upper_index = 0;
-			elif i == coords_length - 1: # i = N-1
-				lower_index = coords_length - 1;
-				middle_index = 0;
-				upper_index = 1;
-			else: # i = 0 to N-3
-				lower_index = i;
-				middle_index = i+1;
-				upper_index = i+2;
-			p1 = coords[lower_index];
-			p2 = coords[middle_index];
-			p3 = coords[upper_index];
-			area += ( rad(p3[0]) - rad(p1[0]) ) * math.sin( rad(p2[1]));
-
-		area = area * RADIUS * RADIUS / 2
-	return area
-
-@frappe.whitelist()
-def get_children(doctype, parent, is_root=False):
-	if is_root:
-		parent = ''
-
-	land_units = frappe.get_list(doctype,
-		fields = ['name as value', 'is_group as expandable'],
-		filters= [['ifnull(`parent_land_unit`, "")', '=', parent]],
-		order_by='name')
-
-	# return nodes
-	return land_units
-
-
-def on_doctype_update():
-	frappe.db.add_index("Land Unit", ["lft", "rgt"])
\ No newline at end of file
diff --git a/erpnext/agriculture/doctype/land_unit/land_unit_tree.js b/erpnext/agriculture/doctype/land_unit/land_unit_tree.js
deleted file mode 100644
index bf64126..0000000
--- a/erpnext/agriculture/doctype/land_unit/land_unit_tree.js
+++ /dev/null
@@ -1,30 +0,0 @@
-frappe.treeview_settings["Land Unit"] = {
-	get_tree_nodes: "erpnext.agriculture.doctype.land_unit.land_unit.get_children",
-	ignore_fields:["parent_land_unit"],
-	get_tree_root: false,
-	disable_add_node: true,
-	root_label: "All Land Units",
-	onload: function(me) {
-		me.make_tree();
-	},
-	toolbar: [
-		{ toggle_btn: true },
-		{
-			label:__("Edit"),
-			condition: function(node) { return (node.label!='All Land Units'); },
-			click: function(node) {
-				frappe.set_route('Form', 'Land Unit', node.data.value);
-			}
-		},
-		{
-			label:__("Add Child"),
-			condition: function(node) { return node.expandable; },
-			click: function(node) {
-				if(node.label=='All Land Units') node.label='';
-				var lu = frappe.new_doc("Land Unit", {
-					"parent_land_unit": node.label
-				});
-			}
-		}
-	],
-};
\ No newline at end of file
diff --git a/erpnext/agriculture/doctype/land_unit/test_land_unit.js b/erpnext/agriculture/doctype/land_unit/test_land_unit.js
deleted file mode 100644
index f9d3566..0000000
--- a/erpnext/agriculture/doctype/land_unit/test_land_unit.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* eslint-disable */
-// rename this file from _test_[name] to test_[name] to activate
-// and remove above this line
-
-QUnit.test("test: Land Unit", function (assert) {
-	let done = assert.async();
-
-	// number of asserts
-	assert.expect(1);
-
-	frappe.run_serially([
-		// insert a new Land Unit
-		() => frappe.tests.make('Land Unit', [
-			// values to be set
-			{land_unit_name: 'Basil Farm'}
-		]),
-		() => {
-			assert.equal(cur_frm.doc.name, 'Basil Farm');
-		},
-		() => done()
-	]);
-
-});
diff --git a/erpnext/agriculture/doctype/land_unit/test_land_unit.py b/erpnext/agriculture/doctype/land_unit/test_land_unit.py
deleted file mode 100644
index 005014e..0000000
--- a/erpnext/agriculture/doctype/land_unit/test_land_unit.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
-# See license.txt
-from __future__ import unicode_literals
-import json
-import frappe
-import unittest
-
-class TestLandUnit(unittest.TestCase):
-
-	def runTest(self):
-		land_units = ['Basil Farm', 'Division 1', 'Field 1', 'Block 1']
-		area = 0                                                             
-		formatted_land_units = []	
-		for land_unit in land_units:
-			doc = frappe.get_doc('Land Unit', land_unit)
-			doc.save()
-			area += doc.area
-			temp = json.loads(doc.location)
-			temp['features'][0]['properties']['child_feature'] = True
-			temp['features'][0]['properties']['feature_of'] =	land_unit 
-			formatted_land_units.extend(temp['features'])
-		formatted_land_unit_string = str(formatted_land_units)
-		test_land = frappe.get_doc('Land Unit', 'Test Land')
-		self.assertEqual(formatted_land_unit_string, str(json.loads(test_land.get('location'))['features']))
-		self.assertEqual(area, test_land.get('area'))
diff --git a/erpnext/agriculture/doctype/linked_land_unit/__init__.py b/erpnext/agriculture/doctype/linked_location/__init__.py
similarity index 100%
rename from erpnext/agriculture/doctype/linked_land_unit/__init__.py
rename to erpnext/agriculture/doctype/linked_location/__init__.py
diff --git a/erpnext/agriculture/doctype/linked_land_unit/linked_land_unit.json b/erpnext/agriculture/doctype/linked_location/linked_location.json
similarity index 86%
rename from erpnext/agriculture/doctype/linked_land_unit/linked_land_unit.json
rename to erpnext/agriculture/doctype/linked_location/linked_location.json
index 63816b8..56a29d5 100644
--- a/erpnext/agriculture/doctype/linked_land_unit/linked_land_unit.json
+++ b/erpnext/agriculture/doctype/linked_location/linked_location.json
@@ -14,11 +14,12 @@
  "fields": [
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "fieldname": "land_unit", 
+   "fieldname": "location", 
    "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
@@ -27,10 +28,10 @@
    "in_global_search": 0, 
    "in_list_view": 1, 
    "in_standard_filter": 0, 
-   "label": "Land Unit", 
+   "label": "Location", 
    "length": 0, 
    "no_copy": 0, 
-   "options": "Land Unit", 
+   "options": "Location", 
    "permlevel": 0, 
    "precision": "", 
    "print_hide": 0, 
@@ -41,6 +42,7 @@
    "reqd": 1, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }
  ], 
@@ -54,10 +56,10 @@
  "issingle": 0, 
  "istable": 1, 
  "max_attachments": 0, 
- "modified": "2017-12-04 13:25:50.856991", 
+ "modified": "2018-06-20 04:35:51.675244", 
  "modified_by": "Administrator", 
  "module": "Agriculture", 
- "name": "Linked Land Unit", 
+ "name": "Linked Location", 
  "name_case": "", 
  "owner": "Administrator", 
  "permissions": [], 
diff --git a/erpnext/agriculture/doctype/linked_land_unit/linked_land_unit.py b/erpnext/agriculture/doctype/linked_location/linked_location.py
similarity index 65%
rename from erpnext/agriculture/doctype/linked_land_unit/linked_land_unit.py
rename to erpnext/agriculture/doctype/linked_location/linked_location.py
index 266edb9..3e49d3e 100644
--- a/erpnext/agriculture/doctype/linked_land_unit/linked_land_unit.py
+++ b/erpnext/agriculture/doctype/linked_location/linked_location.py
@@ -1,10 +1,10 @@
 # -*- coding: utf-8 -*-
-# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
 import frappe
 from frappe.model.document import Document
 
-class LinkedLandUnit(Document):
+class LinkedLocation(Document):
 	pass
diff --git a/erpnext/agriculture/doctype/land_unit/__init__.py b/erpnext/assets/doctype/linked_location/__init__.py
similarity index 100%
rename from erpnext/agriculture/doctype/land_unit/__init__.py
rename to erpnext/assets/doctype/linked_location/__init__.py
diff --git a/erpnext/agriculture/doctype/linked_land_unit/linked_land_unit.json b/erpnext/assets/doctype/linked_location/linked_location.json
similarity index 85%
copy from erpnext/agriculture/doctype/linked_land_unit/linked_land_unit.json
copy to erpnext/assets/doctype/linked_location/linked_location.json
index 63816b8..f04a79e 100644
--- a/erpnext/agriculture/doctype/linked_land_unit/linked_land_unit.json
+++ b/erpnext/assets/doctype/linked_location/linked_location.json
@@ -14,11 +14,12 @@
  "fields": [
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "fieldname": "land_unit", 
+   "fieldname": "location", 
    "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
@@ -27,10 +28,10 @@
    "in_global_search": 0, 
    "in_list_view": 1, 
    "in_standard_filter": 0, 
-   "label": "Land Unit", 
+   "label": "Location", 
    "length": 0, 
    "no_copy": 0, 
-   "options": "Land Unit", 
+   "options": "Location", 
    "permlevel": 0, 
    "precision": "", 
    "print_hide": 0, 
@@ -41,6 +42,7 @@
    "reqd": 1, 
    "search_index": 0, 
    "set_only_once": 0, 
+   "translatable": 0, 
    "unique": 0
   }
  ], 
@@ -54,10 +56,10 @@
  "issingle": 0, 
  "istable": 1, 
  "max_attachments": 0, 
- "modified": "2017-12-04 13:25:50.856991", 
+ "modified": "2018-06-20 04:35:59.514281", 
  "modified_by": "Administrator", 
- "module": "Agriculture", 
- "name": "Linked Land Unit", 
+ "module": "Assets", 
+ "name": "Linked Location", 
  "name_case": "", 
  "owner": "Administrator", 
  "permissions": [], 
diff --git a/erpnext/agriculture/doctype/linked_land_unit/linked_land_unit.py b/erpnext/assets/doctype/linked_location/linked_location.py
similarity index 65%
copy from erpnext/agriculture/doctype/linked_land_unit/linked_land_unit.py
copy to erpnext/assets/doctype/linked_location/linked_location.py
index 266edb9..3e49d3e 100644
--- a/erpnext/agriculture/doctype/linked_land_unit/linked_land_unit.py
+++ b/erpnext/assets/doctype/linked_location/linked_location.py
@@ -1,10 +1,10 @@
 # -*- coding: utf-8 -*-
-# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
 import frappe
 from frappe.model.document import Document
 
-class LinkedLandUnit(Document):
+class LinkedLocation(Document):
 	pass
diff --git a/erpnext/assets/doctype/location/location.js b/erpnext/assets/doctype/location/location.js
index c3783df..0f069b2 100644
--- a/erpnext/assets/doctype/location/location.js
+++ b/erpnext/assets/doctype/location/location.js
@@ -2,7 +2,23 @@
 // For license information, please see license.txt
 
 frappe.ui.form.on('Location', {
-	refresh: function(frm) {
+	setup: function (frm) {
+		frm.set_query("parent_location", function () {
+			return {
+				"filters": {
+					"is_group": 1
+				}
+			};
+		});
+	},
 
-	}
+	onload_post_render(frm) {
+		if (!frm.doc.location && frm.doc.latitude && frm.doc.longitude) {
+			frm.fields_dict.location.map.setView([frm.doc.latitude, frm.doc.longitude], 13);
+		}
+		else {
+			frm.doc.latitude = frm.fields_dict.location.map.getCenter()['lat'];
+			frm.doc.longitude = frm.fields_dict.location.map.getCenter()['lng'];
+		}
+	},
 });
diff --git a/erpnext/assets/doctype/location/location.json b/erpnext/assets/doctype/location/location.json
index d83fdf3..5dc1306 100644
--- a/erpnext/assets/doctype/location/location.json
+++ b/erpnext/assets/doctype/location/location.json
@@ -1,306 +1,708 @@
 {
- "allow_copy": 0, 
- "allow_guest_to_view": 0, 
- "allow_import": 0, 
- "allow_rename": 0, 
- "autoname": "field:location_name", 
- "beta": 0, 
- "creation": "2018-05-07 12:49:22.595974", 
- "custom": 0, 
- "docstatus": 0, 
- "doctype": "DocType", 
- "document_type": "", 
- "editable_grid": 1, 
- "engine": "InnoDB", 
+ "allow_copy": 0,
+ "allow_guest_to_view": 0,
+ "allow_import": 1,
+ "allow_rename": 1,
+ "autoname": "field:location_name",
+ "beta": 0,
+ "creation": "2018-05-07 12:49:22.595974",
+ "custom": 0,
+ "docstatus": 0,
+ "doctype": "DocType",
+ "document_type": "",
+ "editable_grid": 1,
+ "engine": "InnoDB",
  "fields": [
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "location_name", 
-   "fieldtype": "Data", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 1, 
-   "in_standard_filter": 0, 
-   "label": "Location Name", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 1, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "translatable": 0, 
-   "unique": 0
-  }, 
+   "allow_bulk_edit": 0,
+   "allow_in_quick_entry": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "location_name",
+   "fieldtype": "Data",
+   "hidden": 0,
+   "ignore_user_permissions": 0,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 1,
+   "in_standard_filter": 0,
+   "label": "Location Name",
+   "length": 0,
+   "no_copy": 1,
+   "permlevel": 0,
+   "precision": "",
+   "print_hide": 0,
+   "print_hide_if_no_value": 0,
+   "read_only": 0,
+   "remember_last_selected_value": 0,
+   "report_hide": 0,
+   "reqd": 1,
+   "search_index": 0,
+   "set_only_once": 0,
+   "translatable": 0,
+   "unique": 1
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "is_group", 
-   "fieldtype": "Check", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Is Group", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "translatable": 0, 
+   "allow_bulk_edit": 0,
+   "allow_in_quick_entry": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "parent_location",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "ignore_user_permissions": 0,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "label": "Parent Location",
+   "length": 0,
+   "no_copy": 0,
+   "options": "Location",
+   "permlevel": 0,
+   "precision": "",
+   "print_hide": 0,
+   "print_hide_if_no_value": 0,
+   "read_only": 0,
+   "remember_last_selected_value": 0,
+   "report_hide": 0,
+   "reqd": 0,
+   "search_index": 1,
+   "set_only_once": 0,
+   "translatable": 0,
    "unique": 0
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "parent_location", 
-   "fieldtype": "Link", 
-   "hidden": 1, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Parent Location", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "Location", 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 1, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 1, 
-   "set_only_once": 0, 
-   "translatable": 0, 
+   "allow_bulk_edit": 0,
+   "allow_in_quick_entry": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "cb_details",
+   "fieldtype": "Column Break",
+   "hidden": 0,
+   "ignore_user_permissions": 0,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "length": 0,
+   "no_copy": 0,
+   "permlevel": 0,
+   "precision": "",
+   "print_hide": 0,
+   "print_hide_if_no_value": 0,
+   "read_only": 0,
+   "remember_last_selected_value": 0,
+   "report_hide": 0,
+   "reqd": 0,
+   "search_index": 0,
+   "set_only_once": 0,
+   "translatable": 0,
    "unique": 0
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "lft", 
-   "fieldtype": "Int", 
-   "hidden": 1, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "lft", 
-   "length": 0, 
-   "no_copy": 1, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 1, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 1, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "translatable": 0, 
+   "allow_bulk_edit": 0,
+   "allow_in_quick_entry": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "description": "Check if it is a hydroponic unit",
+   "fieldname": "is_container",
+   "fieldtype": "Check",
+   "hidden": 0,
+   "ignore_user_permissions": 0,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "label": "Is Container",
+   "length": 0,
+   "no_copy": 0,
+   "permlevel": 0,
+   "precision": "",
+   "print_hide": 0,
+   "print_hide_if_no_value": 0,
+   "read_only": 0,
+   "remember_last_selected_value": 0,
+   "report_hide": 0,
+   "reqd": 0,
+   "search_index": 0,
+   "set_only_once": 0,
+   "translatable": 0,
    "unique": 0
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "rgt", 
-   "fieldtype": "Int", 
-   "hidden": 1, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "rgt", 
-   "length": 0, 
-   "no_copy": 1, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 1, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 1, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "translatable": 0, 
+   "allow_bulk_edit": 0,
+   "allow_in_quick_entry": 0,
+   "allow_on_submit": 0,
+   "bold": 1,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "is_group",
+   "fieldtype": "Check",
+   "hidden": 0,
+   "ignore_user_permissions": 0,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 1,
+   "in_standard_filter": 0,
+   "label": "Is Group",
+   "length": 0,
+   "no_copy": 0,
+   "permlevel": 0,
+   "precision": "",
+   "print_hide": 0,
+   "print_hide_if_no_value": 0,
+   "read_only": 0,
+   "remember_last_selected_value": 0,
+   "report_hide": 0,
+   "reqd": 0,
+   "search_index": 0,
+   "set_only_once": 0,
+   "translatable": 0,
    "unique": 0
-  }, 
+  },
   {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "old_parent", 
-   "fieldtype": "Data", 
-   "hidden": 1, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Old Parent", 
-   "length": 0, 
-   "no_copy": 1, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 1, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 1, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "translatable": 0, 
+   "allow_bulk_edit": 0,
+   "allow_in_quick_entry": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "sb_location_details",
+   "fieldtype": "Section Break",
+   "hidden": 0,
+   "ignore_user_permissions": 0,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "label": "Location Details",
+   "length": 0,
+   "no_copy": 0,
+   "permlevel": 0,
+   "precision": "",
+   "print_hide": 0,
+   "print_hide_if_no_value": 0,
+   "read_only": 0,
+   "remember_last_selected_value": 0,
+   "report_hide": 0,
+   "reqd": 0,
+   "search_index": 0,
+   "set_only_once": 0,
+   "translatable": 0,
+   "unique": 0
+  },
+  {
+   "allow_bulk_edit": 0,
+   "allow_in_quick_entry": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fetch_from": "parent_location.latitude",
+   "fieldname": "latitude",
+   "fieldtype": "Float",
+   "hidden": 0,
+   "ignore_user_permissions": 0,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "label": "Latitude",
+   "length": 0,
+   "no_copy": 0,
+   "options": "",
+   "permlevel": 0,
+   "precision": "",
+   "print_hide": 0,
+   "print_hide_if_no_value": 0,
+   "read_only": 0,
+   "remember_last_selected_value": 0,
+   "report_hide": 0,
+   "reqd": 0,
+   "search_index": 0,
+   "set_only_once": 0,
+   "translatable": 0,
+   "unique": 0
+  },
+  {
+   "allow_bulk_edit": 0,
+   "allow_in_quick_entry": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fetch_from": "parent_location.longitude",
+   "fieldname": "longitude",
+   "fieldtype": "Float",
+   "hidden": 0,
+   "ignore_user_permissions": 0,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "label": "Longitude",
+   "length": 0,
+   "no_copy": 0,
+   "options": "",
+   "permlevel": 0,
+   "precision": "",
+   "print_hide": 0,
+   "print_hide_if_no_value": 0,
+   "read_only": 0,
+   "remember_last_selected_value": 0,
+   "report_hide": 0,
+   "reqd": 0,
+   "search_index": 0,
+   "set_only_once": 0,
+   "translatable": 0,
+   "unique": 0
+  },
+  {
+   "allow_bulk_edit": 0,
+   "allow_in_quick_entry": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "cb_latlong",
+   "fieldtype": "Column Break",
+   "hidden": 0,
+   "ignore_user_permissions": 0,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "label": "",
+   "length": 0,
+   "no_copy": 0,
+   "permlevel": 0,
+   "precision": "",
+   "print_hide": 0,
+   "print_hide_if_no_value": 0,
+   "read_only": 0,
+   "remember_last_selected_value": 0,
+   "report_hide": 0,
+   "reqd": 0,
+   "search_index": 0,
+   "set_only_once": 0,
+   "translatable": 0,
+   "unique": 0
+  },
+  {
+   "allow_bulk_edit": 0,
+   "allow_in_quick_entry": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "area",
+   "fieldtype": "Float",
+   "hidden": 0,
+   "ignore_user_permissions": 0,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "label": "Area",
+   "length": 0,
+   "no_copy": 0,
+   "permlevel": 0,
+   "precision": "",
+   "print_hide": 0,
+   "print_hide_if_no_value": 0,
+   "read_only": 1,
+   "remember_last_selected_value": 0,
+   "report_hide": 0,
+   "reqd": 0,
+   "search_index": 0,
+   "set_only_once": 0,
+   "translatable": 0,
+   "unique": 0
+  },
+  {
+   "allow_bulk_edit": 0,
+   "allow_in_quick_entry": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "depends_on": "eval:doc.area",
+   "fieldname": "area_uom",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "ignore_user_permissions": 0,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "label": "Area UOM",
+   "length": 0,
+   "no_copy": 0,
+   "options": "UOM",
+   "permlevel": 0,
+   "precision": "",
+   "print_hide": 0,
+   "print_hide_if_no_value": 0,
+   "read_only": 0,
+   "remember_last_selected_value": 0,
+   "report_hide": 0,
+   "reqd": 0,
+   "search_index": 0,
+   "set_only_once": 0,
+   "translatable": 0,
+   "unique": 0
+  },
+  {
+   "allow_bulk_edit": 0,
+   "allow_in_quick_entry": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "sb_geolocation",
+   "fieldtype": "Section Break",
+   "hidden": 0,
+   "ignore_user_permissions": 0,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "length": 0,
+   "no_copy": 0,
+   "permlevel": 0,
+   "precision": "",
+   "print_hide": 0,
+   "print_hide_if_no_value": 0,
+   "read_only": 0,
+   "remember_last_selected_value": 0,
+   "report_hide": 0,
+   "reqd": 0,
+   "search_index": 0,
+   "set_only_once": 0,
+   "translatable": 0,
+   "unique": 0
+  },
+  {
+   "allow_bulk_edit": 0,
+   "allow_in_quick_entry": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "location",
+   "fieldtype": "Geolocation",
+   "hidden": 0,
+   "ignore_user_permissions": 0,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "label": "Location",
+   "length": 0,
+   "no_copy": 0,
+   "permlevel": 0,
+   "precision": "",
+   "print_hide": 0,
+   "print_hide_if_no_value": 0,
+   "read_only": 0,
+   "remember_last_selected_value": 0,
+   "report_hide": 0,
+   "reqd": 0,
+   "search_index": 0,
+   "set_only_once": 0,
+   "translatable": 0,
+   "unique": 0
+  },
+  {
+   "allow_bulk_edit": 0,
+   "allow_in_quick_entry": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "tree_details",
+   "fieldtype": "Section Break",
+   "hidden": 1,
+   "ignore_user_permissions": 0,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "label": "Tree Details",
+   "length": 0,
+   "no_copy": 0,
+   "permlevel": 0,
+   "precision": "",
+   "print_hide": 0,
+   "print_hide_if_no_value": 0,
+   "read_only": 0,
+   "remember_last_selected_value": 0,
+   "report_hide": 0,
+   "reqd": 0,
+   "search_index": 0,
+   "set_only_once": 0,
+   "translatable": 0,
+   "unique": 0
+  },
+  {
+   "allow_bulk_edit": 0,
+   "allow_in_quick_entry": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "lft",
+   "fieldtype": "Int",
+   "hidden": 1,
+   "ignore_user_permissions": 0,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "label": "lft",
+   "length": 0,
+   "no_copy": 1,
+   "permlevel": 0,
+   "precision": "",
+   "print_hide": 1,
+   "print_hide_if_no_value": 0,
+   "read_only": 1,
+   "remember_last_selected_value": 0,
+   "report_hide": 0,
+   "reqd": 0,
+   "search_index": 0,
+   "set_only_once": 0,
+   "translatable": 0,
+   "unique": 0
+  },
+  {
+   "allow_bulk_edit": 0,
+   "allow_in_quick_entry": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "rgt",
+   "fieldtype": "Int",
+   "hidden": 1,
+   "ignore_user_permissions": 0,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "label": "rgt",
+   "length": 0,
+   "no_copy": 1,
+   "permlevel": 0,
+   "precision": "",
+   "print_hide": 1,
+   "print_hide_if_no_value": 0,
+   "read_only": 1,
+   "remember_last_selected_value": 0,
+   "report_hide": 0,
+   "reqd": 0,
+   "search_index": 0,
+   "set_only_once": 0,
+   "translatable": 0,
+   "unique": 0
+  },
+  {
+   "allow_bulk_edit": 0,
+   "allow_in_quick_entry": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
+   "fieldname": "old_parent",
+   "fieldtype": "Data",
+   "hidden": 1,
+   "ignore_user_permissions": 0,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "label": "Old Parent",
+   "length": 0,
+   "no_copy": 1,
+   "permlevel": 0,
+   "precision": "",
+   "print_hide": 1,
+   "print_hide_if_no_value": 0,
+   "read_only": 1,
+   "remember_last_selected_value": 0,
+   "report_hide": 0,
+   "reqd": 0,
+   "search_index": 0,
+   "set_only_once": 0,
+   "translatable": 0,
    "unique": 0
   }
- ], 
- "has_web_view": 0, 
- "hide_heading": 0, 
- "hide_toolbar": 0, 
- "idx": 0, 
- "image_view": 0, 
- "in_create": 0, 
- "is_submittable": 0, 
- "issingle": 0, 
- "istable": 0, 
- "max_attachments": 0, 
- "modified": "2018-05-07 19:21:06.051414", 
- "modified_by": "Administrator", 
- "module": "Assets", 
- "name": "Location", 
- "name_case": "", 
- "owner": "Administrator", 
+ ],
+ "has_web_view": 0,
+ "hide_heading": 0,
+ "hide_toolbar": 0,
+ "idx": 0,
+ "image_view": 0,
+ "in_create": 0,
+ "is_submittable": 0,
+ "issingle": 0,
+ "istable": 0,
+ "max_attachments": 0,
+ "modified": "2018-07-11 13:36:30.999405",
+ "modified_by": "Administrator",
+ "module": "Assets",
+ "name": "Location",
+ "name_case": "Title Case",
+ "owner": "Administrator",
  "permissions": [
   {
-   "amend": 0, 
-   "cancel": 0, 
-   "create": 1, 
-   "delete": 1, 
-   "email": 1, 
-   "export": 1, 
-   "if_owner": 0, 
-   "import": 0, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "System Manager", 
-   "set_user_permissions": 0, 
-   "share": 1, 
-   "submit": 0, 
+   "amend": 0,
+   "cancel": 0,
+   "create": 1,
+   "delete": 1,
+   "email": 1,
+   "export": 1,
+   "if_owner": 0,
+   "import": 0,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "System Manager",
+   "set_user_permissions": 0,
+   "share": 1,
+   "submit": 0,
    "write": 1
-  }, 
+  },
   {
-   "amend": 0, 
-   "cancel": 0, 
-   "create": 1, 
-   "delete": 1, 
-   "email": 1, 
-   "export": 1, 
-   "if_owner": 0, 
-   "import": 0, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Stock User", 
-   "set_user_permissions": 0, 
-   "share": 1, 
-   "submit": 0, 
+   "amend": 0,
+   "cancel": 0,
+   "create": 1,
+   "delete": 1,
+   "email": 1,
+   "export": 1,
+   "if_owner": 0,
+   "import": 0,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Stock User",
+   "set_user_permissions": 0,
+   "share": 1,
+   "submit": 0,
    "write": 1
-  }, 
+  },
   {
-   "amend": 0, 
-   "cancel": 0, 
-   "create": 1, 
-   "delete": 1, 
-   "email": 1, 
-   "export": 1, 
-   "if_owner": 0, 
-   "import": 0, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Accounts User", 
-   "set_user_permissions": 0, 
-   "share": 1, 
-   "submit": 0, 
+   "amend": 0,
+   "cancel": 0,
+   "create": 1,
+   "delete": 1,
+   "email": 1,
+   "export": 1,
+   "if_owner": 0,
+   "import": 0,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Accounts User",
+   "set_user_permissions": 0,
+   "share": 1,
+   "submit": 0,
    "write": 1
-  }, 
+  },
   {
-   "amend": 0, 
-   "cancel": 0, 
-   "create": 1, 
-   "delete": 1, 
-   "email": 1, 
-   "export": 1, 
-   "if_owner": 0, 
-   "import": 0, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Stock Manager", 
-   "set_user_permissions": 0, 
-   "share": 1, 
-   "submit": 0, 
+   "amend": 0,
+   "cancel": 0,
+   "create": 1,
+   "delete": 1,
+   "email": 1,
+   "export": 1,
+   "if_owner": 0,
+   "import": 0,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Stock Manager",
+   "set_user_permissions": 0,
+   "share": 1,
+   "submit": 0,
+   "write": 1
+  },
+  {
+   "amend": 0,
+   "cancel": 0,
+   "create": 1,
+   "delete": 1,
+   "email": 1,
+   "export": 1,
+   "if_owner": 0,
+   "import": 0,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Agriculture Manager",
+   "set_user_permissions": 0,
+   "share": 1,
+   "submit": 0,
+   "write": 1
+  },
+  {
+   "amend": 0,
+   "cancel": 0,
+   "create": 0,
+   "delete": 0,
+   "email": 1,
+   "export": 1,
+   "if_owner": 0,
+   "import": 0,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Agriculture User",
+   "set_user_permissions": 0,
+   "share": 1,
+   "submit": 0,
    "write": 1
   }
- ], 
- "quick_entry": 1, 
- "read_only": 0, 
- "read_only_onload": 0, 
- "show_name_in_global_search": 0, 
- "sort_field": "modified", 
- "sort_order": "DESC", 
- "track_changes": 1, 
- "track_seen": 0
+ ],
+ "quick_entry": 1,
+ "read_only": 0,
+ "read_only_onload": 0,
+ "show_name_in_global_search": 1,
+ "sort_field": "modified",
+ "sort_order": "DESC",
+ "track_changes": 1,
+ "track_seen": 0,
+ "track_views": 0
 }
\ No newline at end of file
diff --git a/erpnext/assets/doctype/location/location.py b/erpnext/assets/doctype/location/location.py
index 86542cb..4d73f11 100644
--- a/erpnext/assets/doctype/location/location.py
+++ b/erpnext/assets/doctype/location/location.py
@@ -3,23 +3,197 @@
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
+
+import json
+import math
+
 import frappe
+from frappe import _
 from frappe.model.document import Document
-from frappe.utils.nestedset import NestedSet
+from frappe.utils import flt
+from frappe.utils.nestedset import NestedSet, update_nsm
+
+EARTH_RADIUS = 6378137
+
 
 class Location(NestedSet):
 	nsm_parent_field = 'parent_location'
 
+	def validate(self):
+		self.calculate_location_area()
+
+		if not self.is_new() and self.get('parent_location'):
+			self.update_ancestor_location_features()
+
 	def on_update(self):
+		# super(Location, self).on_update()
 		NestedSet.on_update(self)
 
 	def on_trash(self):
 		NestedSet.validate_if_child_exists(self)
-		frappe.utils.nestedset.update_nsm(self)
+		update_nsm(self)
+		self.remove_ancestor_location_features()
+		# super(Location, self).on_update()
+
+	def calculate_location_area(self):
+		features = self.get_location_features()
+		new_area = compute_area(features)
+
+		self.area_difference = new_area - flt(self.area)
+		self.area = new_area
+
+	def get_location_features(self):
+		if not self.location:
+			return []
+
+		features = json.loads(self.location).get('features')
+
+		if not isinstance(features, list):
+			features = json.loads(features)
+
+		return features
+
+	def set_location_features(self, features):
+		if not self.location:
+			self.location = '{"type":"FeatureCollection","features":[]}'
+
+		location = json.loads(self.location)
+		location['features'] = features
+
+		self.db_set('location', json.dumps(location), commit=True)
+
+	def update_ancestor_location_features(self):
+		self_features = set(self.add_child_property())
+
+		for ancestor in self.get_ancestors():
+			ancestor_doc = frappe.get_doc('Location', ancestor)
+			child_features, ancestor_features = ancestor_doc.feature_seperator(child_feature=self.name)
+
+			ancestor_features = list(set(ancestor_features))
+			child_features = set(child_features)
+
+			if self_features != child_features:
+				features_to_be_appended = self_features - child_features
+				features_to_be_discarded = child_features - self_features
+
+				for feature in features_to_be_discarded:
+					child_features.discard(feature)
+
+				for feature in features_to_be_appended:
+					child_features.add(feature)
+
+			ancestor_features.extend(list(child_features))
+
+			for index, feature in enumerate(ancestor_features):
+				ancestor_features[index] = json.loads(feature)
+
+			ancestor_doc.set_location_features(features=ancestor_features)
+			ancestor_doc.db_set('area', ancestor_doc.area + self.area_difference, commit=True)
+
+	def remove_ancestor_location_features(self):
+		for ancestor in self.get_ancestors():
+			ancestor_doc = frappe.get_doc('Location', ancestor)
+			child_features, ancestor_features = ancestor_doc.feature_seperator(child_feature=self.name)
+
+			for index, feature in enumerate(ancestor_features):
+				ancestor_features[index] = json.loads(feature)
+
+			ancestor_doc.set_location_features(features=ancestor_features)
+			ancestor_doc.db_set('area', ancestor_doc.area - self.area, commit=True)
+
+	def add_child_property(self):
+		features = self.get_location_features()
+		filter_features = [feature for feature in features if not feature.get('properties').get('child_feature')]
+
+		for index, feature in enumerate(filter_features):
+			feature['properties'].update({'child_feature': True, 'feature_of': self.location_name})
+			filter_features[index] = json.dumps(filter_features[index])
+
+		return filter_features
+
+	def feature_seperator(self, child_feature=None):
+		child_features, non_child_features = [], []
+		features = self.get_location_features()
+
+		for feature in features:
+			if feature.get('properties').get('feature_of') == child_feature:
+				child_features.extend([json.dumps(feature)])
+			else:
+				non_child_features.extend([json.dumps(feature)])
+
+		return child_features, non_child_features
+
+
+def compute_area(features):
+	"""
+	Calculate the total area for a set of location features.
+	Reference from https://github.com/scisco/area.
+
+	Args:
+		`features` (list of dict): Features marked on the map as
+			GeoJSON data
+
+	Returns:
+		float: The approximate signed geodesic area (in sq. meters)
+	"""
+
+	layer_area = 0.0
+
+	for feature in features:
+		feature_type = feature.get('geometry', {}).get('type')
+
+		if feature_type == 'Polygon':
+			layer_area += _polygon_area(coords=feature.get('geometry').get('coordinates'))
+		elif feature_type == 'Point' and feature.get('properties').get('point_type') == 'circle':
+			layer_area += math.pi * math.pow(feature.get('properties').get('radius'), 2)
+
+	return layer_area
+
+
+def _polygon_area(coords):
+	if not coords:
+		return 0
+
+	area = abs(_ring_area(coords[0]))
+
+	for i in range(1, len(coords)):
+		area -= abs(_ring_area(coords[i]))
+
+	return area
+
+
+def _ring_area(coords):
+	area = 0.0
+	coords_length = len(coords)
+
+	if coords_length > 2:
+		for i in range(coords_length):
+			if i == coords_length - 2:  # i = N-2
+				lower_index = coords_length - 2
+				middle_index = coords_length - 1
+				upper_index = 0
+			elif i == coords_length - 1:  # i = N-1
+				lower_index = coords_length - 1
+				middle_index = 0
+				upper_index = 1
+			else:  # i = 0 to N-3
+				lower_index = i
+				middle_index = i + 1
+				upper_index = i + 2
+
+			p1 = coords[lower_index]
+			p2 = coords[middle_index]
+			p3 = coords[upper_index]
+			area += (math.radians(p3[0]) - math.radians(p1[0])) * math.sin(math.radians(p2[1]))
+
+		area = area * EARTH_RADIUS * EARTH_RADIUS / 2
+
+	return area
+
 
 @frappe.whitelist()
 def get_children(doctype, parent=None, location=None, is_root=False):
-	if parent == None or parent == "All Locations":
+	if parent is None or parent == "All Locations":
 		parent = ""
 
 	return frappe.db.sql("""
@@ -31,9 +205,10 @@
 		where
 			ifnull(parent_location, "")="{parent}"
 		""".format(
-			doctype = frappe.db.escape(doctype),
-			parent=frappe.db.escape(parent)
-		), as_dict=1)
+		doctype=frappe.db.escape(doctype),
+		parent=frappe.db.escape(parent)
+	), as_dict=1)
+
 
 @frappe.whitelist()
 def add_node():
@@ -44,4 +219,8 @@
 	if args.parent_location == 'All Locations':
 		args.parent_location = None
 
-	frappe.get_doc(args).insert()
\ No newline at end of file
+	frappe.get_doc(args).insert()
+
+
+def on_doctype_update():
+	frappe.db.add_index("Location", ["lft", "rgt"])
diff --git a/erpnext/assets/doctype/location/location_tree.js b/erpnext/assets/doctype/location/location_tree.js
index cbd8f10..b405afd 100644
--- a/erpnext/assets/doctype/location/location_tree.js
+++ b/erpnext/assets/doctype/location/location_tree.js
@@ -1,14 +1,14 @@
 frappe.treeview_settings["Location"] = {
-	ignore_fields:["parent_location"],
+	ignore_fields: ["parent_location"],
 	get_tree_nodes: 'erpnext.assets.doctype.location.location.get_children',
 	add_tree_node: 'erpnext.assets.doctype.location.location.add_node',
 	filters: [
 		{
 			fieldname: "location",
-			fieldtype:"Link",
+			fieldtype: "Link",
 			options: "Location",
 			label: __("Location"),
-			get_query: function() {
+			get_query: function () {
 				return {
 					filters: [["Location", "is_group", "=", 1]]
 				};
@@ -21,13 +21,13 @@
 	menu_items: [
 		{
 			label: __("New Location"),
-			action: function() {
+			action: function () {
 				frappe.new_doc("Location", true);
 			},
 			condition: 'frappe.boot.user.can_create.indexOf("Location") !== -1'
 		}
 	],
-	onload: function(treeview) {
+	onload: function (treeview) {
 		treeview.make_tree();
 	}
 };
\ No newline at end of file
diff --git a/erpnext/assets/doctype/location/test_location.js b/erpnext/assets/doctype/location/test_location.js
index 236b5c6..3c06b63 100644
--- a/erpnext/assets/doctype/location/test_location.js
+++ b/erpnext/assets/doctype/location/test_location.js
@@ -12,10 +12,10 @@
 		// insert a new Location
 		() => frappe.tests.make('Location', [
 			// values to be set
-			{key: 'value'}
+			{ location_name: 'Basil Farm' }
 		]),
 		() => {
-			assert.equal(cur_frm.doc.key, 'value');
+			assert.equal(cur_frm.doc.name, 'Basil Farm');
 		},
 		() => done()
 	]);
diff --git a/erpnext/assets/doctype/location/test_location.py b/erpnext/assets/doctype/location/test_location.py
index 9a46fd9..6d8dd69 100644
--- a/erpnext/assets/doctype/location/test_location.py
+++ b/erpnext/assets/doctype/location/test_location.py
@@ -3,8 +3,29 @@
 # See license.txt
 from __future__ import unicode_literals
 
-import frappe
+import json
 import unittest
 
+import frappe
+
+
 class TestLocation(unittest.TestCase):
-	pass
+	def runTest(self):
+		locations = ['Basil Farm', 'Division 1', 'Field 1', 'Block 1']
+		area = 0
+		formatted_locations = []
+
+		for location in locations:
+			doc = frappe.get_doc('Location', location)
+			doc.save()
+			area += doc.area
+			temp = json.loads(doc.location)
+			temp['features'][0]['properties']['child_feature'] = True
+			temp['features'][0]['properties']['feature_of'] = location
+			formatted_locations.extend(temp['features'])
+
+		formatted_location_string = str(formatted_locations)
+		test_location = frappe.get_doc('Location', 'Test Location')
+
+		self.assertEqual(formatted_location_string, str(json.loads(test_location.get('location'))['features']))
+		self.assertEqual(area, test_location.get('area'))
diff --git a/erpnext/agriculture/doctype/land_unit/test_records.json b/erpnext/assets/doctype/location/test_records.json
similarity index 74%
rename from erpnext/agriculture/doctype/land_unit/test_records.json
rename to erpnext/assets/doctype/location/test_records.json
index e7fed9f..3827225 100644
--- a/erpnext/agriculture/doctype/land_unit/test_records.json
+++ b/erpnext/assets/doctype/location/test_records.json
@@ -1,42 +1,42 @@
 [
 	{
-		"doctype": "Land Unit",
-		"land_unit_name": "Test Land",
+		"doctype": "Location",
+		"location_name": "Test Location",
 		"is_group": 1,
 		"is_container": 1
 	},
 	{
-		"doctype": "Land Unit",
-		"land_unit_name": "Basil Farm",
+		"doctype": "Location",
+		"location_name": "Basil Farm",
 		"location": "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"properties\":{\"point_type\":\"circle\",\"radius\":884.5625420736483},\"geometry\":{\"type\":\"Point\",\"coordinates\":[72.875834,19.100566]}}]}",
-		"parent_land_unit": "Test Land",
-		"parent": "Test Land",
+		"parent_location": "Test Location",
+		"parent": "Test Location",
 		"is_group": 1,
 		"is_container": 1
 	},
 	{
-		"doctype": "Land Unit",
-		"land_unit_name": "Division 1",
+		"doctype": "Location",
+		"location_name": "Division 1",
 		"location": "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"properties\":{\"point_type\":\"circle\",\"radius\":542.3424997060739},\"geometry\":{\"type\":\"Point\",\"coordinates\":[72.852359,19.11557]}}]}",
-		"parent_land_unit": "Basil Farm",
+		"parent_location": "Basil Farm",
 		"parent": "Basil Farm",
 		"is_group": 1,
 		"is_container": 1
 	},
 	{
-		"doctype": "Land Unit",
-		"land_unit_name": "Field 1",
+		"doctype": "Location",
+		"location_name": "Field 1",
 		"location": "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"properties\":{},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[72.846758,19.118287],[72.846758,19.121206],[72.850535,19.121206],[72.850535,19.118287],[72.846758,19.118287]]]}}]}",
-		"parent_land_unit": "Division 1",
+		"parent_location": "Division 1",
 		"parent": "Division 1",
 		"is_group": 1,
 		"is_container": 1
 	},
 	{
-		"doctype": "Land Unit",
-		"land_unit_name": "Block 1",
+		"doctype": "Location",
+		"location_name": "Block 1",
 		"location": "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"properties\":{},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[72.921495,19.073313],[72.924929,19.068121],[72.934713,19.06585],[72.929392,19.05579],[72.94158,19.056926],[72.951365,19.095213],[72.921495,19.073313]]]}}]}",
-		"parent_land_unit": "Field 1",
+		"parent_location": "Field 1",
 		"parent": "Field 1",
 		"is_group": 0,
 		"is_container": 1
diff --git a/erpnext/config/agriculture.py b/erpnext/config/agriculture.py
index 20ee7cf..a6bc302 100644
--- a/erpnext/config/agriculture.py
+++ b/erpnext/config/agriculture.py
@@ -16,7 +16,7 @@
 				},
 				{
 					"type": "doctype",
-					"name": "Land Unit",
+					"name": "Location"
 				}
 			]
 		},
diff --git a/erpnext/config/desktop.py b/erpnext/config/desktop.py
index db6975e..f987316 100644
--- a/erpnext/config/desktop.py
+++ b/erpnext/config/desktop.py
@@ -398,13 +398,13 @@
 			"hidden": 1
 		},
 		{
-			"module_name": "Land Unit",
-			"_doctype": "Land Unit",
-			"label": _("Land Unit"),
+			"module_name": "Location",
+			"_doctype": "Location",
+			"label": _("Location"),
 			"color": "#8BC34A",
 			"icon": "fa fa-map",
 			"type": "list",
-			"link": "List/Land Unit",
+			"link": "List/Location",
 			"hidden": 1
 		},
 		{
diff --git a/erpnext/domains/agriculture.py b/erpnext/domains/agriculture.py
index d605ac7..5946247 100644
--- a/erpnext/domains/agriculture.py
+++ b/erpnext/domains/agriculture.py
@@ -5,7 +5,7 @@
 		'Crop Cycle',
 		'Fertilizer',
 		'Item',
-		'Land Unit',
+		'Location',
 		'Disease',
 		'Plant Analysis',
 		'Soil Analysis',
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 3be91c0..fa6acd7 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -553,4 +553,5 @@
 execute:frappe.db.sql("update `tabDesktop Icon` set type = 'module' where module_name = 'Restaurant'")
 erpnext.patches.v11_0.set_salary_component_properties
 erpnext.patches.v11_0.set_user_permissions_for_department
-erpnext.patches.v11_0.hr_ux_cleanups
\ No newline at end of file
+erpnext.patches.v11_0.hr_ux_cleanups
+erpnext.patches.v11_0.merge_land_unit_with_location
diff --git a/erpnext/patches/v11_0/merge_land_unit_with_location.py b/erpnext/patches/v11_0/merge_land_unit_with_location.py
new file mode 100644
index 0000000..999fb1f
--- /dev/null
+++ b/erpnext/patches/v11_0/merge_land_unit_with_location.py
@@ -0,0 +1,60 @@
+# Copyright (c) 2018, Frappe and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+
+import frappe
+from frappe.model.rename_doc import rename_doc
+from frappe.model.utils.rename_field import rename_field
+
+
+def execute():
+	# Rename and reload the Land Unit and Linked Land Unit doctypes
+	if frappe.db.table_exists('Land Unit') and not frappe.db.table_exists('Location'):
+		rename_doc('DocType', 'Land Unit', 'Location', force=True)
+
+	frappe.reload_doc('assets', 'doctype', 'location')
+
+	if frappe.db.table_exists('Linked Land Unit') and not frappe.db.table_exists('Linked Location'):
+		rename_doc('DocType', 'Linked Land Unit', 'Linked Location', force=True)
+
+	frappe.reload_doc('assets', 'doctype', 'linked_location')
+
+	# Rename the fields in related doctypes
+	if 'linked_land_unit' in frappe.db.get_table_columns('Crop Cycle'):
+		rename_field('Crop Cycle', 'linked_land_unit', 'linked_location')
+
+	if 'land_unit' in frappe.db.get_table_columns('Linked Location'):
+		rename_field('Linked Location', 'land_unit', 'location')
+	
+	if not frappe.db.exists("Location", "All Land Units"):
+		frappe.get_doc({"doctype": "Location", "is_group": True, "location_name": "All Land Units"}).insert(ignore_permissions=True)
+
+	if frappe.db.table_exists('Land Unit'):
+		land_units = frappe.get_all('Land Unit', fields=['*'], order_by='lft')
+
+		for land_unit in land_units:
+			if not frappe.db.exists('Location', land_unit.get('land_unit_name')):
+				frappe.get_doc({
+					'doctype': 'Location',
+					'location_name': land_unit.get('land_unit_name'),
+					'parent_location': land_unit.get('parent_land_unit') or "All Land Units",
+					'is_container': land_unit.get('is_container'),
+					'is_group': land_unit.get('is_group'),
+					'latitude': land_unit.get('latitude'),
+					'longitude': land_unit.get('longitude'),
+					'area': land_unit.get('area'),
+					'location': land_unit.get('location'),
+					'lft': land_unit.get('lft'),
+					'rgt': land_unit.get('rgt')
+				}).insert(ignore_permissions=True)
+
+	# frappe.db.sql("""update `tabDesktop Icon` set label='Location', module_name='Location' where label='Land Unit'""")
+	frappe.db.sql("""update `tabDesktop Icon` set link='List/Location' where link='List/Land Unit'""")
+
+	# Delete the Land Unit and Linked Land Unit doctypes
+	if frappe.db.table_exists('Land Unit'):
+		frappe.delete_doc('DocType', 'Land Unit', force=1)
+
+	if frappe.db.table_exists('Linked Land Unit'):
+		frappe.delete_doc('DocType', 'Linked Land Unit', force=1)
diff --git a/erpnext/tests/server/agriculture.txt b/erpnext/tests/server/agriculture.txt
index 3aae85a..29dc9ab 100644
--- a/erpnext/tests/server/agriculture.txt
+++ b/erpnext/tests/server/agriculture.txt
@@ -1,5 +1,4 @@
 Disease
 Crop
-Land Unit
 Crop Cycle
 Soil Texture
\ No newline at end of file
